收藏 分销(赏)

C超市标准管理系统的设计和实现.docx

上传人:快乐****生活 文档编号:2999236 上传时间:2024-06-12 格式:DOCX 页数:28 大小:304.11KB 下载积分:10 金币
下载 相关 举报
C超市标准管理系统的设计和实现.docx_第1页
第1页 / 共28页
C超市标准管理系统的设计和实现.docx_第2页
第2页 / 共28页


点击查看更多>>
资源描述
目录 一、需求分析 3 二、程序关键功效 3 三、程序运行平台 4 四、系统总框架图 4 五、程序类说明 5 六、模块分析 8 七、比较有特色函数 9 八、运行结果 10 九、存在不足和对策 15 十、程序源代码 15 一、 需求分析 中小型超市采购商品通常全部成千上万件。对这些商品进行有效管理必不可少。每件商品通常全部需要统计商品名、条形码、类别、价格、出厂日期等商品基础信息。除此之外,还需要统计商品其它相关信息,如生产厂家、供货处代码、厂家网址、厂家电话等。超市商品相关信息需要存放到文件系统中,通常全部需要提供对商品信息添加、编辑、删除等操作。超市管理员天天全部会统计购进商品信息,核销过期商品等。  为了巩固我们所学C++语言程序设计知识,也为了满足课程设计要求,我们在对多个中小型超市进行调研基础上,设计和实现一个小型超市商品管理系统,提供商品系统添加、删除、编辑等功效。同类系统多数使用结构体数组来操作数据,本系统使用链表结构操作数据,提升了数据处理效率。 二、 程序关键功效 1、 添加功效: 添加商品信息:有商品代码、商品名称、产地、商品单价、库存量等。 2、 删除功效: 依据商品名称,在添加商品中进行删除。 3、 显示功效: 能将已经添加或进行修改商品信息进行显示。 4、 修改功效: 依据商品民称,在添加商品中进行修改,将这个商品全部信息全部进行修改。 5、 查找功效: 依据商品名称或编号进行查找,查找功效有两个查找方法,以备不时之需。 6.文件保留 将添加,修改,删除后商品信息进行保留。 三、 程序运行平台 VC++6.0 和 DEVC++ 四、 系统总框架图 主函数 添加信息 删除信息 清空信息 修改信息 显示信息 查找信息 图片1 五、程序类说明 本程序定义了两个类 Supermarket类 class Supermarket {public: char name[20]; char Num[20]; int Cnum; //进货总数 int Mnum; //销售数目 int Enum; //剩下库存数目 double Price; //单价 char Add[20]; //产地 double Sum; //销售额 Supermarket * Next; void Input() { cout<<"\t\t请输入商品名:"; cin>>name; cout<<"\t\t请输入商品编号:"; cin>>Num; cout<<"\t\t请输入商品进货总数:"; cin>>Cnum; cout<<"\t\t请输入商品销售数目:"; cin>>Mnum; cout<<"\t\t请输入商品剩下库存数目:"; cin>>Enum; cout<<"\t\t请输入商品产地:"; cin>>Add; cout<<"\t\t请输入商品单价:"; cin>>Price; Sum=Mnum*Price; } void ReadFile(istream & in)//文件指针 { cin>>name>>Num>>Cnum>>Mnum>>Enum>>Add>>Price>>Sum; } void Show() { cout<<"商品名:"<<name<<endl <<"商品编号:"<<Num<<endl <<"进货总数:"<<Cnum<<endl <<"销售数目:"<<Mnum<<endl <<"剩下库存:"<<Enum<<endl <<"产地:"<<Add<<endl <<"单价:"<<Price<<endl <<"销售额:"<<Sum<<endl<<endl; } }; Supermarketmassage类 class Supermarketmassage { public: Supermarketmassage(); ~Supermarketmassage(); void ShowMenu(); void Find(); void Save(); void ModifyItem(); void RemoveItem(); void Swap(Supermarket *,Supermarket *); void Sort(); //void Unpass(); int ListCount(); //void Average(); void Display() { for(Supermarket * p=Head->Next;p!=End;p=p->Next) p->Show(); cout<<"输入任意字符!继续……"; getch(); } void AddItem() { End->Input(); End->Next=new Supermarket; End=End->Next; cout<<"添加成功!"<<endl; cout<<"输入任意字符!继续……"; getch(); } private: Supermarket * Head,* End; ifstream in; ofstream out; Supermarket *FindItem(char * name) { for(Supermarket * p=Head;p->Next!=End;p=p->Next)//匹配成功则返回上一个 指针,不成功就返回空 if(!strcmp(p->Next->name,name)) return p; return NULL; } Supermarket *FindNum(char * Num) { for(Supermarket * p=Head;p->Next!=End;p=p->Next)//匹配成功则返回上一个指针,不成功就返回空 if(!strcmp(p->Next->Num,Num)) return p; return NULL; } Supermarket *FindAdd(char * Add) { for(Supermarket * p=Head;p->Next!=End;p=p->Next)//匹配成功则返回上一个 指针,不成就返回空 if(!strcmp(p->Next->Add,Add))return p; return NULL; } }; 六、模块分析 模块分析表-1 函数 功效 Void Display() 输出模块信息 Supermarket() 结构函数 ~Supermarket() 析构函数 Void AddItem() 增加商品 Void RemoveItem() 删除商品 Void ModifyItem() 修改商品 Void find() 查找商品 Int ListCount() 统计商品 Void save() 基础数据存盘 Supermarketmassage 结构函数 七、比较有特色函数 Supermarket *FindItem(char * name) //根据姓名查找商品 { for(Supermarket * p=Head;p->Next!=End;p=p->Next)//匹配成功则返回上一个 指针,不成功就返回空 if(!strcmp(p->Next->name,name)) return p; return NULL; } Supermarket *FindNum(char * Num) //根据编号查找 { for(Supermarket * p=Head;p->Next!=End;p=p->Next)//匹配成功则返回上一个指针,不成功就返回空 if(!strcmp(p->Next->Num,Num)) return p; return NULL; } Supermarket *FindAdd(char * Add) { for(Supermarket * p=Head;p->Next!=End;p=p->Next)//匹配成功则返回上一个 指针,不成就返回空 if(!strcmp(p->Next->Add,Add))return p; return NULL; void Supermarketmassage::Save() { out.open("sort.txt"); for(Supermarket *p=Head->Next;p!=End;p=p->Next) out<<"商品名称:"<<p->name<<"\t\t" <<"商品编号:"<<p->Num<<"\t\t" <<"进货总数:"<<p->Cnum<<"\t\t" <<"销售数目:"<<p->Mnum<<"\t\t" <<"剩下库存:"<<p->Enum<<"\t\t" <<"商品产地:"<<p->Add<<"\t\t" <<"商品单价:"<<p->Price<<"\t\t" <<"销售额:"<<p->Sum<<'\n'; out.close(); } 八、运行结果 1.运行界面 2. 增加 4.显示 5. 查找 6. 删除 7. 修改 8. 保留 九、存在不足和对策 于设计者水平有限立即间等方面原因,该系统功效比较简单,只有基础功效,增删改查,我还添加了多个在我能力范围之内应用,比如文件,还有就是统计,这些在我能力之内内容,这个程序我真把我所学知识全部用上了,所以还有很多待完善地方,比如登陆界面密码,还划分管理员和一般用户,这些全部是我欠缺知识,所以我期望在以后学习中能学到更多知识,填补自己不足。 十、程序源代码 # include <iostream> # include <fstream> //文件使用 # include <string.h> #include <conio.h>//用getch(); using namespace std; class Supermarket //定义超市类 { public: char name[20]; char Num[20]; int Cnum; //进货总数 int Mnum; //销售数目 int Enum; //剩下库存数目 double Price; //单价 char Add[20]; //产地 double Sum; //销售额 Supermarket * Next; void Input() { cout<<"\t\t请输入商品名:"; cin>>name; cout<<"\t\t请输入商品编号:"; cin>>Num; cout<<"\t\t请输入商品进货总数:"; cin>>Cnum; cout<<"\t\t请输入商品销售数目:"; cin>>Mnum; cout<<"\t\t请输入商品剩下库存数目:"; cin>>Enum; cout<<"\t\t请输入商品产地:"; cin>>Add; cout<<"\t\t请输入商品单价:"; cin>>Price; Sum=Mnum*Price; } void ReadFile(istream & in)//文件指针 { cin>>name>>Num>>Cnum>>Mnum>>Enum>>Add>>Price>>Sum; } void Show() //显示模块 { cout<<"商品名:"<<name<<endl <<"商品编号:"<<Num<<endl <<"进货总数:"<<Cnum<<endl <<"销售数目:"<<Mnum<<endl <<"剩下库存:"<<Enum<<endl <<"产地:"<<Add<<endl <<"单价:"<<Price<<endl <<"销售额:"<<Sum<<endl<<endl; } }; class Supermarketmassage//定义超市各功效模块类 { public: Supermarketmassage(); ~Supermarketmassage(); void ShowMenu(); //显示模块 void Find();//查找模块 void Save(); void ModifyItem(); //修改模块 void RemoveItem(); //删除模块 int ListCount(); //void Average(); //统计模块 void Display() //显示 { for(Supermarket * p=Head->Next;p!=End;p=p->Next) p->Show(); cout<<"输入任意字符!继续……"; getch(); } void AddItem() //添加 { End->Input(); End->Next=new Supermarket; End=End->Next; cout<<"添加成功!"<<endl; cout<<"输入任意字符!继续……"; getch(); } private: Supermarket * Head,* End; ifstream in; ofstream out; Supermarket *FindItem(char * name) //根据姓名查找商品 { for(Supermarket * p=Head;p->Next!=End;p=p->Next)//匹配成功则返回上一个 指针,不成功就返回空 if(!strcmp(p->Next->name,name)) return p; return NULL; } Supermarket *FindNum(char * Num) //根据编号查找 { for(Supermarket * p=Head;p->Next!=End;p=p->Next)//匹配成功则返回上一个指针,不成功就返回空 if(!strcmp(p->Next->Num,Num)) return p; return NULL; } Supermarket *FindAdd(char * Add) { for(Supermarket * p=Head;p->Next!=End;p=p->Next)//匹配成功则返回上一个 指针,不成就返回空 if(!strcmp(p->Next->Add,Add))return p; return NULL; } }; //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌结构函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ Supermarketmassage::Supermarketmassage() { Head=new Supermarket; Head->Next=new Supermarket; End=Head->Next; in.open("sort.txt"); if(!in) cout<<"这是一个新系统,无商品信息。请先输入。"<<endl; else { while(!in.eof()) { End->ReadFile(in); if(End->name[0]=='\0') break; End->Next=new Supermarket; End=End->Next; } in.close(); cout<<"\t\t读取商品信息成功!"<<endl; } } Supermarketmassage::~Supermarketmassage() { Save(); for(Supermarket * temp;Head->Next!=End;) { temp=Head->Next; Head->Next=Head->Next->Next; delete temp; } delete Head,End; } void Supermarketmassage::ShowMenu() {cout<<"〒〒〒〒〒〒〒〒〒〒 ☆ 超 市 商 品 管 理 系 统 ☆ 〒〒〒〒〒〒〒〒〒〒"<<endl; cout<<"〒〒〒〒〒〒〒★★★★★ ★★★★★★★★ ★★★★★〒 〒〒〒〒〒〒"<<endl; cout<<"〒〒〒〒〒〒〒〒〒★ ☆ 1.增加商品信息 ☆ ★〒〒〒 〒〒〒〒〒〒"<<endl; cout<<"〒〒〒〒〒〒〒〒〒★ ☆ 2.显示商品信息 ☆ ★〒〒〒 〒〒〒〒〒〒"<<endl; cout<<"〒〒〒〒〒〒〒〒〒★ ☆ 3.查找商品信息 ☆ ★〒〒〒 〒〒〒〒〒〒"<<endl; cout<<"〒〒〒〒〒〒〒〒〒★ ☆ 4.删除商品信息 ☆ ★〒〒〒 〒〒〒〒〒〒"<<endl; cout<<"〒〒〒〒〒〒〒〒〒★ ☆ 5.修改商品信息 ☆ ★〒〒〒 〒〒〒〒〒〒"<<endl; cout<<"〒〒〒〒〒〒〒〒〒★ ☆ 0.保留文件退出 ☆ ★〒〒〒 〒〒〒〒〒〒"<<endl; cout<<"\n\t\t\n\t\t请选择:"; } void Supermarketmassage::Find()//查找模块 { char name[20] ,Num[10]; int x; Supermarket * p=NULL; cout<<"\n\t\t*********************************\n"; cout<<"\t\t※ 1.按商品名称查找\n\t\t※ 2.按商品编号查找"; cout<<"\n\t\t*********************************\n请选择:"; cin>>x; switch(x) { case 1: { cout<<"\t\t请输入要查找商品名称:"; cin>>name; if(p=FindItem(name)) { p->Next->Show(); cout<<"输入任意字符!继续……"; getch(); } else { cout<<"\t\t没有找到该商品信息!"<<'\n'<<endl; cout<<"输入任意字符!继续……"; getch(); } }break; case 2: { cout<<"\t\t请输入要查找商品编号:"; cin>>Num; if(p=FindNum(Num)) { p->Next->Show(); cout<<"输入任意字符!继续……"; getch(); } else { cout<<"\t\t没有找到该编号商品!"<<'\n'<<endl; cout<<"输入任意字符!继续……"; getch(); } } break; } } void Supermarketmassage::ModifyItem() //修改信息 { char name[20]; Supermarket* p=NULL; cout<<"\t\t请输入要修改商品名:"; cin>>name; if(p=FindItem(name)) { cout<<"\t\t已找到商品信息,请输入新信息!"<<endl; p->Next->Input(); cout<<"修改成功!"<<endl; cout<<"输入任意字符!继续……"; getch(); } else { cout<<"\t\t没有找到!"<<endl; cout<<"输入任意字符!继续……"; getch(); } } void Supermarketmassage::RemoveItem() // 删除信息 { char name[20]; Supermarket * p=NULL,*temp=NULL; cout<<"\t\t请输入要删除商品名:"<<endl;cin>>name; if(p=FindItem(name)) { temp=p->Next; p->Next=p->Next->Next; delete temp; cout<<"\t\t删除成功!"<<endl; cout<<"输入任意字符!继续……"; getch(); } else { cout<<"\t\t没有找到!"<<endl; cout<<"输入任意字符!继续……"; getch(); } } //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌统计﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ int Supermarketmassage::ListCount()//统计目前链表统计总数,返回一个整数 { if(! Head) return 0; int n=0; for(Supermarket * p=Head->Next;p!=End;p=p->Next) { n++; } return n; } //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌保留函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ void Supermarketmassage::Save() { out.open("sort.txt"); for(Supermarket *p=Head->Next;p!=End;p=p->Next) out<<"商品名称:"<<p->name<<"\t\t" <<"商品编号:"<<p->Num<<"\t\t" <<"进货总数:"<<p->Cnum<<"\t\t" <<"销售数目:"<<p->Mnum<<"\t\t" <<"剩下库存:"<<p->Enum<<"\t\t" <<"商品产地:"<<p->Add<<"\t\t" <<"商品单价:"<<p->Price<<"\t\t" <<"销售额:"<<p->Sum<<'\n'; out.close(); } //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌主函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ int main() { int x,i=0; bool quit=false; cout<<"\t\t§§§§§§§§§§§§§§§§§§§§§§§§§§"<<endl; for(i=0;i<3;i++) cout<<"\t\t◎\t\t\t\t\t\t ◎"<<endl; cout<<"\t\t◎★★★★【 欢迎进入超市商品管理系统 】★★★★◎"<<endl; for(i=0;i<3;i++) cout<<"\t\t◎\t\t\t\t\t\t ◎"<<endl; cout<<"\t\t§§§§§§§§§§§§§§§§§§§§§§§§§§\n"<<endl; Supermarketmassage Grade; cout<<"按任意键开始……"; getch(); while(!quit) { system("cls"); Grade.ShowMenu(); cin>>x; switch(x) { case 0:quit=true;break; case 1:Grade.AddItem();break; case 2:Grade.Display();break; case 3:Grade.Find();break; case 4:Grade.RemoveItem();break; case 5:Grade.ModifyItem();break; } } return 0; }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服