实验设备管理系统设计.docx
- 文档编号:6429029
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:21
- 大小:208.44KB
实验设备管理系统设计.docx
《实验设备管理系统设计.docx》由会员分享,可在线阅读,更多相关《实验设备管理系统设计.docx(21页珍藏版)》请在冰豆网上搜索。
实验设备管理系统设计
山东建筑大学
课程设计成果报告
题目:
实验设备管理系统设计
课程:
程序设计基础
院(部):
管理工程学院
专业:
班级:
学生姓名:
学号:
指导教师:
完成日期:
1设计目的
本课程设计是信息管理与信息系统专业重要的实践性环节之一,是在学生学习完《程序设计基础》课程后进行的一次全面的综合练习。
本课程设计的目的和任务:
1、巩固和加深学生对C语言课程的基本知识的理解和掌握;
2、掌握C语言编程和程序调试的基本技能;
3、利用C语言进行基本的软件设计;
4、掌握书写程序设计说明文档的能力;
5、提高运用C语言解决实际问题的能力。
2设计任务
(1)实验设备管理系统设计
相关信息包括:
设备编号、设备种类(如:
计算机、打印机、扫描仪等)、设备价格、购入日期、是否报废、报废日期等(设备编号唯一)。
(2)系统要求实现如下功能:
1)系统功能以菜单方式工作;
2)数据的添加,以两种方式添加:
从键盘直接输入和从现有文件中读取数据;
3)数据的插入:
从指定位置插入一条记录;
4)数据的输出,以两种方式输出:
在屏幕上直接输出和输出数据到文件中;
5)数据的删除;
6)数据的查找,通常以两种方式进行查找,如姓名、记录号(或学号、职工号等);
7)数据的排序;
8)退出系统。
3系统总体设计
4系统详细设计
整个系统可设计为实验设备信息添加模块,实验设备信息显示模块,实验设备信息插入模块,实验设备查找(可用Name和ID两种方式查找)模块,实验设备删除模块,实验设备排序模块
该系统能够提供设备添加和显示操作,对设备进行分类统计,提供排序操作;实现对设备查询需要提供查找操作,设备的查询可根据设备ID号,设备名称,两种方式查询,且实现了对设备的删除功能。
建立实验设备信息结构体,结构体成员包括设备ID号,设备种类,设备名称,设备价格,设备购入日期,是否报废,报废日期;从而实现对设备信息的整体调用。
4.1主函数
voidmain()
{
menu();
}
4.2主菜单
难点:
自定义函数的调用
voidmenu()
{
intflag;
while
(1)
{
printf("\t\t\t\t设备管理系统\n");
printf("************************************目录************************************");
printf("\n1添加记录\n");
printf("\n2显示记录\n");
printf("\n3插入记录\n");
printf("\n4Name查找记录\n");
printf("\n5ID查找记录\n");
printf("\n6删除记录\n");
printf("\n7排序记录\n");
printf("\n0*-EXIT-*\n");
printf("请输入你要操作的序号:
");
scanf("%d",&flag);
switch(flag)
{
case0:
printf("\n>>>>>>>>>>提示:
已经退出系统,ByeBye!
\n");break;
case1:
Add();break;//增加记录
case2:
Disp();break;//显示记录
case3:
Insert();break;//插入记录
case4:
SearchByName();break;//Name查找记录
case5:
SearchByID();break;//ID查找记录
case6:
del();break;//删除记录
case7:
paixu();break;//排序记录
default:
printf("\n>>>>>>>>>>提示:
输入错误!
\n");break;
}
}
}
4.3添加记录
voidAdd()
{
charc='Y';
intchoice;
while(c=='Y')
{
printf("\n请你输入设备ID号:
");
scanf("%d",&eq[n].ID);
printf("\n请输入设备名称:
");
scanf("%s",eq[n].name);
printf("\n请输入设备种类:
");
scanf("%s",eq[n].kind);
printf("\n请输入报废日期:
");
scanf("%s",eq[n].over);
printf("\n请输入设备是否报废:
");
scanf("%s",eq[n].yesno);
printf("\n请输入设备购买时间:
");
scanf("%s",eq[n].time);
printf("\n请输入设备价格:
");
scanf("%s",eq[n].price);
n++;
printf(">>>>>>>>>>提示:
已经完成一条记录的添加。
\n");
printf("输入Y继续,否则输入N!
\n");
fflush(stdin);
c=getchar();
}
printf(">>>>>>>>>>提示:
输入0则返回主菜单!
\n");
scanf("%d",&choice);
if(choice==0)
menu();
}
4.4显示记录
voidDisp1()
{
inti;
printf("ID号\t名称\t种类\t报废日期\t是否报废\t购买时间\t价格\n");
for(i=0;i printf("%d\t%s\t%s\t%s\t\t%s\t\t%s\t\t%s\n",eq[i].ID,eq[i].name,eq[i].kind,eq[i].over,eq[i].yesno,eq[i].time,eq[i].price); } voidDisp() { Disp1(); intchoice; printf(">>>>>>>>>>提示: 输入0则返回主菜单! \n"); scanf("%d",&choice); if(choice==0) menu(); } 4.5插入记录 难点: 如何找到插入的条件利用for语句进行插入,且使得插入位置后的数据后移; voidInsert() { inti,id,choice; printf("请输入要插入的位置: \n"); scanf("%d",&id); for(i=n;i>id;i--) eq[i]=eq[i-1]; n++; printf("请输入需要插入的设备号: "); scanf("%d",&eq[id].ID); printf("\n请输入设备名称: "); scanf("%s",eq[id].name); printf("\n请输入设备种类: "); scanf("%s",eq[id].kind); printf("\n请输入报废日期: "); scanf("%s",eq[id].over); printf("\n请输入设备是否报废: "); scanf("%s",eq[id].yesno); printf("\n请输入设备购买时间: "); scanf("%s",eq[id].time); printf("\n请输入设备价格: "); scanf("%s",eq[id].price); printf(">>>>>>>>>>提示: 已经完成记录的插入。 \n"); printf(">>>>>>>>>>提示: 输入0则返回主菜单! \n"); scanf("%d",&choice); if(choice==0) menu(); } 4.6Name查找记录 难点: 如何找到要查找的记录;利用strcmp语句即可; voidSearchByName() { intflag=0,i,choice; charname[15]; printf("请输入要找的设备名: "); scanf("%s",name); for(i=0;i if(strcmp(name,eq[i].name)==0) { flag=1; printf("ID号\t名称\t种类\t报废日期\t是否报废\t购买时间\t价格\n"); printf("%d\t%s\t%s\t%s\t\t%s\t\t%s\t\t%s\n",eq[i].ID,eq[i].name,eq[i].kind,eq[i].over,eq[i].yesno,eq[i].time,eq[i].price); } if(flag==0) printf("Nofind! \n"); printf(">>>>>>>>>>提示: 输入0则返回主菜单! \n"); scanf("%d",&choice); if(choice==0) menu(); } 4.7ID查找记录 voidSearchByID() { intflag=0,i,choice; intid; printf("请输入要找的设备号: "); scanf("%d",&id); for(i=0;i if(id==eq[i].ID) { flag=1; printf("ID号\t名称\t种类\t报废日期\t是否报废\t购买时间\t价格\n"); printf("%d\t%s\t%s\t%s\t\t%s\t\t%s\t\t%s\n",eq[i].ID,eq[i].name,eq[i].kind,eq[i].over,eq[i].yesno,eq[i].time,eq[i].price); } if(flag==0) printf("Nofind! \n"); printf(">>>>>>>>>>提示: 输入0则返回主菜单! \n"); scanf("%d",&choice); if(choice==0) menu(); } 4.8删除记录 难点: 如何使删除后的数据前移;for括号内的表达式,即删除的条件; voiddel() { inti,choice,p,j; printf("请输入你要删除的设备号: "); scanf("%d",&p); for(i=0;i if(p==eq[i].ID) break; if(i { for(j=i;j eq[j]=eq[j+1]; printf("记录已删除。 \n"); } n--; printf(">>>>>>>>>>提示: 输入0则返回主菜单! \n"); scanf("%d",&choice); if(choice==0) menu(); } 4.9排序记录 难点: 引用第三变量;如何利用for循环语句;冒泡排序;结构体的整体调用; voidpaixu() { inti,j; structequipmentt; printf("排序前数据: \n"); Disp1(); for(i=0;i for(j=0;j if(eq[j].ID>eq[j+1].ID) { t=eq[j]; eq[j]=eq[j+1]; eq[j+1]=t; } printf("thesortedIDnumbers: \n"); Disp1(); } 5调试与测试 (1)主菜单 (2)添加记录 (3)显示记录 (4)插入记录 插入后显示 (5)Name查找记录 错误输入后的结果 (6)ID查找记录 (7)删除记录 删除后的显示 (8)排序记录 6课程设计心得与体会 通过这次课程设计使我学会综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力是重要的环节,是对我们实际能力的具体训练和考察过程。 随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。 因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。 回顾起此次课程设计,至今我仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整一个多星期的日子里,学到了很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。 这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能提高自己的实际动手能力和独立思考的能力。 在设计的过程中,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体的引用,自定义函数的定义与调用及其返回值……这次课程设计之后,一定要把以前所学过的知识重新温故。 在设计中遇到了很多编程问题,但在老师和同学的帮助下,终于得以解决,使得课程设计顺利完成。 7参考文献 1)作者: 王敬华林萍张清国 书名: 《C语言程序设计教程》(第二版) 出版社: 清华大学出版社 出版日期: 2009-08 2)作者: 王敬华等编著 书名: 《C语言程序设计教程(第二版)习题解答与实验指导》 出版社: 清华大学出版社 出版日期: 2009-10 8附录 #include #include #defineN100 intn=0; structequipment { intID; charname[15]; charkind[15]; charover[10]; charyesno[10]; chartime[10]; charprice[10]; }eq[N]; voidmenu(); voidAdd(); voidDisp1(); voidDisp(); voiddel(); voidInsert(); voidSearchByName(); voidSearchByID(); intSearch(intid); voidpaixu(); voidmain()//主函数 { menu(); } voidmenu()//主菜单 { intflag; while (1) { printf("\t\t\t\t设备管理系统\n"); printf("************************************目录************************************"); printf("\n1添加记录\n"); printf("\n2显示记录\n"); printf("\n3插入记录\n"); printf("\n4Name查找记录\n"); printf("\n5ID查找记录\n"); printf("\n6删除记录\n"); printf("\n7排序记录\n"); printf("\n0*-EXIT-*\n"); printf("请输入你要操作的序号: "); scanf("%d",&flag); switch(flag) { case0: printf("\n>>>>>>>>>>提示: 已经退出系统,ByeBye! \n");break; case1: Add();break;//增加记录 case2: Disp();break;//显示记录 case3: Insert();break;//插入记录 case4: SearchByName();break;//Name查找记录 case5: SearchByID();break;//ID查找记录 case6: del();break;//删除记录 case7: paixu();break;//排序记录 default: printf("\n>>>>>>>>>>提示: 输入错误! \n");break; } } } voidAdd()//添加记录 { charc='Y'; intchoice; while(c=='Y') { printf("\n请你输入设备ID号: "); scanf("%d",&eq[n].ID); printf("\n请输入设备名称: "); scanf("%s",eq[n].name); printf("\n请输入设备种类: "); scanf("%s",eq[n].kind); printf("\n请输入报废日期: "); scanf("%s",eq[n].over); printf("\n请输入设备是否报废: "); scanf("%s",eq[n].yesno); printf("\n请输入设备购买时间: "); scanf("%s",eq[n].time); printf("\n请输入设备价格: "); scanf("%s",eq[n].price); n++; printf(">>>>>>>>>>提示: 已经完成一条记录的添加。 \n"); printf("输入Y继续,否则输入N! \n"); fflush(stdin); c=getchar(); } printf(">>>>>>>>>>提示: 输入0则返回主菜单! \n"); scanf("%d",&choice); if(choice==0) menu(); } voidDisp1()//显示记录 { inti; printf("ID号\t名称\t种类\t报废日期\t是否报废\t购买时间\t价格\n"); for(i=0;i printf("%d\t%s\t%s\t%s\t\t%s\t\t%s\t\t%s\n",eq[i].ID,eq[i].name,eq[i].kind,eq[i].over,eq[i].yesno,eq[i].time,eq[i].price); } voidDisp() { Disp1(); intchoice; printf(">>>>>>>>>>提示: 输入0则返回主菜单! \n"); scanf("%d",&choice); if(choice==0) menu(); } voidSearchByName()//Name查找记录 { intflag=0,i,choice; charname[15]; printf("请输入要找的设备名: "); scanf("%s",name); for(i=0;i if(strcmp(name,eq[i].name)==0) { flag=1; printf("ID号\t名称\t种类\t报废日期\t是否报废\t购买时间\t价格\n"); printf("%d\t%s\t%s\t%s\t\t%s\t\t%s\t\t%s\n",eq[i].ID,eq[i].name,eq[i].kind,eq[i].over,eq[i].yesno,eq[i].time,eq[i].price); } if(flag==0) printf("Nofind! \n"); printf(">>>>>>>>>>提示: 输入0则返回主菜单! \n"); scanf("%d",&choice); if(choice==0) menu(); } voidSearchByID()//ID查找记录 { intflag=0,i,choice; intid; printf("请输入要找的设备号: "); scanf("%d",&id); for(i=0;i if(id==eq[i].ID) { flag=1; printf("ID号\t名称\t种类\t报废日期\t是否报废\t购买时间\t价格\n"); printf("%d\t%s\t%s\t%s\t\t%s\t\t%s\t\t%s\n",eq[i].ID,eq[i].name,eq[i].kind,eq[i].over,eq[i].yesno,eq[i].time,eq[i].price); } if(flag==0) printf("Nofind! \n"); printf(">>>>>>>>>>提示: 输入0则返回主菜单! \n"); scanf("%d",&choice); if(choice==0) menu(); } voidInsert()//插入记录 { inti,id,choice; printf("请输入要插入的位置: \n"); scanf("%d",&id); for(i=n;i>id;i--) eq[i]=eq[i-1]; n++; printf("请输入需要插入的设备号: "); scanf("%d",&eq[id].ID); printf("\n请输入设备名称: "); scanf("%s",eq[id].name); printf("\n请输入设备种类: "); scanf("%s",eq[id].kind); printf("\n请输入报废日期: "); scanf("%s",eq[id].over); printf("\n请输入设备是否报废: "); scanf("%s",eq[id].yesno); printf("\n请输入设备购买时间: "); scanf("%s",eq[id].time); printf("\n请输入设备价格: "); scanf("%s",eq[id].price); printf(">>>>>>>>>>提示: 已经完成记录的插入。 \n"); printf(">>>>>>>>>>提示: 输入0则返回主菜单! \n"); scanf("%d",&choice); if(choice==0) menu(); } voiddel()//删除记录 { inti,choice,p,j; printf("请输入你要删除的设备号: "); scanf("%d",&p); for(i=0;i if(p==eq[i].ID) break; if(i { for(j=i;j eq[j]=eq[j+1]; printf("记录已删除。 \n"); } n--; printf(">>>>>>>>>>提示: 输入0则返回主菜单! \n"); scanf("%d",&choice);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 设备管理 系统 设计