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");

}


};

C++商品管理系统50页报告+源码。代码详细并且功能完善。 本系统要求实现商品管理、用户管理、商品购买/退货管理等日常管理工作,以提高工作效率和管理水平。 系统合法普通用户分为用户(买家)和系统管理员,其中,系统管理员负责用户管理和商品管理,用户可以购买/退货管理。本设计要求实现的功能较多,所以将它们分为三个部分来叙述。 商品库存管理系统分为三个主要的功能模块: (1)商品管理模块:包括6个子模块,分别是商品入库模块、商品出库模块、删除商品模块、修改商品模块、查询商品模块和显示商品模块; I商品入库模块:首先自动显示系统中已有的商品信息,如果还没有商品,显示没有记录。提示用户是否需要入库,用户输入需要入库的商品编号,系统自动判断该商品是否已经存在,若存在则无法入库;若不存在,则提示用户输入商品的相关信息,一条商品的所有信息均输入完成之后,系统还会询问是否继续进行其他商品的入库操作。 II商品出库模块:首先自动显示系统中已有的商品信息,并提示用户输入需要出库的商品编号,系统自动判断该商品是否已经存在,若存在则提示用户输入出库的数量;若不存在,则提示用户找不到该商品,无法进行出库操作。I III删除商品模块:首先自动显示系统中已有的商品信息,并提示用户输入需要删除的商品编号,系统自动判断该商品是否已经存在,若存在则提示用户是否删除该商品;若不存在则提示无法找到该商品。 IV修改商品模块:首先自动显示系统中已有的商品信息,并提示用户输入需要修改的商品编号,系统自动判断该商品是否已经存在,若存在则提示用户输入新的商品信息;若不存在则提示无法找到该商品。 V查询商品模块:该模块通过用户输入的商品编号来查找商品,若存在则提示用户是否显示商品所有信息,若不存在则提示无法找到该商品。 VI显示商品模块:该模块负责将所有商品的信息列表显示出来。 (2)用户管理模块:包括5个子模块,分别是新增用户信息模块、删除用户信息模块、修改用户信息模块、查找用户信息模块和显示用户信息模块; I增加用户模块:首先自动显示系统中已有的用户信息,如果还没有用户,显示没有记录。提示管理员是否需要增加,管理员输入需要增加的用户编号,系统自动判断该用户是否已经存在,若存在则无法增加;若不存在,则提示管理员输入要增加用户的相关信息,一条要增加用户的所有信息均输入完成之后,系统还会询问是否继续进行增加其他用户的操作。 II删除用户模块:首先自动显示系统中已有的用户信息,并提示管理员输入需要删除的用户编号,系统自动判断该用户是否已经存在,若存在则提示管理员是否删除该用户;若不存在则提示无法找到该用户。 III修改用户模块:首先自动显示系统中已有的用户信息,并提示管理员输入需要修改的用户编号,系统自动判断该用户是否已经存在,若存在则提示管理员输入新的用户信息;若不存在则提示无法找到该用户。 IV查询用户模块:该模块通过管理员输入的用户编号来查找用户,若存在则提示管理员是否显示用户所有信息,若不存在则提示无法找到该用户。 V显示用户模块:该模块负责将所有用户的信息列表显示出来。 (3)用户购买/退货管理模块:包括2个子模块,分别是用户购买管理模块和用户退货管理模块
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

天喜Studio

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

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

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

打赏作者

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

抵扣说明:

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

余额充值