机房收费管理系统.docx

上传人:b****6 文档编号:6113797 上传时间:2023-01-03 格式:DOCX 页数:18 大小:376.42KB
下载 相关 举报
机房收费管理系统.docx_第1页
第1页 / 共18页
机房收费管理系统.docx_第2页
第2页 / 共18页
机房收费管理系统.docx_第3页
第3页 / 共18页
机房收费管理系统.docx_第4页
第4页 / 共18页
机房收费管理系统.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

机房收费管理系统.docx

《机房收费管理系统.docx》由会员分享,可在线阅读,更多相关《机房收费管理系统.docx(18页珍藏版)》请在冰豆网上搜索。

机房收费管理系统.docx

机房收费管理系统

 

第1章课程设计任务内容

题目:

机房收费管理系统

目前,在部分高校中,计算机机房的上机收费仍然采用传统的人工计时方式,即学生凭有效证件前来上机,由机房管理人员手工登记开始时间和结束时间,然后按实际机时进行计算并收取相应费用。

人工计时计费方式不但效率低,而且容易出错,也不利于定期的统计工作。

随着高校学生人数的不断增加,这些工作的难度和强度也不断加大,给机房管理部门带来了很大的压力。

本课程设计要求实现机房收费管理系统,具体任务如下:

(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

#include

#include

#include

#defineN20

#defineM100

structstudent

{charid[N];

chartheclass[N];

charname[N];

charontime[N];

}

student[M];

intn;

voidaddition()

{inti;

printf("\n请输入录入学生信息的总数:

");

scanf("%d",&n);

for(i=1;i<=n;i++)

{printf("\n\t请输入第%d个学生学号(20s):

",i);

scanf("%s",student[i-1].id);

printf("\n\t请输入第%d个学生班级(20s):

",i);

scanf("%s",student[i-1].theclass);

printf("\n\t请输入第%d个学生姓名(20s):

",i);

scanf("%s",student[i-1].name);

printf("\n\t请输入第%d个学生上机时间(20s)(例:

02):

",i);

scanf("%s",student[i-1].ontime);

printf("\n\t提示:

您已成功录入第%d条信息\n",i);

}

}

2.4.2计算功能:

计算每个下机学生的上机费用,每小时1元。

(上机费用=上机时间*1.0/h,不足一小时按一小时计算)

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];

elsehours=(times[11]-48)*10+times[12]-(student[i-1].ontime[0]-48)*10-student[i-1].ontime[1]+1;

printf("%d\n",hours);

}

}

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];

elsehours=(times[11]-48)*10+times[12]-(student[i-1].ontime[0]-48)*10-student[i-1].ontime[1]+1;

printf("%d\n",hours);

}

}

2.4.3查询功能:

按条件(班级、学号、姓名)显示学生的上机时间。

voidsearch()

{inti,b,c,count;

do

{charfind[20];

printf("\n请选择查询方式:

1.根据学号查询;2.根据班级查询;3.根据姓名查询;4.根据上机时间:

");

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].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("****提示:

该生不存在");

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].id,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].id,student[i].theclass,student[i].name,student[i].ontime);

}

}

if(!

count)printf("****提示:

该生不存在");

gotoA;

case4:

count=PF_FLOATING_POINT_PRECISION_ERRATA;

printf("\n**请输入学生的上机时间:

");

scanf("%s",find);

for(i=0;i

{if(strcmp(student[i].ontime,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("****提示:

该生不存在");

gotoA;

default:

printf("*****提示:

输入错误");

}

A:

printf("\n\t**1.继续\n\t**0.返回主菜单");

printf("\n\t请输入您的选择:

");

scanf("%d",&c);

}

while(c);

}

2.4.4机器使用情况的显示(显示方式不限但要一目了然)

voidmenu()

{

printf("\n\t*******************欢迎进入机房收费管理系统!

*******************\n");

printf("\t*1.录入功能2.计算功能*\n");

printf("\t*3.查询功能0.-*EXIT*-*\n");printf("\t***************************************************************\n");

printf("\n\t请输入您的选择:

");

}

voidmain()

{system("color5f");

inta;

C:

menu();

scanf("%d",&a);

switch(a)

{

case0:

printf("***正在退出**谢谢使用本系统,再见");break;

case1:

addition();

gotoC;

/*录入功能*/

case2:

calculate();

gotoC;/*浏览功能*/

case3:

search();

gotoC;/*查询功能*/}}

第三章软件使用说明

3.1录入系统

图3-1输入30名学生的学号、班级、姓名、上机起始时间

3.2计算功能

图3-2计算每个下机学生的上机费用

3.3查询功能

图3-3按条件(班级、学号、姓名)显示学生的上机时间

3.4机器使用情况

图3-4机器使用情况查询

第四章课程设计心得与体会

在这次课程设计中,我体会颇多,学到很多东西。

我加强了对C++的认识,复习了自己以前的知识,自己的逻辑思考能力也提高不少。

从而对MicrosoftVisualC++6.0又有了更深入的认识!

在这次课程设计中,我还懂得了程序开发的一些比较重要的步骤,比如需求分析、总体设计、程序模块设计(含功能需求、程序代码设计与分析、运行结果)、系统使用说明等。

总之,通过这次课程设计,我收获颇丰,相信会为自己以后的学习和工作带来很大的好处。

最重要的还是激发了我编程的兴趣和热情,让我从一个只懂理论变成了能做一些小型程序,让我对编程更加热爱了。

整体地评价这次课程设计,我认为收获很大,正如上面所说的那样,通过课程设计,既复习了以前的旧知识,又学到了一些新的知识;设计增强了我们用所学知识去解决具体问题的能力,进一步培养了我们独立思考问题和解决问题的能力。

特别是学会了在VisualC++集成开发环境中如何调试程序的方法。

当然,老师的悉心指导和同学的帮助也是不可忽视的,在此感谢本次课程设计中辅导老师对我的关心和帮助,诚心诚意感谢她对我的鼓励与教导,是她在我迷茫的时候给了我些许提示,激发了我编程的灵感;还有,我在此也十分感谢本次课程设计中同学们对我的帮助,尽管本次不是团队合作,但是他们也给了我不少的提示和帮助,是他们让我有信心坚持做下来,在此感谢他们!

附录一:

程序清单

#include

#include

#include

#include

#defineN20

#defineM100

structstudent

{charid[N];

chartheclass[N];

charname[N];

charontime[N];

}

student[M];

intn;

voidaddition()

{inti;

printf("\n请输入录入学生信息的总数:

");

scanf("%d",&n);

for(i=1;i<=n;i++)

{printf("\n\t请输入第%d个学生学号(20s):

",i);

scanf("%s",student[i-1].id);

printf("\n\t请输入第%d个学生班级(20s):

",i);

scanf("%s",student[i-1].theclass);

printf("\n\t请输入第%d个学生姓名(20s):

",i);

scanf("%s",student[i-1].name);

printf("\n\t请输入第%d个学生上机时间(20s)(例:

02):

",i);

scanf("%s",student[i-1].ontime);

printf("\n\t提示:

您已成功录入第%d条信息\n",i);

}

}

(上机费用=上机时间*1.0/h,不足一小时按一小时计算)

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];

elsehours=(times[11]-48)*10+times[12]-(student[i-1].ontime[0]-48)*10-student[i-1].ontime[1]+1;

printf("%d\n",hours);

}

}

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];

elsehours=(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.根据姓名查询;4.根据上机时间:

");

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].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("****提示:

该生不存在");

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].id,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].id,student[i].theclass,student[i].name,student[i].ontime);

}

}

if(!

count)printf("****提示:

该生不存在");

gotoA;

case4:

count=PF_FLOATING_POINT_PRECISION_ERRATA;

printf("\n**请输入学生的上机时间:

");

scanf("%s",find);

for(i=0;i

{if(strcmp(student[i].ontime,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("****提示:

该生不存在");

gotoA;

default:

printf("*****提示:

输入错误");

}

A:

printf("\n\t**1.继续\n\t**0.返回主菜单");

printf("\n\t请输入您的选择:

");

scanf("%d",&c);

}

while(c);

}

voidmenu()

{

printf("\n\t*******************欢迎进入机房收费管理系统!

*******************\n");

printf("\t*1.录入功能2.计算功能*\n");

printf("\t*3.查询功能0.-*EXIT*-*\n");printf("\t***************************************************************\n");

printf("\n\t请输入您的选择:

");

}

voidmain()

{system("color5f");

inta;

C:

menu();

scanf

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1