c++商店信息管理系统的设计与实现

该系统设计了一个商品信息管理系统,旨在帮助小型超市方便快捷地管理商品数据,包括添加、查询、修改和删除商品信息。系统采用C++编程语言,通过线性表数据结构实现,支持用户交互界面,优化了库存管理效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、需求分析

问题分析:

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

项目目标:

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

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

功能分析:

通过管理系统方便快捷进行商品基本信息的增、删、查、改这四项基本操作
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");

}


};

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天喜Studio

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值