《C商品管理系统》由会员分享,可在线阅读,更多相关《C商品管理系统(17页珍藏版)》请在金锄头文库上搜索。
1、面 向 对 象 技 术大 作 业设计题目: 商品管理系统一、 实验目的1、学会定义类;2、学会怎样使用有关类方面的知识,例如继承等;3、程序输出结果输入到文本文件里面。二、设计内容及要求1、实现商品信息的数据录入。2、能够对商品的信息进行保护,对商品的信息进行输入和修改的时候必须输入密码才能进行。3、能够根据商品的商品名,实现该成员信息的修改。4、实现按商品名、售价查询现有商品的个人信息。5、实现按商品名删除指定的商品信息。6、能够以列表方式输出所有商品信息。7、用类实现以上功能。8、通过文件存储商品信息。三、开发环境WINDOWS xp sp3VC+ 6.0 sp6四、系统模块功能该程序共由
2、七个模块构成,分别是:输入模块,输出模块,查找模块,删除模块, 显示模块,修改密码模块,系统功能模块框架图如图1所示商品管理系统系统修改密码修改模块删除模块添加模块查询模 块输出模块图1 商品管理系统功能模块框架图1、输入模块:该模块用于接收用户输入的商品信息。2、输出模块:该模块用于输出用户输入的商品息。3、查找模块:按照商品名和售价查询用户输入的商品信息。4、删除模块:按照用户输入的商品名进行查找相对应的商品信息,如果找到便显示该生信息并询问是否删除该信息,如果选择“是”就彻底删除该信息。5、显示模块:根据商品名显示单个商品信息。6、修改密码模块:修改密码。五、程序设计分析1、类结构(1)
3、主体类man1)成员:商品名、进价、售价、数量、厂商、密码。2)函数:构造函数man()(初始化数据成员为0)首页char inter_face()(设定面向用户的界面,返回一个char值以调用所要的功能函数)添加商品信息void add()(添加一个商品的信息,并调用saveall()把信息存到文件)删除void del ()(创建两个流利用文件间的读取与读入实现删除)修改void change()(先把要改的信息删除再调用saveall()把新信息保存)显示void show_all()(显示全部信息)查询void select()(按商品名查询文件里商品的信息)按售价查询void sel
4、e()(查询大于用户输入的售价的商品信息)保存void saveall() (把修改、新添加的信息写入文件并保存)修改密码void yourkey()(利用clear清除文件原来的密码再重设新密码)验证void thekey()(用if(youkey!=key)判断是否输入正确密码)2、模块设计分析(1)主函数1)先用system()清屏,并定义对象abj。2) 使用system(color 04f)设定了控制台的颜色。3)switch (choose= abj.inter_face()调用inter_face()输出主界面运用char inter_face()的返回值以调用各功能函数(例如,
5、当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)当
6、你确定要删除时输入“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
7、()把添加新信息保存到文件里。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
8、)用判断语句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, 定义一
9、个字符串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 /定义类pub
10、lic: 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