目 录
第一章 课程设计任务内容............................................. 0 第二章 详细课程设计................................................. 1
2.1系统总体模块图 .............................................. 1 2.2 系统的功能模块划分.......................................... 1 2.3 主要函数介绍................................................ 2 2.4 系统程序代码及注释.......................................... 2 第三章 软件使用说明................................................. 7
3.1 录入系统.................................................... 7 3.2 计算功能.................................................... 7 3.3 查询功能.................................................... 8 3.4 机器使用情况................................................ 9 第四章 课程设计心得与体会........................................... 9 附录一:程序清单.................................................... 11
第一章 课程设计任务内容
题目:机房收费管理系统
目前,在部分高校中,计算机机房的上机收费仍然采用传统的人工计时方式,即学生凭有效证件前来上机,由机房管理人员手工登记开始时间和结束时间,然后按实际机时进行计算并收取相应费用。人工计时计费方式不但效率低,而且容易出错,也不利于定期的统计工作。随着高校学生人数的不断增加,这些工作的难度和强度也不断加大,给机房管理部门带来了很大的压力。
本课程设计要求实现机房收费管理系统,具体任务如下:
(1)输入功能:输入30名学生的学号、班级、姓名、上机起始时间。 (2)计算功能:计算每个下机学生的上机费用,每小时1元。
(上机费用=上机时间* 1.0/h ,不足一小时按一小时计算) (3)查询功能:按条件(班级、学号、姓名)显示学生的上机时间。 (4)机器使用情况的显示(显示方式不限但要一目了然)。
第二章 详细课程设计
2.1系统总体模块图
系统的整体模块描述如图所示
机房收费系统 机房运行管理 用户管理 计算机管理 计算机 使用情况显示 用户上下机管理 用户充值 用户查找 用户添加 用户删除 用户修改 计算机添加 计算机删除 计算机维护
图3-1 系统总体模块图
2.2 系统的功能模块划分
每一条记录包含一个学生学号、学生班级、学生姓名、上机起始时间,同时包含:完成对学生上机时间的录入;按条件(班级、学号、姓名)显示学生的上机时间,计算每个下机学生的上机费用,并能根据学生的上机时间进行计算上机费用,而且还能显示机器使用情况。
2.3 主要函数介绍
Main-menu函数:输出机房管理系统菜单
Input函数:输入若干学生的学号、班级和姓名及上机时间 Online函数:学生上机,输入上机学生学号或姓名及时间 Calculator函数:计算上机费用并输出
Offline函数:学生下机时间,调用calculator函数得到上机费用 Search函数:查找学生上机信息 Display函数:显示全部机器的使用信息 Main函数:函数调用以及结束程序
2.4 系统程序代码及注释
2.4.1输入功能:输入30名学生的学号、班级、姓名、上机起始时间 #include
char theclass[N]; char name[N]; char ontime[N]; }
student[M]; int n;
void addition() { int i;
printf(\请输入录入学生信息的总数:\); scanf(\,&n); for(i=1;i<=n;i++)
{ printf(\请输入第%d个学生学号(20s):\,i); scanf(\,student[i-1].id);
printf(\请输入第%d个学生班级(20s):\,i); scanf(\,student[i-1].theclass);
printf(\请输入第%d个学生姓名(20s):\,i); scanf(\,student[i-1].name);
printf(\请输入第%d个学生上机时间(20s)(例:02):\,i); scanf(\,student[i-1].ontime);
printf(\提示:您已成功录入第%d条信息\\n\,i); } }
2.4.2计算功能:计算每个下机学生的上机费用,每小时1元。 (上机费用=上机时间* 1.0/h ,不足一小时按一小时计算) void calculate() { int hours; char times[30]; time_t rawtime;
struct tm * timeinfo; time ( &rawtime );
timeinfo = localtime(&rawtime ); strcpy(times,asctime(timeinfo)); printf(\所有学生上机费用如下:\\n\); for(int i=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(\,hours); } }
void calculate() { int hours; char times[30]; time_t rawtime;
struct tm * timeinfo; time ( &rawtime );
timeinfo = localtime(&rawtime ); strcpy(times,asctime(timeinfo)); printf(\所有学生上机费用如下:\\n\); for(int i=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;