设备管理系统程序设计基础课程设计报告.docx
《设备管理系统程序设计基础课程设计报告.docx》由会员分享,可在线阅读,更多相关《设备管理系统程序设计基础课程设计报告.docx(24页珍藏版)》请在冰豆网上搜索。
![设备管理系统程序设计基础课程设计报告.docx](https://file1.bdocx.com/fileroot1/2023-2/7/739e174a-883a-465b-b523-3c1e79375cd3/739e174a-883a-465b-b523-3c1e79375cd31.gif)
设备管理系统程序设计基础课程设计报告
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"
<<"查询\n"
<<"插入\t"
<<"删除\n"
<<"统计\t"
<<"保存\n"
<<"打印
\t"
<<"退出\n";
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年.