课程设计机房收费管理系统.docx
- 文档编号:26788177
- 上传时间:2023-06-22
- 格式:DOCX
- 页数:21
- 大小:144.10KB
课程设计机房收费管理系统.docx
《课程设计机房收费管理系统.docx》由会员分享,可在线阅读,更多相关《课程设计机房收费管理系统.docx(21页珍藏版)》请在冰豆网上搜索。
课程设计机房收费管理系统
机房收费管理系统
第一章课程设计目的和要求
1.1课程设计的目的
进一步巩固《C++程序设计》所学的知识,特别加强数组,指针,结构体,文件数据类型的应用,熟悉面向过程的结构化和面向对象可视化程序设计方法,培养结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解,锻炼程序设计的能力,以及用C/C++语言解决实际问题的能力,为以后后续课程的学习打好基础。
此课程设计着眼于知识的运用,把平常学的知识运用到课程实践中来,本身就是考察我们知识运用能力。
要求熟悉运用一些编程软件(如:
MicrosoftVisualC++6.0),对我们所学的理论知识进一步的深化。
1.2课程设计实现的要求
在程序设计中,既可以用传统的结构化程序设计方法,也可以用先进的面向对象程序设计方法。
机房收费管理系统主要应用在机房,将每位上网同学的学号、班级、姓名、上机起始时进行录入,对每位同学的上网费用进行计算并按班级、学号、姓名进行查询。
第二章课程设计任务内容
用C/C++语言实现一个机房收费管理系统,该系统主要应用在机房管理上,通过这个系统可以录入学生信息的总数,学生信息包括学生的学号、班级、姓名,还有学生上机的起始时间。
在本程序中要有学生信息录入功能,上机费用计算功能,按条件查询功能,信息的录入是要录入学生的学号、班级、姓名、上机时间,上机费用按每小时1元计算,不足一小时也按一小时计算,上机费用=上机的时间*1.0/h,上机的时间为从上机时起到下机时所在电脑的当时时间为准。
录入完成后可以按学生的学号、班级、姓名来查询学生的上机情况。
第三章详细设计说明
3.1模块
3.1.1模块描述
定义一个结构体,在其中声明结构变量,然后定义字符串,来存放要用到的变量。
然后定义此程序的其他功能模块的原型。
主函数调用各个功能子函数,定义各个功能子函数,通过addition做一个学生信息录入的函数,实现学生学号、班级、姓名以及上机时间的录入,通过calculate做一个计算学生上机费用的函数,实现上机费用的计算,通过search创建一个查询函数,实现对上机学生情况的查询。
在程序中需要输入的内容包括:
(1)学生信息的录入
实现过程:
根据提示选择“1”进入学生信息录入界面,按界面文字提示输入要录入信息的学生数,,按步骤输入学生的信息,以“Enter”键结束,系统自动保存所输入的信息。
(2)上机费用的计算
实现过程:
根据提示选择“2”进入计算界面,以“Enter”键结束,由系统自动计算出所有学生的上机费用。
(3)学生信息查询
实现过程:
根据提示选择“3”进入信息的查询界面,按自己的需要通过学生的学号、班级、姓名来查询学生的信息,系统自动调出所查询学生的信息,以“Enter”键结束,此时所有的基本信息都被要求重新输入。
3.1.2功能模块图
此系统的函数功能模块图如图3-1所示。
机房收费管理系统
图3-1函数功能模块图
3.2性能
该模块性能要求
(1)灵活性要求
输出的数据能准确的按照操作代码输出。
(2)时间特性要求
输入的各项操作代码能及时反应其运行结果。
3.3函数说明
3.3.1学生信息录入函数
(1)原型:
voidaddition()
(2)功能:
该函数用来录入学生信息,包括要录入学生信息的总数,录入学生的学号、班级、姓名以及上机时间。
(3)流程图:
如图3-2所示。
3-2学生信息录入函数的流程图
(4)对应代码
voidaddition()
{
inti;
printf("\n请输入录入学生信息的总数:
");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("\n\t请输入第%d个学生学号:
",i);
scanf("%s",student[i-1].num);
printf("\n\t请输入第%d个学生班级:
",i);
scanf("%s",student[i-1].theclass);
printf("\n\t请输入第%d个学生姓名:
",i);
scanf("%s",student[i-1].name);
printf("\n\t请输入第%d个学生上机时间(例08:
00):
",i);
scanf("%s",student[i-1].ontime);
printf("\n\t提示:
您已成功录入第%d条信息\n",i);
}
}
3.3.2所有学生上机费用计算函数
(1)原型:
voidcalculate()
(2)功能:
该函数用来计算学生上机的费用,
(3)流程图:
如图3-3所示。
图3-3成绩查询函数的程序流程图
(4)对应代码
voidcalculate()
{
inthours;
chartimes[30];
time_trawtime;
structtm*timeinfo;
time(&rawtime);
timeinfo=localtime(&rawtime);
strcpy(times,asctime(timeinfo));
printf("\t所有学生上机费用如下:
\n");
for(inti=1;i<=n;i++)
{
printf("学生%d费用:
",i);
if((student[i-1].ontime[3]-48)*10+student[i-1].ontime[4]>(times[14]-48)*10+times[15])hours=(times[11]-48)*10+times[12]-(student[i-1].ontime[0]-48)*10-student[i-1].ontime[1];
else
hours=(times[11]-48)*10+times[12]-(student[i-1].ontime[0]-48)*10-student[i-1].ontime[1]+1;
printf("%d\n",hours);
}
}
3.3.3学生信息查询函数
(1)原型:
voidsearch()
(2)功能:
该函数用来按照条件显示学生上机时间。
(3)流程图:
如图3-4所示。
图3-4成绩修改函数的程序流程图
(4)对应代码
voidsearch()
{
inti,b,c,count;
do
{
charfind[20];
printf("\n请选择查询方式:
1.根据学号查询;2.根据班级查询;3.根据姓名查询:
");
scanf("%d",&b);
switch(b)
{
case1:
count=PF_FLOATING_POINT_PRECISION_ERRATA;
printf("\n请输入学生的学号:
");
scanf("%s",find);
for(i=0;i { if(strcmp(student[i].num,find)==0) { count++; if(count==PF_FLOATING_POINT_EMULATED) printf("学生学号\t学生班级\t学生姓名\t上机时间\n"); printf("%8s%15s%15s%17s%",student[i].num,student[i].theclass, student[i].name,student[i].ontime); } } if(! count) printf("提示: 该生不存在"); gotoA; case2: count=PF_FLOATING_POINT_PRECISION_ERRATA; printf("\n请输入学生的班级: "); scanf("%s",find); for(i=0;i { if(strcmp(student[i].theclass,find)==0) { count++; if(count==PF_FLOATING_POINT_EMULATED) printf("学生学号\t学生班级\t学生姓名\t上机时间\n"); printf("%8s%15s%15s%17s%",student[i].num,student[i].theclass, student[i].name,student[i].ontime); } } if(! count) printf("提示: 该生不存在"); gotoA; case3: count=PF_FLOATING_POINT_PRECISION_ERRATA; printf("\n请输入学生的姓名: "); scanf("%s",find); for(i=0;i { if(strcmp(student[i].name,find)==0) { count++; if(count==PF_FLOATING_POINT_EMULATED) printf("学生学号\t学生班级\t学生姓名\t上机时间\n"); printf("%8s%15s%15s%17s%",student[i].num,student[i].theclass, student[i].name,student[i].ontime); } } if(! count) printf("提示: 该生不存在"); gotoA; default: printf("提示: 输入错误"); } A: printf("\n\t1.继续\n\t0.返回主菜单"); printf("\n\t请输入您的选择: "); scanf("%d",&c); }while(c); } 3.4系统流程图 系统流程图如图3-5所示。 图3-5系统程序流程图 第四章软件使用说明 4.1软件使用说明及出现的问题 该程序可以实现对所有上机同学信息的录入,某个同学上机情况的查询。 安装VisualC++6.0中文版后,在工具栏“文件”中单击“新建”选项,单击“文件”选项卡,选择“C++Sourcefile”。 开始输入程序,程序输入完成,单击工具栏中“组建”选项,选择“编译[机房收费管理系统.cpp]”待程序无误后,开始构建并执行程序。 if(! count) printf("提示: 该生不存在"); gotoA; 这个if语句判断输入的操作编号是否在目录中,如果超出范围重新输入; 该程序在输入时,必须是按照要求的字符串输入,否则程序无法运行。 4.2运行结果 4.2.1初始运行界面 最初的运行界面,要求输入学生信息的总数(如: 输入30),然后系统将列出操作目录。 如图4-1所示。 图4-1初始运行界面 4.2.2查询界面 进入初始界面后,输入项目编号“1”,输入学生信息的总数(例如: 输入1)。 输入这个学生的相关信息,输入相关编号“3”进行查询。 如图4-2所示 图4-2查询界面 4.2.3计算界面 计算出上机费用,具体的数据如图4-3所示 图4-3计算界面 第五章课程设计心得与体会 课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程。 随着科学技术发展的日新月异,当今计算机应用在生活中可以说是无处不在。 因此,作为二十一世纪的大学来说,掌握程序开发技术是十分重要的,而C/C++语言又是最常见,功能最强大的高级语言,做好C/C++语言课程设计是十分必要的。 回顾起此次课程设计,我感慨颇多。 的确,从拿到题目到完成整个系统的编程,从理论到实践,在整整三周的日子里,我学会了很多东西,在巩固了以前所学过的知识的同时,我还学到了很多书本上所没有的东西。 此次课程设计我做的是一个机房收费管理系统,该系统主要应用在机房管理上,内容包括上机学生信息的录入,某个学生上机显示的查询,某个学生上机费用的计算。 虽然是很简单的一个小系统,但对我们初学者来说却是一个很大的困难,而在各种各样的问题下,我通过自己的努力,理论结合实践,最终完成了整个编程。 在这次课程设计中,我深刻的了解到: 第一,C/C++语言是程序设计的重要工具。 如果想有效的进行程序设计,正确地应用程序设计语言表达算法,必须准确的运用程序设计语言,而C/C++语言是最常见的,也是功能最强大的语言。 在做好程序设计的前提下,必须掌握C/C++语言的基本语言要素和其控制结构等语法知识,且灵活运用。 第二,进行程序设计必须有清晰的思路与方法,要合理的分配勾画系统的功能模块图、构建各个函数的流程图、编写程序以及上机实践的时间。 这次的课程设通过课堂教学、与自我实践的紧密联系,使得我对课程设计有了较为深的了解与认识,更好的完成了这次学习任务。 第三,做好课程设计,要有顽强的意志与坚定的信心,永不言弃。 要多看、多问、多想,遇到问题要想办法解决,否则事倍功半。 在这期间,我们经历了很多,也收获了很多。 经过这次课程设计,我学会了如何运用所学知识去解决实际问题,懂得了如何去与人合作! 附录一: 参考文献 [1]谭浩强,C++程序设计,北京清华大学出版社 [2]谭浩强,C程序设计教程(第三版),北京清华大学出版社 附录二: 程序清单 #include #include #include #include structstudent { charnum[20]; chartheclass[20]; charname[20]; charontime[20]; }student[30]; intn; voidaddition() { inti; printf("\n请输入录入学生信息的总数: "); scanf("%d",&n); for(i=1;i<=n;i++) { printf("\n\t请输入第%d个学生学号: ",i); scanf("%s",student[i-1].num); printf("\n\t请输入第%d个学生班级: ",i); scanf("%s",student[i-1].theclass); printf("\n\t请输入第%d个学生姓名: ",i); scanf("%s",student[i-1].name); printf("\n\t请输入第%d个学生上机时间(例08: 00): ",i); scanf("%s",student[i-1].ontime); printf("\n\t提示: 您已成功录入第%d条信息\n",i); } } voidcalculate() { inthours; chartimes[30]; time_trawtime; structtm*timeinfo; time(&rawtime); timeinfo=localtime(&rawtime); strcpy(times,asctime(timeinfo)); printf("\t所有学生上机费用如下: \n"); for(inti=1;i<=n;i++) { printf("学生%d费用: ",i); if((student[i-1].ontime[3]-48)*10+student[i-1].ontime[4]>(times[14]-48)*10+times[15]) hours=(times[11]-48)*10+times[12]-(student[i-1].ontime[0]-48)*10-student[i-1].ontime[1]; else hours=(times[11]-48)*10+times[12]-(student[i-1].ontime[0]-48)*10-student[i-1].ontime[1]+1; printf("%d\n",hours); } } voidsearch() { inti,b,c,count; do { charfind[20]; printf("\n请选择查询方式: 1.根据学号查询;2.根据班级查询;3.根据姓名查询: "); scanf("%d",&b); switch(b) { case1: count=PF_FLOATING_POINT_PRECISION_ERRATA; printf("\n请输入学生的学号: "); scanf("%s",find); for(i=0;i { if(strcmp(student[i].num,find)==0) { count++; if(count==PF_FLOATING_POINT_EMULATED) printf("学生学号\t学生班级\t学生姓名\t上机时间\n"); printf("%8s%15s%15s%17s%",student[i].num,student[i].theclass, student[i].name,student[i].ontime); } } if(! count) printf("提示: 该生不存在"); gotoA; case2: count=PF_FLOATING_POINT_PRECISION_ERRATA; printf("\n请输入学生的班级: "); scanf("%s",find); for(i=0;i { if(strcmp(student[i].theclass,find)==0) { count++; if(count==PF_FLOATING_POINT_EMULATED) printf("学生学号\t学生班级\t学生姓名\t上机时间\n"); printf("%8s%15s%15s%17s%",student[i].num,student[i].theclass, student[i].name,student[i].ontime); } } if(! count) printf("提示: 该生不存在"); gotoA; case3: count=PF_FLOATING_POINT_PRECISION_ERRATA; printf("\n请输入学生的姓名: "); scanf("%s",find); for(i=0;i { if(strcmp(student[i].name,find)==0) { count++; if(count==PF_FLOATING_POINT_EMULATED) printf("学生学号\t学生班级\t学生姓名\t上机时间\n"); printf("%8s%15s%15s%17s%",student[i].num,student[i].theclass, student[i].name,student[i].ontime); } } if(! count) printf("提示: 该生不存在"); gotoA; default: printf("提示: 输入错误"); } A: printf("\n\t1.继续\n\t0.返回主菜单"); printf("\n\t请输入您的选择: "); scanf("%d",&c); }while(c); } voidmenu() { printf("\n\t欢迎进入机房收费管理系统! \n"); printf("\t1.录入功能2.计算功能\n"); printf("\t3.查询功能0.返回\n"); printf("\n\t请输入您的选择: "); } voidmain() { inta; C: menu(); scanf("%d",&a); switch(a) { case0: printf("==正在退出==下机成功,再见! ");break; case1: addition();gotoC; case2: calculate();gotoC; case3: search();gotoC; } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 机房 收费 管理 系统