课程设计机房收费管理系统.docx
《课程设计机房收费管理系统.docx》由会员分享,可在线阅读,更多相关《课程设计机房收费管理系统.docx(20页珍藏版)》请在冰豆网上搜索。
课程设计机房收费管理系统
机房收费管理系统
第一章课程设计目的和要求
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〈n;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〈n;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