课程设计机房收费管理系统.docx

上传人:b****7 文档编号:23922695 上传时间:2023-05-22 格式:DOCX 页数:20 大小:96.73KB
下载 相关 举报
课程设计机房收费管理系统.docx_第1页
第1页 / 共20页
课程设计机房收费管理系统.docx_第2页
第2页 / 共20页
课程设计机房收费管理系统.docx_第3页
第3页 / 共20页
课程设计机房收费管理系统.docx_第4页
第4页 / 共20页
课程设计机房收费管理系统.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

课程设计机房收费管理系统.docx

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

课程设计机房收费管理系统.docx

课程设计机房收费管理系统

机房收费管理系统

第一章课程设计目的和要求

1.1课程设计的目的

进一步巩固《C++程序设计》所学的知识,特别加强数组,指针,结构体,文件数据类型的应用,熟悉面向过程的结构化和面向对象可视化程序设计方法,培养结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解,锻炼程序设计的能力,以及用C/C++语言解决实际问题的能力,为以后后续课程的学习打好基础。

此课程设计着眼于知识的运用,把平常学的知识运用到课程实践中来,本身就是考察我们知识运用能力。

要求熟悉运用一些编程软件(如:

MicrosoftVisualC++6。

0),对我们所学的理论知识进一步的深化.

1.2课程设计实现的要求

在程序设计中,既可以用传统的结构化程序设计方法,也可以用先进的面向对象程序设计方法.机房收费管理系统主要应用在机房,将每位上网同学的学号、班级、姓名、上机起始时进行录入,对每位同学的上网费用进行计算并按班级、学号、姓名进行查询。

第二章课程设计任务内容

用C/C++语言实现一个机房收费管理系统,该系统主要应用在机房管理上,通过这个系统可以录入学生信息的总数,学生信息包括学生的学号、班级、姓名,还有学生上机的起始时间。

在本程序中要有学生信息录入功能,上机费用计算功能,按条件查询功能,信息的录入是要录入学生的学号、班级、姓名、上机时间,上机费用按每小时1元计算,不足一小时也按一小时计算,上机费用=上机的时间*1.0/h,上机的时间为从上机时起到下机时所在电脑的当时时间为准.录入完成后可以按学生的学号、班级、姓名来查询学生的上机情况。

第三章详细设计说明

3。

1模块

3。

1。

1模块描述

定义一个结构体,在其中声明结构变量,然后定义字符串,来存放要用到的变量.然后定义此程序的其他功能模块的原型。

主函数调用各个功能子函数,定义各个功能子函数,通过addition做一个学生信息录入的函数,实现学生学号、班级、姓名以及上机时间的录入,通过calculate做一个计算学生上机费用的函数,实现上机费用的计算,通过search创建一个查询函数,实现对上机学生情况的查询.在程序中需要输入的内容包括:

(1)学生信息的录入

实现过程:

根据提示选择“1”进入学生信息录入界面,按界面文字提示输入要录入信息的学生数,,按步骤输入学生的信息,以“Enter”键结束,系统自动保存所输入的信息.

(2)上机费用的计算

实现过程:

根据提示选择“2”进入计算界面,以“Enter”键结束,由系统自动计算出所有学生的上机费用。

(3)学生信息查询

实现过程:

根据提示选择“3"进入信息的查询界面,按自己的需要通过学生的学号、班级、姓名来查询学生的信息,系统自动调出所查询学生的信息,以“Enter”键结束,此时所有的基本信息都被要求重新输入。

3。

1。

2功能模块图

此系统的函数功能模块图如图3—1所示。

机房收费管理系统

图3—1函数功能模块图

3.2性能

该模块性能要求

(1)灵活性要求

输出的数据能准确的按照操作代码输出。

(2)时间特性要求

输入的各项操作代码能及时反应其运行结果.

3。

3函数说明

3。

3.1学生信息录入函数

(1)原型:

voidaddition()

(2)功能:

该函数用来录入学生信息,包括要录入学生信息的总数,录入学生的学号、班级、姓名以及上机时间.

(3)流程图:

如图3-2所示。

3-2学生信息录入函数的流程图

(4)对应代码

voidaddition()

inti;

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

");

scanf("%d",&n);

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

printf(”\n\t请输入第%d个学生学号:

",i);

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

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

”,i);

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

printf(”\n\t请输入第%d个学生姓名:

”,i);

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

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

00):

”,i);

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

printf("\n\t提示:

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

}

}

3.3.2所有学生上机费用计算函数

(1)原型:

voidcalculate()

(2)功能:

该函数用来计算学生上机的费用,

(3)流程图:

如图3—3所示。

 

图3—3成绩查询函数的程序流程图

(4)对应代码

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

else

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

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

}

3。

3.3学生信息查询函数

(1)原型:

voidsearch()

(2)功能:

该函数用来按照条件显示学生上机时间。

(3)流程图:

如图3-4所示。

 

图3-4成绩修改函数的程序流程图

(4)对应代码

voidsearch()

inti,b,c,count;

do

charfind[20];

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

1。

根据学号查询;2.根据班级查询;3。

根据姓名查询:

”);

scanf(”%d",&b);

switch(b)

case1:

count=PF_FLOATING_POINT_PRECISION_ERRATA;

printf(”\n请输入学生的学号:

");

scanf(”%s”,find);

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

{

if(strcmp(student[i].num,find)==0)

count++;

if(count==PF_FLOATING_POINT_EMULATED)

printf(”学生学号\t学生班级\t学生姓名\t上机时间\n");

printf("%8s%15s%15s%17s%",student[i]。

num,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]。

num,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〈n;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].num,student[i]。

theclass,

student[i]。

name,student[i].ontime);

}

if(!

count)

printf("提示:

该生不存在”);

gotoA;

default:

printf("提示:

输入错误");

}

A:

printf(”\n\t1。

继续\n\t0。

返回主菜单");

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

");

scanf("%d",&c);

}while(c);

}

3。

4系统流程图

系统流程图如图3—5所示。

 

图3—5系统程序流程图

第四章软件使用说明

4.1软件使用说明及出现的问题

该程序可以实现对所有上机同学信息的录入,某个同学上机情况的查询。

安装VisualC++6。

0中文版后,在工具栏“文件"中单击“新建”选项,单击“文件”选项卡,选择“C++Sourcefile”。

开始输入程序,程序输入完成,单击工具栏中“组建"选项,选择“编译[机房收费管理系统.cpp]”待程序无误后,开始构建并执行程序。

if(!

count)

printf("提示:

该生不存在");

gotoA;

这个if语句判断输入的操作编号是否在目录中,如果超出范围重新输入;

该程序在输入时,必须是按照要求的字符串输入,否则程序无法运行。

4。

2运行结果

4.2。

1初始运行界面

最初的运行界面,要求输入学生信息的总数(如:

输入30),然后系统将列出操作目录.如图4-1所示。

图4—1初始运行界面

4.2。

2查询界面

进入初始界面后,输入项目编号“1”,输入学生信息的总数(例如:

输入1).输入这个学生的相关信息,输入相关编号“3”进行查询。

如图4—2所示

图4-2查询界面

4.2.3计算界面

计算出上机费用,具体的数据如图4-3所示

图4—3计算界面

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

课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程。

随着科学技术发展的日新月异,当今计算机应用在生活中可以说是无处不在。

因此,作为二十一世纪的大学来说,掌握程序开发技术是十分重要的,而C/C++语言又是最常见,功能最强大的高级语言,做好C/C++语言课程设计是十分必要的。

回顾起此次课程设计,我感慨颇多.的确,从拿到题目到完成整个系统的编程,从理论到实践,在整整三周的日子里,我学会了很多东西,在巩固了以前所学过的知识的同时,我还学到了很多书本上所没有的东西。

此次课程设计我做的是一个机房收费管理系统,该系统主要应用在机房管理上,内容包括上机学生信息的录入,某个学生上机显示的查询,某个学生上机费用的计算。

虽然是很简单的一个小系统,但对我们初学者来说却是一个很大的困难,而在各种各样的问题下,我通过自己的努力,理论结合实践,最终完成了整个编程.

在这次课程设计中,我深刻的了解到:

第一,C/C++语言是程序设计的重要工具。

如果想有效的进行程序设计,正确地应用程序设计语言表达算法,必须准确的运用程序设计语言,而C/C++语言是最常见的,也是功能最强大的语言。

在做好程序设计的前提下,必须掌握C/C++语言的基本语言要素和其控制结构等语法知识,且灵活运用。

第二,进行程序设计必须有清晰的思路与方法,要合理的分配勾画系统的功能模块图、构建各个函数的流程图、编写程序以及上机实践的时间。

这次的课程设通过课堂教学、与自我实践的紧密联系,使得我对课程设计有了较为深的了解与认识,更好的完成了这次学习任务.第三,做好课程设计,要有顽强的意志与坚定的信心,永不言弃。

要多看、多问、多想,遇到问题要想办法解决,否则事倍功半。

在这期间,我们经历了很多,也收获了很多。

经过这次课程设计,我学会了如何运用所学知识去解决实际问题,懂得了如何去与人合作!

附录一:

参考文献

[1]谭浩强,C++程序设计,北京清华大学出版社

[2]谭浩强,C程序设计教程(第三版),北京清华大学出版社

附录二:

程序清单

#include

h〉

#include〈stdio.h>

#include〈string。

h〉

#include

structstudent

{

charnum[20];

chartheclass[20];

charname[20];

charontime[20];

}student[30];

intn;

voidaddition()

{

inti;

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

”);

scanf(”%d”,&n);

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

{

printf(”\n\t请输入第%d个学生学号:

",i);

scanf("%s”,student[i—1]。

num);

printf(”\n\t请输入第%d个学生班级:

",i);

scanf("%s",student[i-1]。

theclass);

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

”,i);

scanf("%s”,student[i—1]。

name);

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

00):

",i);

scanf(”%s”,student[i—1]。

ontime);

printf(”\n\t提示:

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

}

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

else

hours=(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.根据姓名查询:

”);

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

num,find)==0)

{

count++;

if(count==PF_FLOATING_POINT_EMULATED)

printf(”学生学号\t学生班级\t学生姓名\t上机时间\n”);

printf(”%8s%15s%15s%17s%”,student[i]。

num,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].num,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].num,student[i].theclass,

student[i].name,student[i].ontime);

if(!

count)

printf(”提示:

该生不存在”);

gotoA;

default:

printf(”提示:

输入错误");

}

A:

printf(”\n\t1.继续\n\t0.返回主菜单");

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

");

scanf(”%d”,&c);

}while(c);

voidmenu()

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

\n");

printf(”\t1.录入功能2。

计算功能\n”);

printf("\t3.查询功能0。

返回\n");

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

”);

}

voidmain()

inta;

C:

menu();

scanf(”%d”,&a);

switch(a)

{

case0:

printf(”==正在退出==下机成功,再见!

”);break;

case1:

addition();gotoC;

case2:

calculate();gotoC;

case3:

search();gotoC;

}

}

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

当前位置:首页 > 经管营销 > 金融投资

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

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