1、实验设备管理系统设计山东建筑大学课 程 设 计 成 果 报 告题 目: 实验设备管理系统设计课 程: 程序设计基础院 (部): 管理工程学院专 业: 班 级: 学生姓名: 学 号: 指导教师: 完成日期: 1 设计目的本课程设计是信息管理与信息系统专业重要的实践性环节之一,是在学生学习完程序设计基础课程后进行的一次全面的综合练习。本课程设计的目的和任务:1、巩固和加深学生对C语言课程的基本知识的理解和掌握;2、掌握C语言编程和程序调试的基本技能;3、利用C语言进行基本的软件设计;4、掌握书写程序设计说明文档的能力;5、提高运用C语言解决实际问题的能力。2 设计任务(1)实验设备管理系统设计相关
2、信息包括:设备编号、设备种类(如:计算机、打印机、扫描仪等)、设备价格、购入日期、是否报废、报废日期等(设备编号唯一)。(2)系统要求实现如下功能:1)系统功能以菜单方式工作;2)数据的添加,以两种方式添加:从键盘直接输入和从现有文件中读取数据;3)数据的插入:从指定位置插入一条记录;4)数据的输出,以两种方式输出:在屏幕上直接输出和输出数据到文件中;5)数据的删除;6)数据的查找,通常以两种方式进行查找,如姓名、记录号(或学号、职工号等);7)数据的排序;8)退出系统。3 系统总体设计4 系统详细设计 整个系统可设计为实验设备信息添加模块,实验设备信息显示模块,实验设备信息插入模块,实验设备
3、查找(可用Name和ID两种方式查找)模块,实验设备删除模块,实验设备排序模块该系统能够提供设备添加和显示操作,对设备进行分类统计,提供排序操作;实现对设备查询需要提供查找操作,设备的查询可根据设备ID号,设备名称,两种方式查询,且实现了对设备的删除功能。 建立实验设备信息结构体,结构体成员包括设备ID号,设备种类,设备名称,设备价格,设备购入日期,是否报废,报废日期;从而实现对设备信息的整体调用。4.1主函数void main() menu();4.2主菜单难点:自定义函数的调用void menu() int flag; while(1) printf(tttt设备管理系统n); print
4、f(*目录*); 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) case 0: printf(n提示:已经退出系统,ByeBye!n);break; case 1: Add(); break;/增加记录 case 2: Disp(); break;/显
5、示记录 case 3: Insert(); break;/插入记录 case 4: SearchByName(); break;/Name查找记录 case 5: SearchByID(); break;/ID查找记录 case 6: del(); break;/删除记录 case 7: paixu(); break;/排序记录 default: printf(n提示:输入错误!n); break; 4.3添加记录void Add() char c=Y; int choice; while(c=Y) printf(n请你输入设备ID号:); scanf(%d,&eqn.ID); printf(
6、n请输入设备名称:); scanf(%s,eqn.name); printf(n请输入设备种类:); scanf(%s,eqn.kind); printf(n请输入报废日期:); scanf(%s,eqn.over); printf(n请输入设备是否报废:); scanf(%s,eqn.yesno); printf(n请输入设备购买时间:); scanf(%s,eqn.time); printf(n请输入设备价格:); scanf(%s,eqn.price); n+; printf(提示:已经完成一条记录的添加。n); printf(输入Y继续,否则输入N!n); fflush(stdin);
7、 c=getchar(); printf(提示:输入0则返回主菜单!n); scanf(%d,&choice); if(choice=0) menu();4.4显示记录void Disp1() int i; printf(ID号t名称t种类t报废日期t是否报废t购买时间t价格n); for(i=0;i提示:输入0则返回主菜单!n); scanf(%d,&choice); if(choice=0) menu();4.5插入记录难点:如何找到插入的条件利用for语句进行插入,且使得插入位置后的数据后移;void Insert() int i,id,choice; printf( 请输入要插入的位置
8、: n); scanf(%d,&id); for(i=n;iid;i-) eqi=eqi-1; n+; printf(请输入需要插入的设备号:); scanf(%d,&eqid.ID); printf(n请输入设备名称:); scanf(%s,eqid.name); printf(n请输入设备种类:); scanf(%s,eqid.kind); printf(n请输入报废日期:); scanf(%s,eqid.over); printf(n请输入设备是否报废:); scanf(%s,eqid.yesno); printf(n请输入设备购买时间:); scanf(%s,eqid.time); p
9、rintf(n请输入设备价格:); scanf(%s,eqid.price); printf(提示:已经完成记录的插入。n); printf(提示:输入0则返回主菜单!n); scanf(%d,&choice); if(choice=0) menu();4.6 Name查找记录难点:如何找到要查找的记录;利用strcmp语句即可;void SearchByName() int flag=0,i,choice; char name15; printf(请输入要找的设备名:); scanf(%s,name); for(i=0;i提示:输入0则返回主菜单!n); scanf(%d,&choice);
10、 if(choice=0) menu();4.7 ID查找记录void SearchByID() int flag=0,i,choice; int id; printf(请输入要找的设备号:); scanf(%d,&id); for(i=0;i提示:输入0则返回主菜单!n); scanf(%d,&choice); if(choice=0) menu();4.8删除记录难点:如何使删除后的数据前移;for括号内的表达式,即删除的条件;void del() int i,choice,p,j; printf(请输入你要删除的设备号:); scanf(%d,&p); for(i=0;in;i+)if(
11、p=eqi.ID)break;if(in)for(j=i;j提示:输入0则返回主菜单!n); scanf(%d,&choice); if(choice=0) menu();4.9排序记录难点:引用第三变量;如何利用for循环语句;冒泡排序;结构体的整体调用;void paixu() int i,j; struct equipment t; printf(排序前数据:n); Disp1(); for(i=0;in;i+) for(j=0;jeqj+1.ID) t=eqj; eqj=eqj+1; eqj+1=t; printf(the sorted ID numbers:n); Disp1();5
12、 调试与测试(1)主菜单(2)添加记录(3)显示记录(4)插入记录插入后显示(5)Name查找记录错误输入后的结果(6)ID查找记录(7)删除记录删除后的显示(8)排序记录6 课程设计心得与体会通过这次课程设计使我学会综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力是重要的环节,是对我们实际能力的具体训练和考察过程。随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。回顾起此次课程设计,至今我仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整一个多星期的日子里,学到了很多的东西,同时不仅
13、可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能提高自己的实际动手能力和独立思考的能力。在设计的过程中,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体的引用,自定义函数的定义与调用及其返回值这次课程设计之后,一定要把以前所学过的知识重新温故。在设计中遇到了很多编程问题,但在老师和同学的帮助下,终于得以解决,使得课程设计顺利完成。7 参考文献1)作者:王敬华
14、 林萍 张清国 书名:C语言程序设计教程(第二版) 出版社:清华大学出版社出版日期:2009-082)作者:王敬华等编著书名:C语言程序设计教程(第二版)习题解答与实验指导 出版社:清华大学出版社出版日期:2009-108 附录#include#include#define N 100int n=0;struct equipmentint ID; char name15; char kind15; char over10; char yesno10; char time10; char price10; eqN;void menu();void Add();void Disp1();void
15、Disp();void del();void Insert();void SearchByName();void SearchByID();int Search(int id);void paixu();void main() /主函数 menu();void menu() /主菜单 int flag; while(1) printf(tttt设备管理系统n); printf(*目录*); printf(n1添加记录n); printf(n2显示记录n); printf(n3插入记录n); printf(n4Name查找记录n); printf(n5ID查找记录n); printf(n6删除记
16、录n); printf(n7排序记录n); printf(n0*-EXIT-*n); printf(请输入你要操作的序号:); scanf(%d,&flag); switch(flag) case 0: printf(n提示:已经退出系统,ByeBye!n);break; case 1: Add(); break;/增加记录 case 2: Disp(); break;/显示记录 case 3: Insert(); break;/插入记录 case 4: SearchByName(); break;/Name查找记录 case 5: SearchByID(); break;/ID查找记录 ca
17、se 6: del(); break;/删除记录 case 7: paixu(); break;/排序记录 default: printf(n提示:输入错误!n); break; void Add() /添加记录 char c=Y; int choice; while(c=Y) printf(n请你输入设备ID号:); scanf(%d,&eqn.ID); printf(n请输入设备名称:); scanf(%s,eqn.name); printf(n请输入设备种类:); scanf(%s,eqn.kind); printf(n请输入报废日期:); scanf(%s,eqn.over); pri
18、ntf(n请输入设备是否报废:); scanf(%s,eqn.yesno); printf(n请输入设备购买时间:); scanf(%s,eqn.time); printf(n请输入设备价格:); scanf(%s,eqn.price); n+; printf(提示:已经完成一条记录的添加。n); printf(输入Y继续,否则输入N!n); fflush(stdin); c=getchar(); printf(提示:输入0则返回主菜单!n); scanf(%d,&choice); if(choice=0) menu();void Disp1() /显示记录 int i; printf(ID号
19、t名称t种类t报废日期t是否报废t购买时间t价格n); for(i=0;i提示:输入0则返回主菜单!n); scanf(%d,&choice); if(choice=0) menu();void SearchByName() /Name查找记录 int flag=0,i,choice; char name15; printf(请输入要找的设备名:); scanf(%s,name); for(i=0;i提示:输入0则返回主菜单!n); scanf(%d,&choice); if(choice=0) menu();void SearchByID() /ID查找记录 int flag=0,i,cho
20、ice; int id; printf(请输入要找的设备号:); scanf(%d,&id); for(i=0;i提示:输入0则返回主菜单!n); scanf(%d,&choice); if(choice=0) menu();void Insert() /插入记录 int i,id,choice; printf( 请输入要插入的位置: n); scanf(%d,&id); for(i=n;iid;i-) eqi=eqi-1; n+; printf(请输入需要插入的设备号:); scanf(%d,&eqid.ID); printf(n请输入设备名称:); scanf(%s,eqid.name);
21、 printf(n请输入设备种类:); scanf(%s,eqid.kind); printf(n请输入报废日期:); scanf(%s,eqid.over); printf(n请输入设备是否报废:); scanf(%s,eqid.yesno); printf(n请输入设备购买时间:); scanf(%s,eqid.time); printf(n请输入设备价格:); scanf(%s,eqid.price); printf(提示:已经完成记录的插入。n); printf(提示:输入0则返回主菜单!n); scanf(%d,&choice); if(choice=0) menu();void del() /删除记录 int i,choice,p,j; printf(请输入你要删除的设备号:); scanf(%d,&p); for(i=0;in;i+)if(p=eqi.ID)break;if(in)for(j=i;j提示:输入0则返回主菜单!n); scanf(%d,&choice);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1