基于c的超市进销存系统.docx
- 文档编号:22901433
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:17
- 大小:40.36KB
基于c的超市进销存系统.docx
《基于c的超市进销存系统.docx》由会员分享,可在线阅读,更多相关《基于c的超市进销存系统.docx(17页珍藏版)》请在冰豆网上搜索。
基于c的超市进销存系统
《面向对象程序设计》课程设计报告
超市进销存系统
姓名:
班级:
学号:
指导教师:
成绩:
完成时间:
08年6月15日
完成地点:
一、设计题目(问题)描述和要求
1某小型超市,完成超市进销存管理:
公司内有若干种商品:
✓商品代码(num)
✓商品名称(name)
✓产地(address)
✓单价(price)
✓该类商品的库存数量(count)
要求:
(1)商品基本信息管理:
商品的增加、修改和删除等。
(2)商品的查询与统计:
按商品名称查询基本信息、统计库存商品数量及总价值等。
2系统分析与模块设计
根据问题描述和要求,系统要求能够实现商品基本信息管理和商品的查询与统计。
确定程序至少应该具备如下功能:
“商品的增加”、“商品的修改”、“商品的删除”等基本模块。
“增加商品”模块的作用是向商品链中增加商品;
“修改信息”模块的作用是修改商品链中的商品信息;
“删除商品”模块的作用是删除商品链中的商品;
“查询信息”模块的作用是把商品链中的所有商品信息输出到显示器上;
“商品清单”模块的作用是把所有商品的名称输出到显示器上;
“数据存盘”模块的作用是保存录入内存中的商品信息;
“数据读入”模块的作用是把商品信息读入内存中。
经综合考虑系统具有下面7项功能模块:
商品增加,修改商品信息,删除商品,查询商品信息,商品清单,数据存盘,数据读入……。
二、系统设计
1.系统总体框架
超市管理系统主要涉及2个大类:
goods类、complay类。
(1)goods类:
包含商品代码(num)商品名称(name)商品产地(address)商品单价(price)商品的库存量(count)要完成输出操作,需要设计output成员函数。
(2)complay类:
考虑到如果要实现商品的增加,商品的删除,商品信息的修改,总价值的查询,数据的存盘,数据的读入等操作,complay类应包含:
Add(),Delete(),Modify(),Query(),Save(),Load()等函数作为成员函数。
2.类的层次图
Goods
{Num,name,address,price,count,next,Output()}
Complay
{gla,clear(),Add(),Delete(),Modify(),Query(),List(),Save(),Load()}
其中:
Add函数是用于增加商品;
Delete函数是用于删除商品;
Modify函数是用于修改商品信息;
Query函数是用于查询商品总价值;
List函数是用于列出所有商品的名称;
Save函数是用于将商品信息存入磁盘文件;
Load函数是用于将磁盘文件的内容读入内存。
3.系统关键算法流程图
(1)主函数流程
(2)成员函数(Add)
成员函数(delete)
成员函数(modify)
4、源程序清单
见附录
三、系统测试及结果
系统可以用于简单的超市管理,商品的增加,删除,修改等基本操作,不足的是当删除商品后不能使ID从1开始重新累计增加,及不能控制ID。
四、小结
(设计过程心得体会)
程序开始时不知道从哪开始,因为自己从没写过这么大的程序,所以自己到图书馆看了有关的大型程序,然后自己从简单开始写,先让程序完成最简单的初始化操作,然后在附加增加商品操作,删除商品操作,修改商品信息操作,数据存盘操作,数据装入操作。
不知不觉的就将程序给写完了。
感觉不是挺难的,但是如果一下把程序给写了,出现了很多的错误,自己不知从哪改起,以后写程序时先从大的方面写,然后在逐步细化。
附录:
源程序
#include
#include
#include
#include
intID;
classgoods
{
protected:
intnum;
charname[20];
charaddress[20];
doubleprice;
doublecount;
goods*next;
public:
goods(intnum,char*name,char*address,doubleprice,doublecount)
{
this->num=ID;
this->num=num;
strcpy(this->name,name);
strcpy(this->address,address);
this->price=price;
this->count=count;
}
voidoutput()
{
cout<<"ID:
"< "< <<"产地: "< " < "< } friendclasscomplay; }; classcomplay { private: goods*gla; voidclear(); public: complay() { gla=0; } ~complay() { goods*p; p=gla; while(p) { p=p->next; deletegla; gla=p; } gla=0; } voidAdd(); voidDelete(); voidModify(); voidQuery(); voidlist(); voidSave(); voidLoad(); }; voidcomplay: : clear() { goods*p=gla; while(p) { gla=p->next; deletep; p=gla; } } voidcomplay: : Add() { ID++; charname[20]; charaddress[20]; doubleprice; doublecount; goods*p; cout<<"\n**新增商品**\n"; cout<<"输入商品名: ";cin>>name; cout<<"输入商品产地: ";cin>>address; cout<<"输入单价: ";cin>>price; cout<<"输入数量: ";cin>>count; p=newgoods(ID,name,address,price,count); p->next=0; if(gla) { goods*p2; p2=gla; while(p2->next) { p2=p2->next; } p2->next=p; } else { gla=p; } } voidcomplay: : Delete() { charname[20]; cout<<"\n***删除商品***\n"; cout<<"商品名称: "; cin>>name; goods*p1,*p2; p1=gla; while(p1) { if(! strcmp(name,p1->name)) break; else { p2=p1; p1=p1->next; } } if(p1! =NULL) { if(p1==gla) { gla=p1->next; deletep1; } else { p2->next=p1->next; deletep1; } cout<<"找到并删除\n"; } else cout<<"未找到\n"; } voidcomplay: : Modify() { charname[20]; charaddress[20]; doubleprice; doublecount; cout<<"\n修改商品\n"; cout<<"商品名字: "; cin>>name; goods*p1,*p2; p1=gla; while(p1) { if(! strcmp(name,p1->name)) break; else { p2=p1; p1=p1->next; } } if(p1! =NULL) { p1->output(); cout<<"调整商品信息: "; intc; cout<<"修改信息(1-地址2-价钱3-数量4-return): ";cin>>c; switch(c) { case1: cout<<"修改地址: ";cin>>address; strcpy(p1->address,address);break; case2: cout<<"修改价钱: ";cin>>price;p1->price=price; break; case3: cout<<"修改数量: ";cin>>count;p1->count=count; break; case4: cout<<"return: ";break; } cout<<"修改成功\n"; } else cout<<"未找到\n"; } voidcomplay: : Query() { cout<<"查询商品总价值\n"; doublesum=0; goods*p=gla; while(p) { sum+=p->count*p->price; p=p->next; } cout<<"总价值"< } voidcomplay: : list() { charname[20]; goods*p=gla; if(! p) cout<<"\n没有商品\n"; else cout<<"\n商品清单\n"; while(p) { cout< p=p->next; } cout< } voidcomplay: : Save() { ofstreamfgood,fbase; charc; cout<<"\n保存数据,是否继续? [Y/N]";cin>>c; if(toupper(c)! ='Y')return; fgood.open("goods.txt",ios: : out); goods*p=gla; while(p) { fgood< fgood< p=p->next; } fgood.close(); cout<<"\n保存商品信息已经完成...\n"; } voidcomplay: : Load() { clear(); ifstreamfgood; goods*p=gla; intnum; charname[20]; charaddress[20]; doubleprice; doublecount; fgood.open("goods.txt",ios: : in); fgood>>num>>name>>address>>price>>count; while(fgood.good()) { p=newgoods(num,name,address,price,count); p->next=0; if(gla) { goods*p2; p2=gla; while(p2->next) { p2=p2->next; } p2->next=p; } else { gla=p; } fgood>>num>>name>>address>>price>>count; } ID=num; fgood.close(); cout<<"\n商品信息已经读入完成...\n"; } intmain() { complaya; charc; do { cout<<"\n***超市进销存管理系统***\n"; cout<<"1-增加商品\n"; cout<<"2-修改商品信息\n"; cout<<"3-删除商品\n"; cout<<"4-查询商品信息\n"; cout<<"5-商品清单\n"; cout<<"6-数据存盘\n"; cout<<"7-数据读入\n"; cout<<"8-退出\t请选择(1-8): "; cin>>c; switch(c) { case'1': a.Add();break; case'2': a.Modify();break; case'3': a.Delete();break; case'4': a.Query();break; case'5': a.list();break; case'6': a.Save();break; case'7': a.Load();break; } }while(c! ='8'); return0; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 超市 进销存 系统