版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、库存信息系统程序设计实验报告目录一、任务书3二、总体设计3三、模块功能与算法说明4四、流程图12五、源程序清单13六、程序测试20七、结论、体会及建议20附:参考文献资料201一、任务书题目15:库存管理系统的设计功能:实现库存信息管理,库存的基本信息包括编号、名称、类别、 价格、数量等基本要求:1. 设计简单的菜单,能够进行系统功能选择。2. 实现库存信息的录入功能。3. 在已有信息的基础上添加新的记录。4. 删除指定编号的记录。5. 修改指定编号的记录6. 实现信息的浏览功能7. 按编号查询功能&按金额排序功能二、总体设计1 定义数据结构体,用于存放库存信息,包括:编号number
2、.名称 name、价格price、种类type、数量quantity,这样做有利于数据独立方便 调用;2定义类b,继承结构体的数据,加入一系列的public函数实现系统 的功能;3. save ()函数,load ()函数是利用#include<fstream>库函数 里的文件的写入,读取,保存录入的数据,存放在“b.txt”文档里面;24通过case语句,选择要实现的函数,实现相应的功能。三、模块划分及功能主模块:void main()b ad;ado ad();while(l) switch(int nl=ad.menu()case l:system(,cls,
3、');ad.enter();break;case 2:system("cls");ad.display();break;case 3:system(,cls");ad.add();break;case 4:system("cls”);ad.change();break;case 5:system(,cls");ad.search();break;case 6:system(”cls");addel_inventory();break;case 7:system("cls");ad.sort();break;
4、case o:exit(o);1. 声明一个b类的对象ad,然后实现类里的load ()函数,目的是 读取txt格式文本里的信息,并记录信息的条数;2. while (1)是一个死循环语句,只有内部强制结束才会跳出循环, 这样做的好处是可以重复进入主函数进行操作;3. 死循环内部是switch ()语句,通过对象ad的调用函数menu()返 回的键入的实数值,选择要执行的case语句,以break结束。其他模块:模块一:读取记录void b:load()ifstream file("b.txt",ios:in);i=0;if(file.is_open()3while(!fi
5、le.eof()/ 文件尾?file>>ai. nu mber>>ai. name& gt;>ai.price>>ai.quantity& gt;>ai.type;file.close();/ 关闭文件if(!file.eof()i+;file.close();all=i;使用#include<fstream>库函数里的ifstream类,声明一个名为file 的对象,实现对b.txt文本的读取,并作为输入文件,简言z是你可以不打 开一个t
6、xt文本而用函数输入内容。模块二:保存记录void b:save() fstream file("b.txt",ios:out | ios:trunc);if(file.is_ope n()for(int i=o;i<all;i+)file<<ai.number<<”t”<<<<"t"<<ai.price<<"t"<&l
7、t;ai. quantity <&<<ai. type <&<<endl;file.close();关闭文件使用include<fstream>库函数里的ifstream类,声明一个名为file 的对象,实现对b.txt文本的打开,并作为输出文件,如果文本里有内容则 丢弃,用的是ios:trunc语句,简言之是你可以不打开一个txt文本里用函 数读取文本里的东西。模块三:录入函数4int b:enter() char ch;system("clsn);for
8、(i=all;i<20;i+)cout<;<;"编号:cin>>ai. nu mber;cout<<"名称:”;cin>>ai. name;cout<<"价格:cin>& gt;ai.price;cout<;<;h 数量:cin>>ai. quantity;cout<<“类别:cin>>a
9、i.type;all+;cout<<"条信息录人成功,是否继续录入?(y.是n.否)while(l)cin>>ch;if(ch='y'| |ch二二'y'| |ch二二'n'| |ch二二'n&#break;else cout<<"输入错误,请重新输入! n"if (ch='n' | | ch二二'n'
10、;)break;save();cout<<”录入成功!并己保存到文件。n"systemcpause11);return 0;根据提示可以输入通讯录个人信息,在输入结束后使用save()函数,将输入的信息保存到文本里,然后结束录入,用system(llpause-)跳回主菜 单进行再次功能选择.模块四:删除联系人void b:del_inventory()char c20;5system("clsh);/ 清屏cout<<h请输入耍删除编号:”;cin>>c;if(strcmp(ai. num
11、ber;c)=o) break;/存在 结束循环if(i=all)/输入信息不存在cout<<"你输入编号不存在n”;system(,pausen);/ 任意键继续return;for(i=0;i<all;i+)/ 遍历所有信息讦(strcmp(ai. nu mber,c)=o)ai=aall-l;/用最后一条信息覆盖要删除的信息all-;/信息条数减一save();/ 保存cout<<m删除成功!并已保存到文件。n"system(npause");通过输入编号与已保存数据的编号的匹配來确定要删
12、除的数据 通过用最后一条信息的覆盖达到删除冃的模块五:修改联系人void b:change()char s20;systemc'cls");/ 清屏cout<<"请输入要修改编号:cin>>s;for(int i=o;i<all;i+)if(strcmp(ai. numbers)二二 0)break;if(i=all)cout<<"对不起!你输入编号号不存在。nh;system(npausen);return;cout&编号:"6cin&am
13、p;gt;>ai. nu mber;cout&名称cin>>;cout&价格:”;cin>>ai.price;cout<<h 数量cin>>ai. quantity;cout<<h类别:cin>>ai.type;save();/ 保存cout<<"修改成功!并已保存到文件。n"system(,pausen);/ 任意键继续通过输入编号与己
14、保存数据的编号的匹配来确定要修改的数据,将需 修改的是数据显示出来以便确认,再通过输入新的数据将其覆盖,达到删 除冃的。模块六:查找联系人void b:search()char s20;system("clsh);cout<<"请输入编号cin>>s;for(int i=o;i<all;i+)if(strcmp(ai. numbers)二二0)break;cout<<"对不起!你输入的编号。n"systemcpause");return;cout&
15、amp;lt;<n查询结果如下:"<<endl;cout & 11; & 11;"cout&编号:"<<ai.number<<endl;cout&名称:”<<<<endl;cout&价格:"<<ai.price<<endl;cout&数量:"<<ai
16、. quantity <<endl;cout&类别:”<<ai.type<<endl;cout & 11; & 11; ”systemcpause");/ 任意键继续7 模块七:按价格进行排序void b:sort()int i,j;at;system("clsh);/ 清屏for(j=0;j<all-l;j+)for(i=0;i<all-l-j;i+)if(strcmp(ai.price,ai+l.price)>o)/ 排序
17、t=ai;ai=ai+l;ai+l=t;cout<<"排序结果如下:n"b1icoulixl l,<xl i,cout.setf(ios:left);/ 设置左对齐for(i=0;i<all;i+)/遍历输出所有信息cout<<"编号:"<<ai.number<<endl; cout<<"名称:"<<<<en
18、dl;cout&数量:"<<ai. quantity <<endl;cout<<n类别:"<<ai.type<<endl;cout<<" h<<endl;.i . ih b* .i h* couloillgill,system('pause,);通过输入编号与己保存数据的编号的匹配来确定耍查询的数据,通过 文件输出函数将所需数据整齐输出。模块八:所有信息的
19、浏览void b:display() systemc'cls");/ 清屏.i .1 . i hicoulcxilll,cout.setf(ios:left); 设:i左对齐for(int i=o;i<all;i+)cout&编号:"<<ai.number<<endl; cout&姓名:"<<<<endl;cout&价格:"<<ai.price<
20、;<endl; cout&数量:"<<ai. quantity <<endl; cout<<n类别:"<<ai.type<<endl; cout<<“ "<<endl;system(,pause,);/ 任意键继续通过for循环将录入信息的结构体中的数据依次输出模块九:添加信息void b:add() system("clsn);int i
21、=all;do cin>>ai. nu mber;cout<;<;"名称:cin>>ai. name;cout<<"价格:cin>>ai.price;cout<<h数量:cin>>ai. quantity;cout<<“类别:cin>> ai.type;save();cout<<"录入成功!
22、"<<endl;cout<<h是否继续录入? (y/n) h;9cin>>ch;all+;信息条数加1while(ch='y' 11 ch二二'y');save();/保存cout<<”添加成功!并已保存到文件。n"system(npausen);/任意键继续给信息结构体赋值 通过调用保存函数save ()将输入数据保存。 模块十:菜单函数int b:menu() system(hcls")
23、;cout&* m&lf&te nd卜endl;cout<j<11*1. 录入息;*"<<endl; cout<<" "<<endl;cout<<"“<<endl;cout<<"<<endl; cout<<h"<<endl;cout&am
24、p;lt;<h<<endl;cout<<h"<<endl; cout<<"<<endl;cout<<"息;”<<endl;<<endl;2 预览所有库存信息;3.增添库存信息;4.修改库存信息;5 按编号查询库存信cout<<""<<endl;cout&a
25、mp;lt;<"<<endl;cout<<"<<endl;10讯录*"&|t;⁢库存信 * * * *116.删除库存信息;7.按价格排序;* * * *11* * * * *11* * * *11cout<<"0. 退出系统;* "<<endl; cout<<h *" <<endl;cout<
26、;<"* n<<endl;ii &ll,<endl<<endl;int n;do cout<<"请输入你的选择(07): ”;cin>>n;return n;while(n<8&& n>=o);四、流程图 五、源程序清单#include<stdio.h >#include <iostream>#include&am
27、p;lt;fstream >/* 写入 */ #include<iomanip> 流操作符 using namespace std;typedef struct inventory/定义录入信息的结构体 char name10;/名称char number10;/编号 quantity10; /* 数量 */class b定义类private:int all;/总数int i;aa50;/定义最大容量public:b();/默认构造函数int menu();/菜单void load();写入void sort();/排序char price10; /*
28、价格*/charchar type10;/* 类别 */a;char ch;b();析构函数int enter();/录入void save();/保存void search();/搜查void add();/添新void display();/浏览void change();改void del_inventory();删;b:b();b:b();void main()b ad;12ado ad();while(l)casecasecasecasecase 0:exit(0);switch(int nl=ad.menu() case l:system("cls");ad.e
29、nter();break;2:system("cls,);ad.display();break;3:system("cls");ad.add();break;4:system(,cls,);ad.cha nge();break;5:system("cls");ad.search();break;case 6:system(”cls”);addel_inventory();break; case 7:system(”cls”);adsort();break;void b:load() ifstream filec'b.txf'jo
30、sijn);i=0;if(file.is_ope n()while(!file.eof() 文件尾?file>>ai. nu mber>>ai. name& gt;>ai.price>;>ai.quantity& gt;>ai.type;file.closef);/ 关闭文件if(!file.eof()i+;file.close();all=i;保存函数void b:save() fstream file("b.txt"/ios:out | ios:
31、trunc);if(file.is_ope n()for(int i=o;i<all;i+)file<<ai.number<<,tn<<ai.price<<'、t"<<ai. quantity <<"t"<<ai. type &<<endl;file.close();关闭文件13录入函数int b:enter()c
32、har ch;system("cls,1);for(i=all;i<20;i+)cout<;<;"编号:11cin>>ai. nu mber;cout<<"名称:cin>>;cout<<“价格:cin>& gt;ai.price;cout&数量:”;cin>>ai. quantity;cin>>ai.type;all+
33、;cout<<"一条信息录人成功,是否继续录入? (y.是n.否)while(l)cin>>ch;if(ch='y'| |ch二二'y'| |ch二二'n' | | ch二二'n')break;elsecout<<"输入错误,请重新输入! n"if (ch='n' 11 ch二二'n')bre
34、ak;save();cout<<”录入成功!并已保存到文件。n"systemc'pause");return 0;删除个人信息void b:del_inventory() char c20;system(,clsn);/ 清屏cout<<“请输入要删除编号:cin>>c;for(int i=o;i<all;i+)/遍历所有信息,查询是否存在 if(strcmp(ai. number;c)=o)break;/存在 结束循环if(i=all)/输入信息不存在 cout&am
35、p;lt;<h你输入编号不存在卍;system("pausen);/ 任意键继续return;for(i=0;i<all;i+)/ 遍历所有信息 if(strcmp(ai.number,c)=o) ai=aall-l; 用最后一条信息覆盖要删除的信息 all-;信息条数减一save();/ 保存cout<<“删除成功!并已保存到文件。nn;systemcpause");void b:change() char s20;systemc'cls");/ 清屏cin>>s;for
36、(int i=o;i<all;i+)if(strcmp(ai. nu mber;s)=o)break;if (i=all)cout<<h对不起!你输入编号号不存在。nn;system("pause");return;cout<<"编号:cin>>ai. nu mber;cout<<"名称:”;cin>>ai. name;cout<<"价格:cin>&a
37、mp;gt;ai.price;cout<<"数量:cin>>ai. quantity;cout<<“类别:cin>>ai.type;save();/ 保存cout<<"修改成功!并已保存到文件。n"systemcpause");/ 任意键继续寻找函数void b:search() char s20;system("clsn);cout<<"请输入编号:“;cin&
38、;gt;>s;for(int i=o;i<all;i+)讦(strcmp(ai. nu mber,s)=0)break;if (i=all)15cout<<对不起!你输入的编号。n"system("pauseh);return;cout<&t;“查询结果如下:"<<endl;cout & 11; & 11;"cout&编号:”<<ai.number<<endl;cout&a
39、mp;lt;<”名称:"<<<<endl;cout<<"价格:"<<ai.price<<endl;cout<<"数量:"<<ai. quantity <<endl;cout<<"类别:“<<ai.type<&l
40、t;endl;cout & 11; & 11; ”systemc'pause");/ 任意键继续排序函数void b:sort() int i,j;at;systemc'cls");/ 清屏for(j=0;j<alll;j+)for(i=0;i<all-l-j;i+)if(strcmp(ai.price,ai+l.price)>o)/ 排序t=ai;ai=ai+l;ai+l=t;cout<<h排序结果如下:n"cout.setf(ios:left);/ 设置左对齐
41、for(i=0;i<all;i+)/遍历输出所有信息 cout<<"编号:"<<ai.number<<endl;cout<;<;"名称:"<<<<endl;cout<;<;"价格:"<<ai.price<<endl;cout<<;“数量:&q
42、uot;<<ai. quantity <<endl;cout<;<;h 类别:"<<ai.type<<endl;cout<<" "<<endl; i.system(,pauseh);所冇信息的浏览void b:display()system 化 is”);/ 清屏16ft , ft fti b* i bb coulotl l,cxl i,for(int i=o;i&l
43、t;all;i+) cout<<"编号:"<<ai.number<<endl; cout&姓名:"<<<<endl; cout&价格:"<<ai.price<<endl; cout&数量:"<<ai. quantity <<endl; cout<
44、<n类别:"<<ai.type<<endl; cout<<" "<<endl; system(,pauseh);/ 任意键继续添加单条新记录void b:add() system(ncls");int i=all;docout<<h 编号:”cin>>ai. nu mber; cout<<"名称:" cin>&am
45、p;gt;ai. name; cout<<h价格:n;cin>& gt;ai.price;cout&数量:”;cin>>ai. quantity;cout&类别:cin>> ai.type;save();cout&录入成功! ”<<endl;cout&是否继续录入? (y/n) h;cin>>ch;all+;信息条数加2while(ch='y' 11 ch二二'y');save();/ 保存cout<<"添加成功!并已保存到文件。n"system("pausen);/ 任意键继续int b:menu() systemc'cls");cout<<h*才、jg 讦 l 录*& 比& 比
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 24.7 向量的线性运算(第1课时)同步练习
- 秋季开学第一课的心得体会
- 护士长年终述职报告
- 第二十五章 锐角的三角比(40道压轴题专练)
- 战友聚会致辞15篇
- 23.1 成比例线段同步练习
- 【北师】第三次月考卷【九上全册】
- 江苏省南通市2023-2024学年高一年级下册6月期末考试化学试题
- 四川省乐山市乐山一中2024-2025学年度上期高一10月月考英语
- 山东省东营市广饶县乐安中学2024-2025学年八年级上学期11月期中考试化学试题(含答案)
- 人教版一年级起点小学四年级英语上册全套教案
- 境外汇款申请书(完成)
- 人教版小学音乐二年级下册(简谱)火车开啦-教学课件
- 自动体外除颤仪(AED)培训教材-2
- 小学三年级、三班家长会
- 课件4.2 氯化工艺安全
- 中学生学习策略量表(LASSI)
- 活性炭吸附装置安全操作保养规程
- 绳索救援演示教学课件
- 《制作简易显微镜》实验报告单
- 提升服务品质-改善就医体验-持续开展改善医疗服务行动课件整理
评论
0/150
提交评论