教学设备管理系统课程设计.docx
- 文档编号:10001501
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:26
- 大小:681.48KB
教学设备管理系统课程设计.docx
《教学设备管理系统课程设计.docx》由会员分享,可在线阅读,更多相关《教学设备管理系统课程设计.docx(26页珍藏版)》请在冰豆网上搜索。
教学设备管理系统课程设计
课程设计
设计题目教学设备管理系统
学生姓名
学号
专业班级
指导教师
院系名称
设计
题目
教学设备管理系统
成绩
主
要
内
容
主要内容分为以下几部分
1.需求分析
2.概要设计
3.详细设计
4.编码、调试、分析
5.测试结果
6.感想总结
7.参考资料
8.附录
指
导
教
师
意
见
签名:
20年月日
教学设备管理系统
1.问题描述
2.系统功能和各个功能模块的介绍
3.系统设计方法
4.系统实现的主要技术原理和方法
5.编码、调试、分析
6.感想总结
7.参考资料
8.附录
1.问题描述
学校对教学设备管理都还使用着传统的模式。
在此模式下,人工的记录教学信息。
而随着时代的不断发展这样的模式已经不能完全适应现代的形势。
信息化时代的到来,使学校传统的管理方法和应用水平都受到了极大的挑战。
随着Internet技术持续迅猛的发展,给传统的设备管理模式提出了新的要求。
较之传统的管理方式,开发的教学管理系统的优势有:
一方面可以动态地管理设备信息;另一方面,管理员可以在任意时间、任意地点通过网络查看设备信息;另外计算机化的管理的一大特点是查找准确而迅速:
系统可以在输入结束后当场给出准确的查询结果。
2.系统功能和各个模块功能的介绍
对于教务处来,工作之一主要是管理教学所用的各种设备和物品,现在要求设计一套管理系统,管理教学的各种设备系统功能要求如下:
1.将每一个教学设备编号、设备名称、生产厂家、购置日期、台数、单价、及备注作为一个记录,该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。
2.根据用户提供的记录或者根据设备编号显示一个或几个设备的记录。
3.可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。
4.可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。
5.可删除数据文件中的任一记录。
6.能恢复被删除的任一记录。
7.可以在数据文件中添加记录并添加记录后对记录内容进行显示。
8.(A)统计每页合计台数及金额;(B)累计设备的总台数及总金额;(C)统计单价在:
200元以下、200~800元之间和800元以上的设备总台数及总金额。
(D)按字符表格形式打印合肥工业大学教学设备明细表。
9.保存数据文件。
10.打开数据文件。
根据对该系统的需求分析可知,设计的教学管理系统有分9个功能:
(1)输入设备信息
(2)显示设备信息
(3)修改设备信息
(4)查找设备信息
(5)删除设备信息
(6)恢复设备信息
(7)添加设备信息
(8)统计设备信息
(9)保存设备信息
并且设计出一个方案:
菜单
开始
根据菜单输入i的值选择程序
保存
结束
2
显示记录
3
修改记录
4
查找记录
5
删除记录
6
恢复记录
8
统计
1
输入记录
7
添加记录
0
退出
3.系统设计方法
我们这个组有三个人,在我们商量确定了我们的系统的需求后,我们合作做了打开系统的函数、退出函数和主函数,又分工分做几个子系统,而我负责的是修改设备信息、恢复设备信息以及保存设备信息。
我们这个系统没有建立数据库,只是简单地运用数组来存储数据,但系统的功能还是很全面的。
我的设计部分:
(1)修改设备数据:
当我们新购进了一些教学设备,就需要我们修改数据,这里分为两部分,首先要确定我们是否有该设备,若有,则更新该数据。
intmodify()/*定义修改函数*/
{
charname[30];
inti,n;
printf("输入要修改的设备编号:
");
scanf("%s",name);
printf("\n");
for(i=0;i { if(strcmp(s[i].id,name)==0) n=modifyf(i);/*调用确认修改函数*/ } printf("\n"); if(n! =1)printf("对不起,该设备不存在\n\n"); system("pause"); return1; } intmodifyf(inti)/*定义确认修改函数*/ { showsingle(i); printf("\n请输入修改后的数据: \n\n"); printf("设备名称: "); scanf("%s",&s[i].name); printf("产地: "); scanf("%s",&s[i].cd); printf("购置日期: "); scanf("%s",&s[i].rq); printf("台数: "); scanf("%d",&s[i].ts); printf("单价: "); scanf("%d",&s[i].dj); printf("金额: "); scanf("%d",&s[i].je); printf("备注: "); scanf("%s",&s[i].bz);/*逐个修改该职工信息,只修改了基本工资,待修改*/ printf("\n"); printf("修改结果如下: \n\n"); showsingle(i); return1; } (2)恢复数据: 当我们想恢复我们删除的数据信息时,这时,我们就用到了该函数。 intrecovery() { charname[30]; inti,n; printf("\n请输入要恢复的设备编号: "); scanf("%s",name); for(i=0;i { if(strcmp(d[i].id,name)==0) { s[length]=d[i]; length++; n=1; printf("\n恢复成功\n");//需修正,不能无限次恢复,应只恢复一次,而且应修复到被删除的地方 printf("\n恢复后结果如下: \n"); display(); } } printf("\n"); if(n! =1) { printf("对不起,该设备尚未存在记录\n\n"); system("pause"); } return1; } (3)保存数据 intsave() { FILE*fout; printf("\n请为您保存的文件命名: "); scanf("%s",fname); fout=fopen(fname,"wb");//文件名为fname,数组名,无双引号 fwrite(s,sizeof(SB),length,fout); fclose(fout); printf("\n保存成功\n\n"); system("pause"); return1; } 队友的设计部分: (1)输入数据: 输入教学设备名称,编号,产地,购置日期,台数,单价,金额等的相关信息,通过自己定义的input()函数来实现。 intinput()/*输入数据*/ { intnum,i; printf("\n请输入你想创建的记录个数: "); scanf("%d",&num); printf("\n"); for(i=0;i { printf("设备编号: "); scanf("%s",&s[length].id); printf("设备名称: "); scanf("%s",&s[length].name); printf("产地: "); scanf("%s",&s[length].cd); printf("购置日期: "); scanf("%s",&s[length].rq); printf("台数: "); scanf("%d",&s[length].ts); printf("单价: "); scanf("%d",&s[length].dj); printf("金额: "); scanf("%d",&s[length].je); printf("备注: "); scanf("%s",&s[length].bz); printf("\n"); ++length;/*结构体数组长度增加1*/ } system("pause"); return1; } (2)显示数据: 显示输入后保存的全部信息,通过自己定义的display()函数来实现。 intshowsingle(inti) {printf("设备编号设备名称产地购置日期台数单价金额备注\n"); printf("%8s%11s%6s%11s%5d%7d%10d%7s\n",s[i].id,s[i].name,s[i].cd,s[i].rq,s[i].ts,s[i].dj,s[i].je,s[i].bz); return1; } intdisplay()//定义显示函数 {inti; printf("设备编号设备名称产地购置日期台数单价金额备注\n"); for(i=0;i printf("%8s%11s%6s%9s%5d%7d%8d%6s\n",s[i].id,s[i].name,s[i].cd,s[i].rq,s[i].ts,s[i].dj,s[i].je,s[i].bz); system("pause"); return1; } (3)查找数据: 可以按编号查询教学设备信息,通过自己定义的search()函数来实现。 intsearch()/*定义查找函数*/ {charname[30]; inti,n; printf("请输入要查询的设备编号: "); scanf("%s",name); printf("\n"); for(i=0;i {if(strcmp(s[i].id,name)==0)/*调用字符串比较函数若employee[i]中的名字和要查找的人同名,则输出他的信息*/ n=showsingle(i); } printf("\n"); if(n! =1)printf("对不起,该设备尚未存在记录\n\n"); system("pause"); return1; } (4)删除数据: 删除需要删除的教学设备记录,通过自己定义的delete1()函数来实现。 intdelete1()/*定义删除记录函数*/ { charname[30]; inti,n; printf("请输入要删除的设备编号: "); scanf("%s",name); for(i=0;i { if(strcmp(s[i].id,name)==0)/*调用字符串比较函数若employee[i]中的名字和要删除的人相同,则执行删除函数deletef(i)*/ n=deletef(i); } printf("\n"); if(n! =1){printf("对不起,该设备尚未存在记录\n\n");system("pause");} return1; } intdeletef(intlocal)/*定义确认删除函数*/ {inti; d[k]=s[local];//结构体整体赋值 k++; for(i=local;i { strcpy(s[i].id,s[i+1].id); strcpy(s[i].name,s[i+1].name); strcpy(s[i].cd,s[i+1].cd); strcpy(s[i].rq,s[i+1].rq); s[i].ts=s[i+1].ts; s[i].dj=s[i+1].dj; s[i].je=s[i+1].je;/*从删除的职工开始把后一个职工的所有数据依次赋给前一个职工*/ strcpy(s[i].bz,s[i+1].bz); } length--;/*结构体数组长度减1*/ printf("\n删除成功\n"); printf("\n删除后结果如下: \n"); display(); return1; } (5)恢复数据 intrecovery() { charname[30]; inti,n; printf("\n请输入要恢复的设备编号: "); scanf("%s",name); for(i=0;i { if(strcmp(d[i].id,name)==0) { s[length]=d[i]; length++; n=1; printf("\n恢复成功\n");//需修正,不能无限次恢复,应只恢复一次,而且应修复到被删除的地方 printf("\n恢复后结果如下: \n"); display(); } } printf("\n"); if(n! =1) { printf("对不起,该设备尚未存在记录\n\n"); system("pause"); } return1; } (6)统计数据: 统计在(0,200)(200,800)(800,+∞)区间内的设备台数,通过自己定义的count()函数来实现。 intcount() { inti,zts=0,zje=0,num1=0,num2=0,num3=0,num4=0,num5=0,num6=0; printf("设备编号设备名称产地购置日期台数单价金额备注\n"); for(i=0;i printf("%8s%11s%6s%9s%5d%7d%8d%6s\n",s[i].id,s[i].name,s[i].cd,s[i].rq,s[i].ts,s[i].dj,s[i].je,s[i].bz); for(i=0;i for(i=0;i printf("合计%34d%16d\n",zts,zje); for(i=0;i { if(s[i].dj<200) {num1+=s[i].ts;num2+=s[i].je;} if(200<=s[i].dj&&s[i].dj<800) {num3+=s[i].ts;num4+=s[i].je;} if(s[i].dj>=800) {num5+=s[i].ts;num6+=s[i].je;} } printf("\n单价在200元以下的设备总台数为%4d,总金额为%d\n",num1,num2); printf("\n单价在200~800元的设备总台数为%4d,总金额为%d\n",num3,num4); printf("\n单价在800元以上的设备总台数为%4d,总金额为%d\n",num5,num6); system("pause"); return1; } intopen() { FILE*fout; charfname2[10]; inti,n,j; printf("\n请输入您想打开的文件名: ");//文件名有问题 scanf("%s",fname2); if((fout=fopen(fname2,"rb"))! =NULL) {if(length==0) { for(j=0;j<10;j++) {fread(&all[j],sizeof(SB),1,fout); if(all[j].dj! =0)length++; } fclose(fout); n=1; } else {fread(all,sizeof(SB),length,fout);//结构体数组all接受二进制整体赋值,并通过该数组输出退出程序再次打开时length为0,所以没有读入数据 fclose(fout); n=1; } } else {printf("\n您输入的文件名不存在\n\n"); system("pause"); } if(n==1) {for(i=0;i<10;i++)s[i]=all[i]; display(); } return1; } 4.系统实现的主要技术原理和方法 我们这个教学设备管理系统的主要用到的是数组和系统函数,方法是经过逐层逐块、不断细化、求精过程,编写程序并进行测试、验证,可以逐个模块地分开调试,并通过文件包含或用工程文件的形式进行逐步联合调试。 我们并没有建立数据库,用这个系统的人可以根据需要自行的输入设备信息,让后保存在就是可以经行其他功能的操作了。 5.编码、调试、分析 一、编码 确定主函数,在系统中设置一个主页面,然后设计一个菜单界面,用来作为功能选择器,从而可以设置上述的函数来完成这些功能。 把主函数与菜单函数,和上述子函数结合构成一个完整的系统程序。 经调试和分析得到我们想要的系统。 intmain() {inti; home(); while (1) { system("cls"); i=menu(); if(i==0){printf("\n请按任意键退出\n");return1;} if(i==1){input();system("cls");} if(i==2){display();system("cls");} if(i==3){modify();system("cls");} if(i==4){search();system("cls");} if(i==5){delete1();system("cls");} if(i==6){recovery();system("cls");} if(i==7){add();system("cls");} if(i==8){count();system("cls");} if(i==9){save();system("cls");} if(i==10){open();system("cls");} } return1; } inthome() {system("cls"); printf("\n\n\n\n\n\n\n"); printf("合肥工业大学\n\n"); printf("教学设备管理系统\n\n\n\n"); printf("请按Enter键进入\n\n\n\n"); while(getchar()! ='\n'); return1; } intmenu()/*定义界面函数*/ { intflag=0; printf("\n\n\n\n\n\n\n"); printf("合肥工业大学教学设备管理\n"); printf("********************************************\n"); printf("|1输入记录2显示记录|\n"); printf("|3修改记录4查找记录|\n"); printf("|5删除记录6恢复记录|\n"); printf("|7添加记录8统计|\n"); printf("|9保存10打开|\n"); printf("|0退出|\n"); printf("********************************************\n"); printf("请输入0-10: "); scanf("%d",&flag);/*输入要执行的功能前的数字*/ returnflag; } 二、调试与分析 通过上面的功能函数可以看出,我们做过调试,删除设备信息和修改设备信息的时候,我们都会有一个再次确定的信息功能,还有出入的设备信息格式错误也会有显示,,或者在查找的时候,所查查找的设备部存在。 经过我们的调试和分析,从而确定了最佳的函数编码。 如下图,是在我们运行调试后的结果: 三、测试结果 6.感想总结 通过这次课程设计总体有如下收获: 其次,在问题解决的过程中,我提高了编程能力和相应的C语言水平。 使我深刻的意识到任何所学的知识都需要实践,没有实践就无法真正理解这些知识以及掌握它们,使其成为自己的财富。 在实际的上机操作过程中,不仅是让我们了解数据结构的理论知识,更重要的是培养解决实际问题的能力,所以相信通过此次实习可以提高我们分析设计能力和编程能力,为后续课程的学习及实践打下良好的基础。 最后,在整个过程中,锻炼了我查找资料。 7.参考资料 1.谭浩强.C++面向对象程序设计[M].北京: 清华大学出版社,2006. 2.张海林,杜忠友,姜玉波.VisualC++简明教程[M].北京: 电子工业出版社,2007. 3.丁展,四维科技.VisualC++游戏开发技术与实例[M].北京: 人民邮电出版社,2005. 4.姚领田.精通MFC程序设计[M].北京: 人民邮电出版社.2000. 5.清宏计算机工作室.VisualC++6.0编程技巧(多媒体与系统篇)[M].北京: 机械工业出版社,2001. 6.王华,叶爱亮,祁立学等.VisualC++6.0编程实例与技巧[M].北京: 机械工业出版社,1999. 7.钱新贤,杨猛,程兆炜等.VisualC++编程疑难详解[M].北京: 人民邮电出版社,2000. 8.附录(源程序) 见程序清单.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学 设备管理 系统 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)