• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
TianXiCoding
博客园    首页    新随笔    联系   管理    订阅  订阅
c++商店信息管理系统的设计与实现

一、需求分析

问题分析:

随着商务规模的不断扩大,商品个数和种类快速增长,超市管理者需要花费大量的时间才能获取商品基本信息,工作非常繁琐且麻烦。

项目目标:

商品信息管理系统旨在为管理员提供更方便的管理手段,为超市提供方便快捷的存货体系,让超市的管理和运行工作更加完善,帮助商家高效率提升管理能力,并提升销售能力,在激烈的竞争中扩大销售额、降低经营成本提高效益。

适用于各种小型超市,使杂乱的超市数据能够具体化、直观化、合理化等。

功能分析:

通过管理系统方便快捷进行商品基本信息的增、删、查、改这四项基本操作
1.增添商品:实现增加商品功能,将商品名,价格,生产日期等信息录入
2.查询商品:通过商品名查询商品信息
3.修改商品:将已添加的商品进行修改管理
4.删除商品:删除指定商品信息

5.退出管理程序

二、系统设计

(一)系统的概要设计

Main.cpp文件:

#include"goods.h"      
//定义主菜单函数
int menu()

{

cout<<"****************************************\n";

cout<<"****************************************\n";

cout<<"*****     商店信息管理系统         *****\n";

cout<<"****************************************\n";

cout<<"****************************************\n";

cout<<"*****    1 . 增加商品信息          *****\n";

cout<<"*****    2 . 修改商品信息          *****\n";

cout<<"*****    3 . 删除商品信息          *****\n";

cout<<"*****    4 . 查找商品信息          *****\n";

cout<<"*****    5 . 显示所有商品          *****\n";

cout<<"****************************************\n";

cout<<"****************************************\n";

cout<<"*****    0 .   退出系统            *****\n";

cout<<"****************************************\n";

cout<<"**************************************** \n";

cout<<endl;

int instruct;

for(;;)//控制输入条件,错误的输入需要从新输入

{

cout<<"请输入指令(1-11):";

cin>>instruct;//接受从键盘输入的指令

return instruct;

break;

}

}

void select(good &g,int k)

{

switch(k)

{

case 1://添加商品信息

{

g.add();

system("cls");

break;

}

case 2:

{

g.search();

system("cls");

break;

}

case 3:

{

g.clear();

getchar();

system("cls");

break;

}

case 4:

{

g.search();

system("cls");

break;

}

case 5://显示所有商品信息

{

g.show();

getchar();

getchar();

system("cls");

break;

}

case 0://退出程序并清除当前占用的内存

{

g.free();

cout<<"欢迎下次使用!"<<endl;

system("pause");

exit(0);

}

}

}

//主函数

int main()

{

good g;



int k;

k=menu();



for(;;)

{

select(g,k);

k=menu();

}



system("pause");

}

三、系统实现、测试和维护

(一)系统开发相关资源

  • 系统的核心数据结构和算法
struct node

{

float pri;//货物价格price



int Y;//进货时间year month date

int M;



int D;



string name;//货物名称;



string code;



node *next;



};

添加商品信息新建节点:

void add()

{

for(;;)

{

cout<<"当前货物数量:"<<num<<"件\n"<<endl;



node *p=new node();//给新加入的节点分配空间

//商品信息录入部分

cout<<"货物名称:";



cin>>p->name;



cout<<"货物价格:";



cin>>p->pri;



cout<<"货物编码:";



cin>>p->code;



cout<<"进货时间:(年:)";





cin>>p->Y;



cout<<"月:";



cin>>p->M;



cout<<"日:";



cin>>p->D;



p->next=NULL;//将新建的节点指向空





if(head==NULL)//当对首为空的时候直接将head指向新建节点,否则将节点连接在end后面,并end指向该节点

{

head=p;

end=p;

}

else

{

end->next=p;

end=p;

}

num++;//商品数量加1

break;





}



cout << "添加成功" << endl;

system("pause");

system("cls");







}

检索遍历线性表:

void search()

{

cout<<"按照货物名称查找";



string k;



cin>>k;



if(k=="1")//按商品名称来搜索

{

for(;;)

{

string s;



cout<<"\n请输入货物名称:";



cin>>s;



int i=0;



node *p=head;

while(p!=NULL)

{

if(p->name==s)//检索整个线性表

{

i=1;

cout<<"\n货物名称:"<<p->name

<<"\n货物价格:"<<p->pri<<"元"

<<"\n货物编码:"<<p->code

<<"\n进货时间:"<<p->Y<<"年"<<p->M<<"月"<<p->D<<"日"<<endl;

cout<<"是否对货物信息进行修改?(y or n)";



string c;



cin>>c;



if(c=="y"||c=="Y")

{

input(p);

cout<<"\n                  信息更新完毕!";

system("pause");



system("cls");



break;



}

else

{

break;

}

}

p=p->next;

}

if(i==1)

{

break;

}

if(p==NULL)

{

cout<<"\n没有符合信息的货物在库!";



break;



}







}

}

else//按照商品编码来搜索

{

for(;;)

{

string s;



cout<<"请输入货物编码:";



cin>>s;



node *p=head;



int i=0;



while(p!=NULL)

{

if(p->code==s)//检索整个线性表

{

i=1;

cout<<"\n货物名称:"<<p->name

<<"\n货物价格:"<<p->pri<<"元"

<<"\n货物编码:"<<p->code

<<"\n进货时间:"<<p->Y<<"年"<<p->M<<"月"<<p->D<<"日"<<endl;

cout<<"是否对货物信息进行修改?(y or n)";

string c;



cin>>c;



if(c=="y"||c=="Y")

{

input(p);



cout<<"信息修改成功!";



system("pause");

break;

}

else

{

break;

}



}

p=p->next;

}

if(i==1)

{

break;

}

if(p==NULL)

{

cout<<"没有符合信息的货物在库!";

system("pause");



break;



}

}

}

}

堆区数据的清理与删除,释放动态分配的内存:

void free()

{

node *p=head;

while(p!=NULL)

{

head=head->next;

delete(p);

p=head;

}



}
  • 系统各模块具体实现

核心算法部分代码:

class good

{

private:

node *head;//对首元素

node *end;//对尾元素

int num;//商品总数



public:

//默认构造函数

good()

{

head=NULL;

end=NULL;

num=0;

}

//添加货物信息

void add()

{

for(;;)

{

cout<<"当前货物数量:"<<num<<"件\n"<<endl;



node *p=new node();//给新加入的节点分配空间

//商品信息录入部分

cout<<"货物名称:";

cin>>p->name;

cout<<"货物价格:";

cin>>p->pri;

cout<<"货物编码:";

cin>>p->code;

cout<<"进货时间:(年:)";





cin>>p->Y;



cout<<"月:";



cin>>p->M;



cout<<"日:";



cin>>p->D;



p->next=NULL;//将新建的节点指向空





if(head==NULL)//当对首为空的时候直接将head指向新建节点,否则将节点连接在end后面,并end指向该节点

{

head=p;

end=p;

}

else

{

end->next=p;

end=p;

}

num++;//商品数量加1

break;





}



cout << "添加成功" << endl;

system("pause");

system("cls");







}



//显示目前存货的信息

void show()

{

node *p=head;



int n=0;



while(n<num)

{

cout<<"\n第"<<n+1<<"件货物:"

<<"\n货物名称:"<<p->name

<<"\n物编码:"<<p->code

<<"\n货物价格:"<<p->pri<<"元"

<<"\n进货时间:"<<p->Y<<"年"<<p->M<<"月"<<p->D<<"日"<<endl;

p=p->next;



n++;

}

cout<<"按任意键返回主菜单";

}



//释放动态分配的内存

void free()

{

node *p=head;

while(p!=NULL)

{

head=head->next;

delete(p);



p=head;

}



}



//查找和修改货物信息

void search()

{

cout<<"按照货物名称查找";



string k;



cin>>k;

if(k=="1")//按商品名称来搜索

{

for(;;)

{

string s;



cout<<"\n请输入货物名称:";



cin>>s;



int i=0;



node *p=head;



while(p!=NULL)

{

if(p->name==s)//检索整个线性表

{

i=1;

cout<<"\n货物名称:"<<p->name

<<"\n货物价格:"<<p->pri<<"元"

<<"\n货物编码:"<<p->code

<<"\n进货时间:"<<p->Y<<"年"<<p->M<<"月"<<p->D<<"日"<<endl;

cout<<"是否对货物信息进行修改?(y or n)";

string c;

cin>>c;

if(c=="y"||c=="Y")

{

input(p);



cout<<"\n                  信息更新完毕!";



system("pause");

system("cls");

break;

}

else

{

break;

}

}

p=p->next;

}

if(i==1)

{

break;

}

if(p==NULL)

{

cout<<"\n没有符合信息的货物在库!";



break;



}




}

}

else//按照商品编码来搜索

{

for(;;)

{

string s;

cout<<"请输入货物编码:";

cin>>s;

node *p=head;

int i=0;

while(p!=NULL)

{

if(p->code==s)//检索整个线性表

{

i=1;

cout<<"\n货物名称:"<<p->name

<<"\n货物价格:"<<p->pri<<"元"

<<"\n货物编码:"<<p->code

<<"\n进货时间:"<<p->Y<<"年"<<p->M<<"月"<<p->D<<"日"<<endl;

cout<<"是否对货物信息进行修改?(y or n)";

string c;

cin>>c;

if(c=="y"||c=="Y")

{

input(p);

cout<<"信息修改成功!";

system("pause");

break;

}

else

{

break;

}



}

p=p->next;

}

if(i==1)

{

break;

}

if(p==NULL)

{

cout<<"没有符合信息的货物在库!";

system("pause");



break;



}

}

}

}

//删除货物信息

void delete0()

{

cout<<"按照货物名称查找(1)";

string k;

cin>>k;

if(k=="1")//按商品名称来搜索

{

for(;;)

{

string s;

cout<<"\n请输入货物名称:";

cin>>s;

int i=0;

node *p=head;

while(p!=NULL)

{

if(p->name==s)//检索整个线性表

{

i=1;

cout<<"\n货物名称:"<<p->name

<<"\n货物价格:"<<p->pri<<"元"

<<"\n货物编码:"<<p->code

<<"\n进货时间:"<<p->Y<<"年"<<p->M<<"月"<<p->D<<"日"<<endl;

cout<<"是否删除此货物信息?(y or n)";

string c;

cin>>c;

if(c=="y"||c=="Y")

{

num=0;

head=NULL;

cout<<"删除成功!";

system("pause");

system("cls");

break;

}

else

{

break;

}

}

p=p->next;

}

if(i==1)

{

break;

}

if(p==NULL)

{

cout<<"没有此货物!";

system("pause");



break;



}





}

}

}

//商品信息录入函数

void input(node *p)

{

cout<<"\n货物名称:";

cin>>p->name;

cout<<"\n货物价格:";

cin>>p->pri;

cout<<"\n货物编码:";

cin>>p->code;

cout<<"\n进货时间:(年:)";
cin>>p->Y;

cout<<"\n月:";

cin>>p->M;

cout<<"\n日:";

cin>>p->D;

}


//清空当前商品信息

void clear()

{

free();

num=0;

head=NULL;

cout<<"\n信息全部清空!"<<endl;

system("pause");

system("cls");

}


};

posted on 2023-03-28 19:27  天喜Studio  阅读(177)  评论(0)    收藏  举报  来源
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3