机房收费管理系统

  • 格式: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)