C++课程设计商品管理系统精编版.docx
- 文档编号:29356133
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:42
- 大小:114.45KB
C++课程设计商品管理系统精编版.docx
《C++课程设计商品管理系统精编版.docx》由会员分享,可在线阅读,更多相关《C++课程设计商品管理系统精编版.docx(42页珍藏版)》请在冰豆网上搜索。
C++课程设计商品管理系统精编版
.
淮海工学院计算机工程学院
课程设计报告
设计名称:
C++程序设计课程设计
姓名:
学号:
专业班级:
系(院):
设计时间:
设计地点:
成绩:
指导教师评语:
签名:
年月日
1、课程设计目的
C++程序设计课程设计是计算机科学与技术专业重要的实践性教学环节之一,本次设计结合实际应用的要求,使课程设计既覆盖C++的知识点,又接近工程实际需要。
目的是通过课程设计的综合训练,培养学生实际分析问题、解决问题的能力,以及编程和动手能力,最终目标是通过课程设计这种形式,帮助学生系统掌握C++程序设计这门课程的主要内容,养成良好的编程习惯,更好的完成教学任务。
2、课程设计任务与要求:
本次课程设计利用《C++程序设计》课程中所学到的编程知识和编程技巧,完成具有一定难度和工作量的程序设计题目,帮助学生掌握编程、调试的基本技能,独立完成所布置的任务。
要求:
1、对系统进行功能需求分析
2、设计合理的数据结构和系统框架
3、编程简练,程序功能齐全,能正确运行
4、说明书、流程图要清楚
5、课题完成后必须按要求提交课程设计报告
任务:
设计一个商品销售管理系统。
运用C++语言描述商品类、供应商类。
要求设计中综合运用C++基础知识,利用指针对商品、供应商链表进行处理,方便快捷的进行增删改,充分利用友元来处理两个类之间的关系,理解面向对象程序设计的核心的概念。
实现功能:
(1)建立商品类、供应商类
(2)商品、供应商信息的初始化
(3)商品信息的添加、修改、删除、查找
(4)供应商信息的添加、修改、删除、查找
(5)商品信息、供应商信息的输出
备注:
将商品、供应商保存为文件,能够写入与读出。
概要设计
(1)需求分析:
要实现对商品,供应商信息的添加、修改、删除、查找,并输出信息,能够方便快捷,并有用户能详细清楚的操作指南。
(2)模块说明:
本次程序设计中,需要设计10个模块,分别是添加、修改、删除、查找、输出商品信息和供应商信息,一共4个类:
分别是商品类、商品数据类、供应商类、供应商数据类。
通过几个switch语句实现用户选择功能。
主要函数流程图:
(3)详细设计
商品数据类的设计
classspData
{
private:
charname[100];
intcount;
floatiprice;
floatoprice;
chargys[20];
public:
intid;
intgetId()
char*getName()
intgetCount()
floatgetBuy()
floatgetSale()
char*getGys()
voidsetId(intn)
voidsetName(charna[])
voidsetCount(intc)
voidsetBuy(floati)
voidsetSale(floato)
voidsetGys(charg[])
};
商品类的设计
classCommodity
{
private:
spDatat[50];
intn;
public:
voidnewFile()
{
intid;
intn;
charname[50];
intcount;
floatiprice;
floatoprice;
chargys[20];
if(n<0)
n=0;
inti;
spDatatemp;
for(;;n++)
{
cout<<"商品编号:
";
cin>>id;
if(id==-1)
break;
t[n].setId(id);
cout<<"商品名:
";
cin>>name;
t[n].setName(name);
cout<<"库存量:
";
cin>>count;
t[n].setCount(count);
cout<<"进价:
";
cin>>iprice;
t[n].setBuy(iprice);
cout<<"售价:
";
cin>>oprice;
t[n].setSale(oprice);
cout<<"供应商:
";
cin>>gys;
t[n].setGys(gys);
cout<<"若商品添加完毕,请按-1退出添加!
"< for(i=0;i { if(t[i].getId()>t[n].getId()) { temp=t[i]; t[i]=t[n]; t[n]=temp; } } } } voidshowData(inti) { spDatat,*p; p=&t; cout< < < < < < } voidshowData() {intn; cout<<"商品编号" < < < < < < for(inti=0;i if(t[i].getCount()>0) showData(i); cout<<"商品种类: "< } voidsave() { ofstreamfout; fout.open("商品清单.txt",ios: : app); if(! fout) { cout<<"cannotopenthefile! "< return; } fout<<"商品编号"<<""<<"商品名"<<""<<"库存量"<<""<<"进价"<<""<<"售价"<<""<<"供应商"<<""< for(inti=0;i { fout< } cout<<"*************SaveSuccess! *****************"< fout.close(); } voidxiugai() { intcount; charname[100]; floatiprice; floatoprice; chargys[20]; inttemp; temp=search(); if(temp==-1) { cout<<"cannotfindtheshopping! "< return; } else{cout<<"请输入新数据: "< cout<<"商品名: "; cin>>name; t[temp].setName(name); cout<<"库存量: "; cin>>count; t[temp].setCount(count); cout<<"进价: "; cin>>iprice; t[temp].setBuy(iprice); cout<<"售价: "; cin>>oprice; t[temp].setSale(oprice); cout<<"供应商: "; cin>>gys; t[temp].setGys(gys); } } intsearch() {intid; cout<<"id: "; cin>>id; intlow=0,mid,high=n-1; while(low<=high) { mid=(low+high)/2; if(t[mid].getId()==id) returnmid; elseif(t[mid].getId()>id) high=mid-1; elselow=mid+1; } return-1; } voidremove() {spDatat[10]; cout<<"请输入要删除的商品编号"< intid; cin>>id; fstreamfile("商品清单.txt",ios: : in|ios: : out|ios: : binary); for(intu=0;u<5;u++) file.read((char*)&t[u],sizeof(t[u])); for(intv=0;v<5;v++) { if(t[v].id==id) continue; else file.write((char*)&t[v],sizeof(t[v])); cout<<"该商品被删除"< } file.close(); } }; 供应商数据类的设计 classspData { private: charname[100]; intcount; floatiprice; floatoprice; chargys[20]; public: intid; intgetId() char*getName(charna[]) intgetCount() floatgetBuy() floatgetSale() char*getGys() voidsetId(intn) voidsetName(charna[]) voidsetCount(intc) voidsetBuy(floati) voidsetSale(floato) voidsetGys(charg[]) }; 供应商类的设计 classgongyingshang { private: gysDatat[50]; intn; public: voidnewFile() {intid; charname[50]; intphone; if(n<0) n=0; for(;;n++) { cout<<"供应商编号: "; cin>>id; if(id==-1) break; t[n].setid(); cout<<"供应商名称: "; t[n].setname(name); cout<<"供应商电话: "; t[n].setphone(); cout<<"若供应商添加完毕,请按-1退出添加! "< } } voidshowData(inti) { gysDatat,*p; p=&t; cout< < < < } voidshowData() { cout< < < < for(inti=0;i showData(i); cout<<"产品种类: "< } voidsave() { ofstreamfout; fout.open("供应商.txt",ios: : app); if(! fout) { cout<<"cannotopenthefile! "< return; } fout<<"供应商编号"<<""<<"供应商姓名"<<""<<"供应商手机号"<<""< for(inti=0;i { fout< } cout<<"*************SaveSuccess! *****************"< fout.close(); } intsearch() {intid; cout<<"id: "; cin>>id; intlow=0,mid,high=n-1; while(low<=high) { mid=(low+high)/2; if(t[mid].getid()==id) returnmid; elseif(t[mid].getid()>id) high=mid-1; elselow=mid+1; } return-1; } voidxiugai() { charname[100]; intphone; inttemp; temp=search(); if(temp==-1) { cout<<"cannotfindthegys! "< return; } else{cout<<"请输入新数据: "< cout<<"供应商名: "; cin>>name; t[temp].setname(name); cout<<"供应商手机号: "; cin>>phone; t[temp].setphone(); } } voidremove() {gysDatag[10]; cout<<"请输入要删除的供应商编号"< intid; cin>>id; fstreamfile("gys.txt",ios: : in|ios: : out|ios: : binary); for(intu=0;u<5;u++) file.read((char*)&g[u],sizeof(g[u])); for(intv=0;v<5;v++) { if(g[v].id==id) continue; else file.write((char*)&g[v],sizeof(g[v])); cout<<"该供应商被删除"< } file.close(); } }; 菜单函数的设计 inlinevoidmenu2() { system("cls"); cout<<"******欢迎使用商品销售管理系统******"< cout<<"***********商品选项**********"< cout<<" (1)添加"< cout<<" (2)保存"< cout<<"(3)删除"< cout<<"(4)查找"< cout<<"(5)信息输出"< cout<<"(6)修改"< cout<<"(7)菜单"< cout<<"(0)退出系统"< cout<<"***********2012.6***********"< } inlinevoidmenu1() { system("cls"); cout<<"******欢迎使用商品销售管理系统******"< cout<<"***********主菜单**********"< cout<<" (1)商品选项"< cout<<" (2)供应商选项"< cout<<"(0)退出系统"< cout<<"***********2012.6*************"< } inlinevoidmenu3() { system("cls"); cout<<"******欢迎使用商品销售管理系统******"< cout<<"***********供应商选项**********"< cout<<" (1)添加"< cout<<" (2)保存"< cout<<"(3)删除"< cout<<"(4)查找"< cout<<"(5)信息输出"< cout<<"(6)修改"< cout<<"(7)菜单"< cout<<"(0)退出系统"< cout<<"***********2012.6***********"< } 主函数的设计: intmain() { menu1(); intx; cout<<"请选择: "; cin>>x; switch(x) { case1: { menu2(); Commoditycom; intc; for(;;) { cout<<"请选择: "; cin>>c; switch(c) { case1: com.newFile();break; case2: com.save();break; case3: com.remove();break; case4: com.search;break; case5: com.showData();break; case6: menu1();break; case0: { cout<<"***********谢谢使用**********"< cout<<"*********! 再见! **********"< } break; } } } case2: { menu3(); gongyingshanggys; intc; for(;;) { cout<<"请选择: "; cin>>c; switch(c) { case1: gys.newFile();break; case2: gys.save();break; case3: gys.remove();break; case4: gys.showData();break; case5: gys.search();break; case6: menu1();break; case0: { cout<<"***********谢谢使用**********"< cout<<"*********! 再见! **********"< } break; } } } case0: { cout<<"***********谢谢使用**********"< cout<<"*********! 再见! **********"< } break; } return0; } (4)调试分析: F: \程序\3.cpp(226): warningC4700: localvariable'n'usedwithouthavingbeeninitialized F: \程序\3.cpp(246): warningC4700: localvariable'c1'usedwithouthavingbeeninitialized F: \程序\3.cpp(348): warningC4700: localvariable'g1'usedwithouthavingbeeninitialized C: \DocumentsandSettings\Administrator\桌面\q.cpp(237): errorC2562: 'search': 'void'functionreturningavalue C: \DocumentsandSettings\Administrator\桌面\q.cpp(228): seedeclarationof'search' C: \DocumentsandSettings\Administrator\桌面\q.cpp(243): errorC2562: 'search': 'void'functionreturningavalue C: \DocumentsandSettings\Administrator\桌面\q.cpp(228): seedeclarationof'search’ (5)用户使用说明手册: 1.进入演示程序后,即显示对话形式的提示操作过程: 如第一个选择1商品选项,即显示 (1)添加 (2)保存(3)删除(4)查找(5)信息
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 课程设计 商品 管理 系统 精编