已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面 向 对 象 技 术大 作 业设计题目: 商品管理系统一、 实验目的1、学会定义类;2、学会怎样使用有关类方面的知识,例如继承等;3、程序输出结果输入到文本文件里面。二、设计内容及要求1、实现商品信息的数据录入。2、能够对商品的信息进行保护,对商品的信息进行输入和修改的时候必须输入密码才能进行。3、能够根据商品的商品名,实现该成员信息的修改。4、实现按商品名、售价查询现有商品的个人信息。5、实现按商品名删除指定的商品信息。6、能够以列表方式输出所有商品信息。7、用类实现以上功能。8、通过文件存储商品信息。三、开发环境WINDOWS xp sp3VC+ 6.0 sp6四、系统模块功能该程序共由七个模块构成,分别是:输入模块,输出模块,查找模块,删除模块, 显示模块,修改密码模块,系统功能模块框架图如图1所示商品管理系统系统修改密码修改模块删除模块添加模块查询模 块输出模块图1 商品管理系统功能模块框架图1、输入模块:该模块用于接收用户输入的商品信息。2、输出模块:该模块用于输出用户输入的商品息。3、查找模块:按照商品名和售价查询用户输入的商品信息。4、删除模块:按照用户输入的商品名进行查找相对应的商品信息,如果找到便显示该生信息并询问是否删除该信息,如果选择“是”就彻底删除该信息。5、显示模块:根据商品名显示单个商品信息。6、修改密码模块:修改密码。五、程序设计分析1、类结构(1)主体类man1)成员:商品名、进价、售价、数量、厂商、密码。2)函数:构造函数man()(初始化数据成员为0)首页char inter_face()(设定面向用户的界面,返回一个char值以调用所要的功能函数)添加商品信息void add()(添加一个商品的信息,并调用saveall()把信息存到文件)删除void del ()(创建两个流利用文件间的读取与读入实现删除)修改void change()(先把要改的信息删除再调用saveall()把新信息保存)显示void show_all()(显示全部信息)查询void select()(按商品名查询文件里商品的信息)按售价查询void sele()(查询大于用户输入的售价的商品信息)保存void saveall() (把修改、新添加的信息写入文件并保存)修改密码void yourkey()(利用clear清除文件原来的密码再重设新密码)验证void thekey()(用if(youkey!=key)判断是否输入正确密码)2、模块设计分析(1)主函数1)先用system()清屏,并定义对象abj。2) 使用system(color 04f)设定了控制台的颜色。3)switch (choose= er_face()调用inter_face()输出主界面运用char inter_face()的返回值以调用各功能函数(例如,当choose=ADD时调用添加商品函数void addfootballlist())。(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 str把读取的商品的信息输出到list文件内。之后关闭两个文件。4)定义一个文件输入流对象in,并以输入方式打开文件list;定义一个文件输出流对象out,并以输出方式打开文件list2。5)把list内的商品信息一行一行的读取到字符串str,用out 输入商品的信息。2)调用函数saveall()把添加新信息保存到文件里。3)saveall()函数:定义一个输出的文件流ofp,并以追加的方式打开文件list2。4)用ofp 把新添加的信息添加到文件末尾。5)用setw()设置输出数据项的域宽。6)用setiosflags(ios:left)设置输出的数据按输出域左对齐。(4)修改1)先把要修改的商品的信息删除,程序的算法跟删除模块一样。2)删除要修改的商品的信息后再添加商品信息实现修改,添加的的程序算法跟添加模块一样。当找不到修改的商品,即满足if (flag) 用cout name number读取文件的信息,用name=sign判断当符合时显示,并把fig的值改为false。4)用判断语句if判断fig是否为true,为true则显示“没有收录该商品 按回车返回主菜单”以提醒用户。5)按售价查询则利用条件sign=shoujia判断,其它部分的算法跟按商品名查询一样。(6)输出1)首界面函数char inter_face()用system(cls)实现清屏操作,再用cout设定主菜单界面,并返回一个char值return choose,其值为用户输入一选择功能模块的值供主函数的switch选择语句实现模块的选择。2)输出全部商品函数void show_all()先定义一个输入流ifp2并以输入的方式打开文件,定义一个bool 变量flag并初始化为true, 定义一个字符串record。3)用循环语句while (getline(ifp2, record)一行一行的读取文件的信息并用cout key输入你的新密码,用ofp setiosflags(ios:left) key读取密码文件的密码,定义一个double型变量yourkey并把用户输入的密码赋值到yourkey,用if(youkey!=key)判断用户输入的密码是否正确,不正则用exit(1)退出系统,正确程序再继续取运行。六、运行截图七、源程序代码 #include #include #include #include using namespace std;class man /定义类public: man();/默认构造函数 char inter_face();/首页 void add();/添加商品 void del();/删除商品 void show_all();/显示所有商品 void change();/修改信息 void select();/查询商品void sele();/ void saveall();/保存新增加的商品void thekey();void yourkey();private: string name;/商商品名 string address;/生产商 string number;/进价 string duty;/数量 double shoujia;double key;man:man() name = 0; address = 0; number = 0; duty = 0; shoujia= 0;/首页char man:inter_face() system(cls); cout endl; couttt- endl tt- endl tt- endltt 商品管理系统 endl tt endltt endltt- endl tt- endltt endl tt 1. 添加新商品 4. 修改信息 endl tt endl tt 2. 删除商品 5. 查询商品 endl tt endl tt 3. 显示所有商品 6.按售价查询 endlendl tt 0.退出 7. 修改密码 endlendlendl choose; cin.clear(); cin.sync(); return choose;/添加商品void man:add() cout endl 根据下面提示输入新商品信息 endl endl name; cin.clear(); cin.sync(); cout number; cin.clear(); cin.sync(); cout shoujia; cin.clear(); cin.sync(); cout duty; cin.clear(); cin.sync(); cout address; cin.clear(); cin.sync(); saveall(); cout endl endl 新商品信息已经保存 endl endl; getchar(); /删除商品void man:del() ofstream ofp(list.txt, ios:out); ifstream ifp2(list2.txt, ios:in); if (!ofp | !ifp2) cout endl 错误 无法找到文件 endl; getchar(); cin.sync(); return; string sign; cout endl sign; string list; bool flag = true; string str; while (ifp2 name number) getline(ifp2,str); if ( sign=name ) cout endl 你想删除的商品: endl endl商品名tt进价(元)tt售价(元)t数量t生产商endl; cout setiosflags(ios:left) setw(17) name number str endl; int d;coutd;if(d=1) flag = false; break; ofp setiosflags(ios:left) setw(17) name number str endl; if (flag) cout endl 本次删除失败! endl endl; else while (getline(ifp2, str) ofp str endl;getchar; ofp.close(); ifp2.close(); ofstream out(list2.txt, ios:out); ifstream in(list.txt, ios:in); if (!out | !in) cout endl 错误 无法打开文件 endl endl; return; while (getline(in, str) out str endl; out.close(); in.close(); cout endl 该商品的信息已经从记录中删除 endl endl;getchar(); getchar(); cin.sync(); void man:sele() ifstream ifp2(list2.txt, ios:in); if (!ifp2) cout endl 错误 无法打开文件 endl endl; getchar(); return; double sign(0); cout endl sign; cin.clear(); cin.sync(); string list; bool flag = true; string str; while (ifp2 namenumbershoujiadutyaddress) getline(ifp2, str); if (sign=shoujia) cout 商品名tt进价(元)tt售价(元)t数量t生产商endl; cout list endl; cout setiosflags(ios:left) setw(17) name setw(16) number setw(18) shoujia setw(14) duty setw(20) address endl; cout提示:按0键再按回车返回主菜单k=0;) flag = false; break;/显示所有商品void man:show_all() ifstream ifp2(list2.txt,ios:in); if (!ifp2) cout endl 错误 无法找到文件 endl; getchar(); return; bool flag = true; string record; while (getline(ifp2, record) if (flag) cout endl所有商品信息如下: endlendl商品名tt进价(元)tt售价(元)t数量t生产商endl; cout record endl; flag = false; if (flag) cout endl 你的记录中没有商品 endl endl; else cout endl *所有商品已经全部显示出来* endl endl; getchar();/修改信息void man:change() ofstream ofp(list.txt, ios:out); ifstream ifp2(list2.txt, ios:in); /if (!ofp | !ifp2) cout endl 错误 无法打开文件 endl; getchar(); return; string sign; cout endl sign; string list; bool flag = true; string str; while (ifp2 name number) getline(ifp2, str); if ( sign=name ) cout endl 你想修改的商品:endl;cout 商品名tt进价(元)tt售价(元)t数量t生产商endl; cout list endl; cout setiosflags(ios:left) setw(17) name setw(16) number setw(18) shoujia setw(14) duty setw(20) address endl; flag = false; break; ofp setiosflags(ios:left) setw(17) name number str endl; if (flag) cout endl 无法找到该商品 endl 你是否要添加该商品? (1-是 0-否) _add;if(_add=0) goto the_end;else goto the_add; else while (getline(ifp2, str) ofp str endl; ofp.close(); ifp2.close(); ofstream out(list2.txt, ios:out); ifstream in(list.txt, ios:in); if (!out | !in) cout endl 错误 无法打开文件 endl endl; getchar(); return; while (getline(in, str) out str endl; out.close(); in.close(); cout endl 请按以下步骤输入修改: endl; the_add: coutname; cin.clear(); cin.sync(); cout number; cin.clear(); cin.sync(); cout shoujia; cin.clear(); cin.sync(); cout duty; cin.clear(); cin.sync(); cout address; cin.clear(); cin.sync(); saveall(); cout endl endl 新商品信息已经保存 endl endl; the_end: getchar();/查询商品void man:select() ifstream ifp2(list2.txt, ios:in); if (!ifp2) cout endl 误 无法打开文件 endl endl; getchar(); return; string sign; cout endl sign; cin.clear(); cin.sync(); string str; while (ifp2 name number) getline(ifp2, str);/ if ( name=sign ) cout endl 你要查找的商品是: endl商品名tt进价(元)tt售价(元)t数量t生产商endl; cout setiosflags(ios:left) setw(17) name number str endl;cout提示:按0键再按回车返回主菜单k=0;) break; elsecoutendl没有收录该商品 按回车返回主菜单;getchar();break ; void man:thekey() /修改密码 ifstream ofp(PSW.dat, ios:in);/以读的方式打开 if (!ofp) cout endl 这可能是你第一次使用该系统 请输入新密码: endl endl; getchar(); goto xia; double youkey;coutyoukey; ofpkey;if(youkey=key)ofp.close();xia:fstream f; f.open(PSW.dat, ios:out); f.clear();/清空文件 f.close();ofstream ofp(PSW.dat, ios:app); cout endl key;coutendl密码修改成功;getchar(); cin.clear(); cin.sync(); ofp setiosflags(ios:left) key endl; ofp.close();elseofp.close();cout密码错误 你无权管理进入。再见;system(pause);exit(1);void man:yourkey()ifstream fp(PSW.dat, ios:in);if (!fp) cout endl 这是你第一次使用该系统 请先选择修改密码 endl key;double youkey;coutendlyoukey;if(youkey!=key)fp.close();cout密码错误 你无权管理进入。再见;system(pause);exit(1);fp.cl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (2026年)学校结核病疫情报告制度及流程
- 2026税务面试题型框架及答案
- 2026顺丰ie工程师面试题及答案
- 2026司法类监狱面试题及答案
- 2026思维灵活性面试题及答案
- 2026思政面试题目及答案
- CTA检查方式课件
- 常识作文模板课件
- 彩色影子画课件
- 财税业务模板课件
- 2026年西安铁路局人员招聘笔试备考题库及详细答案解析
- 2026年建筑行业数字孪生技术应用报告
- 2026年校招:浙江交通投资集团试题及答案
- 2026年《中国慢性肾脏病临床管理指南(2026版)》
- 2026云南省政府采购评审专家考试历年参考题库含答案详解
- T/CI 1074-2025高密度聚乙烯(HDPE)实壁增强塑料顶管
- 2026-2027学年第一学期初一历史人教版上学期期中测试卷(含答案)
- 专题14小说阅读(原卷版+解析)
- 放射科防护装修施工方案及技术措施
- 2025青岛水务集团有限公司招聘(89人)笔试历年参考题库附带答案详解
- 2025版胸痛中心规范化应用主要心血管生物标志物专家共识课件
评论
0/150
提交评论