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