机房收费管理系统.docx

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

机房收费管理系统.docx

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

机房收费管理系统.docx

机房收费管理系统

一、题目:

设计一个机房收费管理系统

二、设计思路

1、总体设计

1)分析程序的功能:

设计一个机房收费系统,实现对学生上机收费的管理,从而方便学校机房的管理.

2)系统总体结构:

每一次运行的过程可以由这几部分完成:

输入:

输入学生的上机学号,班级、姓名上级起始时间;计算:

计算每个学生的上机费用;查询:

查找学生上机信息并显示(班级、学号、姓名);显示:

显示机器使用情况信息

总共四个步骤:

模块

函数名称

输入学生信息

Input

查询学生上机情况

Findstunum

计算机时费用

Calculate

显示机器使用情况

Computer

对于每一次运行,关注的数据有三个:

(1)学生的信息

(2)计算机时费用(3)学生上机情况;

对于统计信息需要三个:

(1)学生上机信息并显示(班级、学号、姓名)

(2)显示机器使用情况信息(3)上机学生的学号、班级、姓名、上机起始时间;

这几组数据内部联系很大,所以考虑把他们封装为结构体变量.

机器使用信息需要记录两个:

(1)机器使用的标记

(2)使用机器的学生。

根据问题的描述,可以按照程序要求的功能采用结构化的设计思想。

机房收费系统可利用菜单(界面制作switch语句)使用户选择各个功能模块,而后可根据不同的选项进入到不同的功能模块进行执行。

结束程序,选择y之外的任何字母或数字,如果想让程序循环执行,则选择y.

以上功能模块分别用函数来实现,然后由主函数main来调用。

表示信息

成员名称

表示信息

成员名称

hour

学号

num

minute

班级

class

second

姓名

name

机器使用标记

f

上机起始时间

start,finish

使用机器学生

Studentstus

上机标志

flag

2、各功能模块的设计:

说明各功能模块的实现方法

1)Input模块

该函数为输入学生信息:

学号,姓名,班级,上机起始时间,并对学生是否上机做标记(flag为1,f为1为上机),人数与上机数一致.

2)Findstunum模块

查询功能:

当输入的学号与学生信息中的学号相同时,则输出该生学号,班级,姓名和上下时间,若该生未下机,则下机时间显示0。

下机功能:

询问是否下机,用switch语句控制,若下机则要求输入下机时间,不下机则退出。

3)Calculate(计算)模块

该模块中,由于时、分、秒三个时间单位不统一,首先要统一单位,均用秒做单位(1h=3600s1min=60s),然后判断上机时间是否满一小时,不满一小时按一小时收费,超过一小时再进行计算.不足一小时按一小时收费,整小时则每小时1元收费.

代码参见Calculate(计算)函数.

4)calout(输出)模块

输出上机学生学号,班级,姓名,若下机显示消费金额,没下机显示“未下机”。

5)computer模块

首先计算机使用情况信息:

通过标记判断机器是否在使用,机器在使用则显示学生信息,机器未使用则显示学生已下机.通过标记判断机器是否在使用,机器在使用则显示学生信息,机器未使用则显示学生已下机。

2)查询功能:

采取输入的学号与学生信息中的学号是否对应相等来判断.

4、你所设计的程序最终完成的功能

1)说明你编制的程序能完成的功能

输入功能:

输入上机学生的学号,班级,姓名,上机起始时间.

计算功能:

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

查询功能:

查找学生上机信息并显示(班级、学号、姓名)

显示机器使用情况信息。

2)准备的测试数据及运行结果

三、程序清单

1)main函数

//主函数

voidmain()

{

while(y)

{

cout〈〈”选择功能”<

cout<〈"0输入现在时间"<

cout<〈”1输入学生信息"〈

cout<<”2按学号查找”〈〈endl;

cout<〈”3电脑使用情况”<

cout〈〈"4上机费用”〈

cout<〈"5结束程序"〈

cout〈<"请输入";

cin〉〉a;

switch(a)

case0:

time();break;

case1:

input();break;

case2:

findstunum();break;

case3:

computer();break;

case4:

calout();break;

case5:

y=0;break;

}

}

}

2)Input函数

voidinput()

{

while

(1)

{

 

cout〈〈"输入学生的学号班级姓名上机起始时间h—m—s"〈〈endl;

cin〉>stu[renshu].num〉>stu[renshu]。

banji〉>stu[renshu]。

name>>stu[renshu]。

start.hour

〉〉stu[renshu]。

start。

minute〉>stu[renshu]。

start。

second;

stu[renshu].flag=1;

comp[renshu]。

f=1;

strcpy(comp[renshu].stus。

num,stu[renshu]。

num);

comp[renshu]。

stus.banji=stu[renshu]。

banji;

strcpy(comp[renshu].stus。

name,stu[renshu].name);

cout〈<"1.继续输入0。

结束输入”〈

cin>>flag;

renshu++;

if(flag!

=1)

break;//跳出输入循环

}

}

3)Findstunum函数

voidfindstunum()

inta;

charxh[10];

cout〈〈”请输入要查找的学号:

”;

cin〉>xh;

for(inti=0;i

if(strcmp(stu[i].num,xh)==0)

{

cout〈<”显示学生的学号班级姓名上下时间”〈

cout<〈stu[i].num〈<’\t’<〈stu[i].banji〈〈'\t'<

name<<'\t’〈〈

stu[i].start.hour<

second<<”-—-”〈〈

stu[i]。

finish。

hour<

finish.minute<〈stu[i].finish。

second<〈endl;

cout〈〈"是否下机?

”〈〈endl;

cout<〈”1是2否”〈

cin〉〉a;

switch(a)

case1:

cout〈〈”输入下机时间h—m-s”<〈endl;

cin〉>stu[i].finish。

hour>〉stu[i]。

finish。

minute〉>stu[i].finish。

second;

stu[i]。

flag=2;

comp[i].f=2;

break;

case2:

break;

}

}

for(i=0;i〈renshu;i++)

if(strcmp(stu[i].num,xh)!

=0)

cout〈〈"=====不存在!

=====”〈〈endl;

doublecal(inti)

{

intc;

doublea,d;

c=(((stu[i].finish。

hour*3600+stu[i].finish.minute*60+stu[i].finish。

second)—

(stu[i].start。

hour*3600+stu[i].start.minute*60+stu[i]。

start。

second))/3600);

d=(((stu[i]。

finish.hour*3600+stu[i]。

finish。

minute*60+stu[i].finish.second)—

(stu[i].start.hour*3600+stu[i]。

start。

minute*60+stu[i].start。

second))*1.0000/3600);

if(c==0)

a=1。

0000;

if(c〉0)

{

if(d—c〉0)

a=(c+1)*1.00000;

if(d-c==0)

a=c*1。

00000;

returna;

4)Computer函数

voidcomputer()

{

cout〈〈”=====计算机的使用情况====="<

cout〈〈”计算机编号使用的学生的学号班级姓名"〈〈endl;

for(inti=0;i<30;i++)

{

if(comp[i].f==2)

cout〈〈i〈<'\t’<〈”学生已下机"〈

elseif(comp[i].f==1)

cout<〈i〈<’\t’〈〈comp[i]。

stus。

num〈〈’\t’<

stus.banji〈<’\t'〈

stus。

name〈〈endl;

else

cout<

5)Calculate函数

doublecal(inti)

{

intc;

doublea,d;

c=(((stu[i].finish.hour*3600+stu[i]。

finish。

minute*60+stu[i].finish.second)-

(stu[i]。

start.hour*3600+stu[i].start.minute*60+stu[i].start。

second))/3600);

d=(((stu[i].finish。

hour*3600+stu[i]。

finish。

minute*60+stu[i]。

finish。

second)—

(stu[i]。

start。

hour*3600+stu[i]。

start.minute*60+stu[i]。

start。

second))*1。

0000/3600);

if(c==0)

a=1。

0000;

if(c〉0)

if(d-c>0)

a=(c+1)*1.00000;

if(d—c==0)

a=c*1。

00000;

}

returna;

}

6)Calout函数

voidcalout()//计算机时费用

{

cout<<"显示学生的学号班级姓名消费金额"〈〈endl;

for(inti=0;i〈renshu;i++)

if(stu[i]。

flag==1)

cout<

if(stu[i].flag==2)

cout〈

num<〈’\t’<〈stu[i].banji<<'\t’〈

name<<'\t’〈

}

 

7)Time函数

voidtime()

inth,m,s;

cout<〈”时间格式h—m-s"<〈endl;

cin〉>h>〉m〉>s;

for(inti=0;i〈renshu;i++)

if(stu[i]。

finish.hour!

=0||stu[i]。

finish。

minute!

=0||stu[i].finish。

second!

=0)//如果有结束时间,将不对结束时间赋值

;

else//没有结束时间,赋当前时间值

{

stu[i]。

finish。

hour=h;

stu[i]。

finish.minute=m;

stu[i]。

finish。

second=s;

}

 

四、对该设计题目有何更完善的方案

1、对自己完成程序进行自我评价。

能独立思考程序并在他人协助下完成程序编写与调试,不能很好的运用所学的知识解决程序中所出现的问题。

通过对课程的设计,使我知道自身的不足,以及C++的深奥,相信自己会在假期中增强对C++的了解及应用。

2、对课题提出更完善的方案

加入创新元素就更好了,以后自己在这方面多努力。

五、收获及心得体

对输入的数据要进行合理性检验,例如数组中存储了30台计算机的信息,用户进行选择时,必须在这个范围内。

由于知识上的缺陷会导致常常出现同样的错误,应认真与人交流汲取知识,自我完善;新的知识可能导致程序的大量简化,思路更清楚结构,结构更简单,应不停的学习,并通过练习提高能力。

程序的编写真的很无聊,很难,在自己努力以及求助他人编完程序以后看着自己的劳动成果,心里是甜的!

日期:

2012年6月28日

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

当前位置:首页 > 求职职场 > 简历

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

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