设备管理系统程序设计基础课程设计报告.docx
- 文档编号:10031541
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:24
- 大小:149.22KB
设备管理系统程序设计基础课程设计报告.docx
《设备管理系统程序设计基础课程设计报告.docx》由会员分享,可在线阅读,更多相关《设备管理系统程序设计基础课程设计报告.docx(24页珍藏版)》请在冰豆网上搜索。
设备管理系统程序设计基础课程设计报告
1课程设计目的………………………………………………………2
2课程设计题目描述和要求…………………………………………2
3功能模块说明………………………………………………………2
4源文件………………………………………………………………6
5课程设计总结………………………………………………………17
6参考书目……………………………………………………………17
1.课程设计目的
通过课程设计了解自己通过一学年的学习C++这门课到底学的怎么样,验证自己的学习成果,并进一步发现自己的不足并且改正.
2.课程设计题目描述和要求
一、课程设计题目
题目:
设备管理系统
二、课程设计基本要求
1、设计的简要说明
2、程序运行的软件环境
3、程序的组成模块及每个模块的基本功能
4、每个模块的流程图
5、程序的使用方法
6、源程序清单
7、总结与体会
8、要求系统具有下列功能;
(1)通过类实现。
设备信息包括编号、名称、单价、数量、故障,所属实验室
等字段;所录入的数据存入一个文本文件中,能根据情况能调出数据。
(2)设备信息的插入、删除功能。
(3)按编号进行排序功能。
(4)按设备名称查询功能:
完成按故障查询功能;完成按所属实验室查询功能。
(5)统计出设备的损坏数量,计算出故障率。
(6)统计出所属实验室的设备总量及总价格。
3.功能模块说明
3.1模块流程
3.2设备管理系统类的定义
为设计的设备管理系统定义类体:
classCangku
{
public:
voidMenu();//显示菜单
voidCreat();//录入功能
voidFind();//查询功能
voidAdd();//插入功能
voidDelete();//删除功能
voidTotal();//统计功能
voidSave();//调用功能
voidPut();//打印功能
voidQuit();//退出功能
private:
intbianhao;//编号
stringname;//名称
intdprice;//单价
intnumber;//数量
stringproblem;//问题
stringlab;//所属实验室
};
3.3存入文件部分
将在程序运行时输入的设备信息存入文本文档中。
voidCangku:
:
Save()//保存功能
{
ofstreamoutfile("f1.dat");
for(inti=0;i { if(outfile) { outfile< < < < < < } Ofstream用来支持向磁盘文件的输出,在这一部分将通信信息记录到磁盘文件中。 3.3删除设备管理中的设备信息 删除设备管理中的设备信息,其中两种情况: 1、查不到相应设备 2、查到并删除. 3.4查询记录 查询记录可按设备名称、故障、所属实验室查询,比如按设备名称查询中,先要检查设备管理系统中是否有记录,如果没有记录即if(head==NULL)就输出“本次查询完毕,没有查询到此设备的相关信息。 ”有则输出所有此次设备的相关信息。 3.5打印 打印出所有储存的设备信息。 3.6主函数 整个主函数是对操作面板进行的操作,用case语句灵活方便。 根据情况调用相应函数,当达到条件自动调用响应的函数。 4.源文件 #include #include #include #include usingnamespacestd; classCangku { public: voidMenu();//显示菜单 voidCreat();//录入功能 voidFind();//查询功能 voidAdd();//插入功能 voidDelete();//删除功能 voidTotal();//统计功能 voidSave();//调用功能 voidPut();//打印功能 voidQuit();//退出功能 private: intbianhao;//编号 stringname;//名称 intdprice;//单价 intnumber;//数量 stringproblem;//问题 stringlab;//所属实验室 }; Cangkut[100];//定义对象数组 doublen;//定义全局变量 voidCangku: : Menu()//显示菜单 { cout< cout<<"**********"<<"设备管理系统菜单"<<"**********"< cout<<"\n" <<"录入 <<"查询 <<"插入\t" <<"删除 <<"统计 <<"保存 <<"打印 \t" <<"退出 cout< cout<<"************************************"< cout< cout<<"请您输入相应的字母: "; } voidCangku: : Creat()//录入功能 { cout<<"请输入管理系统中的设备数(设备数<100): "; cin>>n; cout< if(n>0) cout<<"请依次输入管理系统中的设备信息: "< <<"编号,名称,单价,数量,故障,所属实验室"< cout< for(inti=0;i { cout<<"编号: "; cin>>t[i].bianhao; cout<<"名称: "; cin>>t[i].name; cout<<"单价: "; cin>>t[i].dprice; cout<<"数量: "; cin>>t[i].number; cout<<"故障: "; cin>>t[i].problem; cout<<"所属实验室: "; cin>>t[i].lab; cout< } cout<<"*************输入完毕! **************"< Cangkut1;//定义类对象 t1.Menu();//调用Menu函数,显示选单 } voidCangku: : Find()//查询功能 { cout<<"请输入您所要查询的信息: "< <<"(设备名称(n),故障(w),所属实验室(t))! "< for(inti1=0;i1<10;i1++) { cout< stringover;//定义字符串变量,用于退出 cout<<"退出请输入over,继续请输入c,然后按相应的字母查询! "< cin>>over; if(over=="over")break; chars; cout<<"请输入相应的字母: "; cin>>s; switch(s) { case'n': { cout<<"请输入设备名称: "; stringfname; cin>>fname; for(inti=0;i { if(fname==t[i].name) { cout<<"编号: "; cout< cout<<"名称: "; cout< cout<<"单价: "; cout< cout<<"数量: "; cout< cout<<"故障: "; cout< cout<<"所属实验室: "; cout< break; } } if(i==n)cout<<"\n本次查询完毕,没有查询到此设备的相关信息! ! ! "< }break; case'w': { cout<<"请输入故障: "; stringfproblem; cin>>fproblem; for(inti=0;i { if(fproblem==t[i].problem) { cout<<"编号: "; cout< cout<<"名称: "; cout< cout<<"单价: "; cout< cout<<"数量: "; cout< cout<<"故障: "; cout< cout<<"所属实验室: "; cout< cout< break; } } if(i==n)cout<<"\n本次查询完毕,没有查询到此设备的相关信息! ! ! "< }break; case't': { cout<<"请输入所属实验室: "; stringflab; cin>>flab; for(inti=0;i { if(flab==t[i].lab) { cout<<"编号: "; cout< cout<<"名称: "; cout< cout<<"单价: "; cout< cout<<"数量: "; cout< cout<<"故障: "; cout< cout<<"所属实验室: "; cout< cout< break; } } if(i==n)cout<<"\n本次查询完毕,没有查询到此设备的相关信息! ! ! "< }break; default: { cout<<"\n输入字母错误,请重新输入! ! ! "< break; }break; } } Cangkut1;//定义类对象 t1.Menu();//调用Menu函数,显示选单 } voidCangku: : Add()//插入功能 { cout<<"请输入您所要插入的设备的信息(插入设备数<10): "; intp; cin>>p; Cangkutt[10];//定义对象数组 for(inti=0;i { cout<<"请输入您所要插入的位置,即在第几个设备后: "; intf; cin>>f; cout<<"编号本系统会根据位置自动设置,您不必再输入! "; { cout< cout<<"请输入其他的有关信息: "< cout<<"名称: "; cin>>tt[i].name; cout<<"单价: "; cin>>tt[i].dprice; cout<<"数量: "; cin>>tt[i].number; cout<<"故障: "; cin>>tt[i].problem; cout<<"所属实验室: "; cin>>tt[i].lab; } for(inti1=n-1;i1>f-2;i1--)//留出插入口 { t[i1+1].bianhao=t[i1].bianhao+1; t[i1+1].name=t[i1].name; t[i1+1].dprice=t[i1].dprice; t[i1+1].number=t[i1].number; t[i1+1].problem=t[i1].problem; t[i1+1].lab=t[i1].lab; } { t[f].bianhao=(t[0].bianhao+f); t[f].name=tt[i].name; t[f].dprice=tt[i].dprice; t[f].number=tt[i].number; t[f].problem=tt[i].problem; t[f].lab=tt[i].lab; } n++; } cout<<"*************插入完毕! **************"< Cangkut1;//定义类对象 t1.Menu();//调用Menu函数,显示菜单 } voidCangku: : Delete()//删除功能 { cout<<"请输入您所要删除的设备的信息(删除设备数<10): "; intp; cin>>p; intk=0; for(intj=0;j { cout< cout<<"请输入您所要删除的名称: "; stringfname; cin>>fname; cout< for(inti=0;i { if(fname==t[i].name) { for(inti1=i;i1 { t[i1].name=t[i1+1].name; t[i1].dprice=t[i1+1].dprice; t[i1].number=t[i1+1].number; t[i1].problem=t[i1+1].problem; t[i1].lab=t[i1+1].lab; } k++; } } if(k==0) { cout<<"\n本次查询完毕,没有查询到此设备的相关信息! ! ! "< j--; } } cout< if(k==p) { n=n-p;//使用删除功能时,使n的值减少 cout<<"*************删除完毕! **************"< } Cangkut1;//定义类对象 t1.Menu();//调用Menu函数,显示菜单 } voidCangku: : Total()//统计功能 { cout<<"请输入您所要进行的统计方式: "< <<"(设备总量与总价值(c),损坏数量(t))! "< for(inti1=0;i1<10;i1++) { cout< stringover;//定义字符串变量,用于退出 cout<<"退出请输入over,继续请输入continue,然后按相应的字母查询! "< cin>>over; if(over=="over")break; chars; cout<<"请输入相应的字母: "; cin>>s; switch(s) { case't': { doubletcount1=0; for(inti=0;i { if(t[i].problem=="sunhuai")tcount1++; } cout<<"故障率: "<<(tcount1/n)*100<<"%"< }break; case'c': { intprice=0,total=0; for(inti=0;i { price=price+t[i].dprice*t[i].number; total=total+t[i].number; } cout<<"设备总量: "< cout<<"设备总价格: "< }break; default: { cout<<"\n输入字母错误,请重新输入! ! ! "< break; }break; } } } voidCangku: : Save()//保存功能 { ofstreamoutfile("f1.dat"); for(inti=0;i { if(outfile) { outfile< < < < < < } } Cangkut1;//定义类对象 t1.Menu();//调用Menu函数,显示选单 } voidCangku: : Put()//打印功能 { cout<<"管理系统中所有设备的信息如下: "< cout< for(inti=0;i { cout<<"编号: "; cout< cout<<"名称: "; cout< cout<<"单价: "; cout< cout<<"数量: "; cout< cout<<"故障: "; cout< cout<<"所属实验室: "; cout< cout< } cout<<"*************输出完毕! **************"< Cangkut1;//定义类对象 t1.Menu();//调用Menu函数显示选单 } voidCangku: : Quit()//退出功能 { cout<<"********操作完毕,谢谢使用! **********"< } intmain()//根据菜单的选项调用各函数,并完成相应的功能 { cout<<"\n" <<"************************************\n" <<"*欢迎您使用这个管理系统! *\n" <<"*这是一个简单的管理程序! *\n" <<"*可以对信息进行简单管理! *\n" <<"************************************\n" <<"\n"; Cangkut1;//定义类对象 t1.Menu();//调用Menu函数,显示菜单 chars; do { cin>>s; cout< switch(s) { case'c': case'C': { t1.Creat();//调用录入函数 break; } case's': case'S': { t1.Save();//调用保存函数 break; } case'a': case'A': { t1.Add();//调用插入函数 break; } case'f': case'F': { t1.Find();//调用查询函数 break; } case't': case'T': { t1.Total();//调用统计函数 break; } case'd': case'D': { t1.Delete();//调用删除函数 break; } case'p': case'P': { t1.Put();//调用打印函数 break; } case'q': case'Q': { t1.Quit();//调用退出函数 break; } default: { cout<<"\n您输入的字母错误,请按提示重新输入! "< break; } } }while(s! ='q'&&s! ='Q'); return0; } 5.课程设计总结 在这个课程设计中,我明白了自己在学习中的许多漏洞,在课程设计中许多概念型问题还需要看书解决,说明学习还不够扎实,这门课不是老师教完就完了的,还需要自己经常的上机实验,来步步完善自己的思维,以更熟练的掌握C++的应用。 在整个设计中深刻体会到编程者的辛苦,一点点差错将导致严重后果,在整个程序设计过程中,能锻炼自己的思维使其更敏锐,发现自己的错误本是件不容易的事,但编程过程中,必须要找到自己所疏忽或考虑不周等而引起的错误。 6.参考书目: [1]谭浩强,《C++程序设计》,北京,清华大学出版社,2006年.\n"\n";
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 设备管理 系统 程序设计 基础 课程设计 报告