C++商品管理系统.docx
- 文档编号:15515757
- 上传时间:2023-07-05
- 格式:DOCX
- 页数:26
- 大小:37.46KB
C++商品管理系统.docx
《C++商品管理系统.docx》由会员分享,可在线阅读,更多相关《C++商品管理系统.docx(26页珍藏版)》请在冰点文库上搜索。
C++商品管理系统
面向对象技术
大作业
设计题目:
商品管理系统
一、实验目的
1、学会定义类;
2、学会怎样使用有关类方面的知识,例如继承等;
3、程序输出结果输入到文本文件里面。
二、设计内容及要求
1、实现商品信息的数据录入。
2、能够对商品的信息进行保护,对商品的信息进行输入和修改的时候必须输入密码才能进行。
3、能够根据商品的商品名,实现该成员信息的修改。
4、实现按商品名、售价查询现有商品的个人信息。
5、实现按商品名删除指定的商品信息。
6、能够以列表方式输出所有商品信息。
7、用类实现以上功能。
8、通过文件存储商品信息。
三、开发环境
WINDOWSxpsp3
VC++6.0sp6
四、系统模块功能
该程序共由七个模块构成,分别是:
输入模块,输出模块,查找模块,删除模块,显示模块,修改密码模块,系统功能模块框架图如图1所示
1、输入模块:
该模块用于接收用户输入的商品信息。
2、输出模块:
该模块用于输出用户输入的商品息。
3、查找模块:
按照商品名和售价查询用户输入的商品信息。
4、删除模块:
按照用户输入的商品名进行查找相对应的商品信息,如果找到便显示该生信息并询问是否删除该信息,如果选择“是”就彻底删除该信息。
5、显示模块:
根据商品名显示单个商品信息。
6、修改密码模块:
修改密码。
五、程序设计分析
1、类结构
(1)主体类man
1)成员:
商品名、进价、售价、数量、厂商、密码。
2)函数:
构造函数man()(初始化数据成员为0)
首页charinter_face()(设定面向用户的界面,返回一个char值以调用所要的功能函数)
添加商品信息voidadd()(添加一个商品的信息,并调用saveall()把信息存到文件)
删除voiddel()(创建两个流利用文件间的读取与读入实现删除)
修改voidchange()(先把要改的信息删除再调用saveall()把新信息保存)
显示voidshow_all()(显示全部信息)
查询voidselect()(按商品名查询文件里商品的信息)
按售价查询voidsele()(查询大于用户输入的售价的商品信息)
保存voidsaveall()(把修改、新添加的信息写入文件并保存)
修改密码voidyourkey()(利用clear清除文件原来的密码再重设新密码)
验证voidthekey()(用if(youkey!
=key)判断是否输入正确密码)
2、模块设计分析
(1)主函数
1)先用system()清屏,并定义对象abj。
2)使用system("color04f")设定了控制台的颜色。
3)switch(choose=abj.inter_face())调用inter_face()输出主界面运用charinter_face()的返回值以调用各功能函数(例如,当choose=ADD时调用添加商品函数voidaddfootballlist())。
(2)删除模块
1)定义一个文件输入流对象ifp2,并以输入方式打开文件;定义一个文件输出流对象ofp,并以输出方式打开文件。
2)定义一个bool类型把其初始为true;用while(ifp2>>name>>number)和getline(ifp2,str)循环从文本中一行一行读取;用if(sign==name)判断你输入要删除的商品的商品名是否等于从文件中读取的商品名name;不相等是把从文件list2所读取一行的信息输入到文件list.txt里;相等的话把要删除商品的信息显示出来,运用if(d==1)当你确定要删除时输入“1”,把标志flag的值改为FALSE以在下面判断是否删除成功。
3)用if(flag)判断,当flag的值跟初始化的值一样是输出“本次删除失败”,当flag的值改为false时用while(getline(ifp2,str))循环继续读取要删除的商品之后的商品信息,并用ofp< 之后关闭两个文件。 4)定义一个文件输入流对象in,并以输入方式打开文件list;定义一个文件输出流对象out,并以输出方式打开文件list2。 5)把list内的商品信息一行一行的读取到字符串str,用out< List为删除后的文件,list2为系统保存信息的文件,利用两个文件数据的输出、输入实现删除。 (3)添加模块 1)利用cin>>输入商品的信息。 2)调用函数saveall()把添加新信息保存到文件里。 3)saveall()函数: 定义一个输出的文件流ofp,并以追加的方式打开文件list2。 4)用ofp<<把新添加的信息添加到文件末尾。 5)用setw()设置输出数据项的域宽。 6)用setiosflags(ios: : left)设置输出的数据按输出域左对齐。 (4)修改 1)先把要修改的商品的信息删除,程序的算法跟删除模块一样。 2)删除要修改的商品的信息后再添加商品信息实现修改,添加的的程序算法跟添加模块一样。 当找不到修改的商品,即满足if(flag)用cout<<询问是否添加查找失败的商品,当确实要添加时输入“1”用goto语句指向添加模块;当不想添加时输入“0” 用goto退出修改。 (5)查询 1)定义一个输入流ifp2,以输入方式打开文件。 2)定义一个字符串sign,定义一个bool变量fig并初始化为true。 3)把输入的名字赋值到字符串sign,用ifp2>>name>>number读取文件的信息,用name==sign判断当符合时显示,并把fig的值改为false。 4)用判断语句if判断fig是否为true,为true则显示“没有收录该商品按回车返回主菜单”以提醒用户。 5)按售价查询则利用条件sign<=shoujia判断,其它部分的算法跟按商品名查询一样。 (6)输出 1)首界面函数charinter_face()用system("cls")实现清屏操作,再用cout<<设定主菜单界面,并返回一个char值returnchoose,其值为用户输入一选择功能模块的值供主函数的switch选择语句实现模块的选择。 2)输出全部商品函数voidshow_all()先定义一个输入流ifp2并以输入的方式打开文件,定义一个bool变量flag并初始化为true,定义一个字符串record。 3)用循环语句while(getline(ifp2,record))一行一行的读取文件的信息并用cout< 4)用判断语句if判断flag的值为true时输出“你的记录中没有商品”else输出“所有商品的信息已经全部显示”。 (7)修改密码 1)修改密码函数voidthekey()先定义一个输入流ofp并以输入的方式打开文件,当文件打不开时用当文件还没建立则用goto到xia建立PWS.dat文件初始密码。 2)当文件存在即有原密码时、定义一个变量yourkey,输入密码赋值到yourkey,用判断语句if判断youkey==key是否满足,当不满足时用exit (1)退出系统,并提醒“你无权管理,请与用户联系”。 当满足时关闭文件再定义一个输出流f并以输出的方式打开密码文件,用f.clear()清空文件实现对原密码的删除,关闭文件。 3)定义一个输出流ofp并以追加的方式打开密码文件,用cin>>key输入你的新密码,用ofp< : left)< 4)密码判断函数voidball: : yourkey()定义一个输入流fp并以输入的方式打开文件,当文件打不开时用cout提示“对不起密码文件不存在! 请进入修改密码设定密码”。 用fp>>key读取密码文件的密码,定义一个double型变量yourkey并把用户输入的密码赋值到yourkey,用if(youkey! =key)判断用户输入的密码是否正确,不正则用exit (1)退出系统,正确程序再继续取运行。 六、运行截图 七、源程序代码 #include #include #include #include usingnamespacestd; classman//定义类 { public: man();//默认构造函数 charinter_face();//首页 voidadd();//添加商品 voiddel();//删除商品 voidshow_all();//显示所有商品 voidchange();//修改信息 voidselect();//查询商品 voidsele();// voidsaveall();//保存新增加的商品 voidthekey(); voidyourkey(); private: stringname;//商商品名 stringaddress;//生产商 stringnumber;//进价 stringduty;//数量 doubleshoujia; doublekey; }; man: : man() { name="\0"; address="\0"; number="\0"; duty="\0"; shoujia=0; } //首页 charman: : inter_face() { system("cls"); cout< cout<<"\t\t----------------------------------------------------"< <<"\t\t----------------------------------------------------"< <<"\t\t----------------------------------------------------"< <<"\t\t商品管理系统"< <<"\t\t"< <<"\t\t"< <<"\t\t----------------------------------------------------"< <<"\t\t----------------------------------------------------"< <<"\t\t"< <<"\t\t1.添加新商品4.修改信息"< <<"\t\t"< <<"\t\t2.删除商品5.查询商品"< <<"\t\t"< <<"\t\t3.显示所有商品6.按售价查询"< <<"\t\t0.退出7.修改密码"< <<"\t\t\t选择: "; charchoose; cin>>choose; cin.clear(); cin.sync(); returnchoose; } //添加商品 voidman: : add() { cout< <<"商品名: "; cin>>name; cin.clear();cin.sync(); cout<<"进价(元): "; cin>>number; cin.clear();cin.sync(); cout<<"售价(元): "; cin>>shoujia; cin.clear();cin.sync(); cout<<"数量: "; cin>>duty; cin.clear();cin.sync(); cout<<"生产商: "; cin>>address; cin.clear();cin.sync(); saveall(); cout< getchar(); } //删除商品 voidman: : del() { ofstreamofp("list.txt",ios: : out); ifstreamifp2("list2.txt",ios: : in); if(! ofp||! ifp2) { cout< getchar();cin.sync(); return; } stringsign; cout< "; cin>>sign; stringlist; boolflag=true; stringstr; while(ifp2>>name>>number) { getline(ifp2,str); if(sign==name) { cout< "< < cout< : left)< <<""< intd; cout<<"确定要删除请按‘1’键: "; cin>>d; if(d==1) { flag=false; } break; } ofp< : left)< <<""< } if(flag) { cout< "< } else { while(getline(ifp2,str)) { ofp< getchar; } ofp.close(); ifp2.close(); ofstreamout("list2.txt",ios: : out); ifstreamin("list.txt",ios: : in); if(! out||! in) { cout< return; } while(getline(in,str)) { out< } out.close(); in.close(); cout< getchar(); } getchar(); cin.sync(); } voidman: : sele() { ifstreamifp2("list2.txt",ios: : in); if(! ifp2) { cout< getchar(); return; } doublesign(0); cout< cin>>sign; cin.clear();cin.sync(); stringlist; boolflag=true; stringstr; while(ifp2>>name>>number>>shoujia>>duty>>address) { getline(ifp2,str); if(sign<=shoujia) { cout<<"商品名"<<"\t\t"<<"进价(元)"<<"\t\t"<<"售价(元)"<<"\t"<<"数量"<<"\t"<<"生产商"< cout< cout< : left)< <<""< < < < } } cout<<"提示: 按0键再按回车返回主菜单"< for(intk;cin>>k==0;) { flag=false; break; } } //显示所有商品 voidman: : show_all() { ifstreamifp2("list2.txt",ios: : in); if(! ifp2) { cout< getchar(); return; } boolflag=true; stringrecord; while(getline(ifp2,record)) { if(flag) { cout< <<"所有商品信息如下: "< < } cout< flag=false; } if(flag) { cout< } else { cout< } getchar(); } //修改信息 voidman: : change() { ofstreamofp("list.txt",ios: : out); ifstreamifp2("list2.txt",ios: : in);// if(! ofp||! ifp2) { cout< getchar(); return; } stringsign; cout< "; cin>>sign; stringlist; boolflag=true; stringstr; while(ifp2>>name>>number) { getline(ifp2,str); if(sign==name) { cout< "< cout<<"商品名"<<"\t\t"<<"进价(元)"<<"\t\t"<<"售价(元)"<<"\t"<<"数量"<<"\t"<<"生产商"< cout< cout< : left)< <<""< < < < flag=false; break; } ofp< : left)< <<""< } if(flag) { cout< <<"你是否要添加该商品? (1-是0-否)" < int_add; cin>>_add; if(_add==0) gotothe_end; else gotothe_add; } else { while(getline(ifp2,str)) { ofp< } ofp.close(); ifp2.close(); ofstreamout("list2.txt",ios: : out); ifstreamin("list.txt",ios: : in); if(! out||! in) { cout< getchar(); return; } while(getline(in,str)) { out< } out.close(); in.close(); } cout< "< the_add: cout<<"商品名: "; cin>>name; cin.clear();cin.sync(); cout<<"进价(元): "; cin>>number; cin.clear();cin.sync(); cout<<"售价(元): "; cin>>shoujia; cin.clear();cin.sync(); cout<<"数量: "; cin>>duty; cin.clear();cin.sync(); cout<<"生产商: "; cin>>address; cin.clear();cin.sync(); saveall(); cout< the_end: getchar(); } //查询商品
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 商品 管理 系统