机房收费管理系统

目录

 

第1部分  实训题目与要求

1. 问题提出

2. 功能要求

3. 任务分工

第2部分  设计实训题目功能

1. 总体设计

2. 算法设计

(一)主函数模块

(二)建立新档案模块create();

(三)新增档案模块add();

(四)注销旧档案模块cancel();

(五)上机模块up();

(六)计算余额模块Suan_Qian(int dif,int k);

(七)续钱模块top_up();

(八)创新功能模块innovate();

3. 数据结构

4. 程序代码设计

(一)主函数

(二)建立新档案函数

(三)添加新档案函数

(四)删除旧档案

(五)上机函数

(六)计算余额函数

(七)续钱函数

(八)创新功能函数

5. 测试与调试

(1)主菜单出现如图所示

(2)输入错误编号出现如图所示

表1  主函数测试用例

(3)调用建立新档案函数,如图所示输入学号、姓名、密码、班级、金额

表2  建立新档案测试用例

(4)调用添加新档案函数

表3  新增档案测试用例

(5)调用删除函数

表4  注销旧档案测试用例

(6)调用上机函数

表5  上机测试用例

(7)下机

表6  下机测试用例

(8)调用续钱函数

表7  充值测试用例

(9)调用创新功能函数

表8  创新功能测试用例

第3部分  实训总结

1. 个人总结

1、加深对课堂讲授内容的理解

2、熟悉程序开发环境、学习计算机系统的操作方法

3、熟练上机调试程序

2. 结束语

附录A  程序清单

附录B  用户使用说明书

参考文献

 


第1部分  实训题目与要求

1. 问题提出

为了便于管理,需要对机房的上机收费进行计算机管理,所需要的功能为:建立学生的上机档案、对于毕业的学生能够删除其档案、根据上机和下机时间计算出本次所需费用、能够续钱。

2. 功能要求

循环显示如图6所示的主菜单。

在主菜单中选择1:建立名为duli16.3.dat的文件,并在其中添加若干学生的上机档案,信息包括学号、姓名、金额,要求学号是唯一的。

在主菜单中选择2:添加新档案,这时要求新学号和已有的学号不能重号。

在主菜单中选择3:注销旧档案。

在主菜单中选择4:要求用户输入学号,然后系统显示该学生档案,并自动开始计时(计时方法采用下述方法),如果原来余额不足6元,则不能上机,而且显示“余额不够,请续钱!”。

计时方法:分别用系统提供的库函数time记录开始和结束的时间,比如start=time(NULL)和end=time(NULL),其中start和end是系统已声明的名为time_t的结构体类型,在程序中使用变量start和end前必须用“time_t start, end;”定义。difftime(end, start)函数返回以秒为单位的两个时间差,其返回类型是double型。可用dif=(int)difftime(end, start)使得整形变量dif得到时间差,再用dif/3600、dif%3600/60、dif%60分别计算时、分、秒。使用time_t类型或调用time和difftime函数时需要加命令行“#include <time.h>”,调用time函数时还需要加命令行“#include <stdio.h>”。

在主菜单中选择5:停止对该学生计时,同时根据用户输入的学号,计算该学生上机时间,并按1小时2元收费(30分钟以内按半小时处理,60分钟以内按1小时处理),然后显示上机前后的金额。

在主菜单中选择6:要求用户输入学号和续钱额,续钱完成后分别显示续钱前后的金额。

在主菜单中选择7:此项功能学生自由发挥,根据本组爱好增加与本题目相关的新功能。

在主菜单中选择0:显示结束信息(如“感谢使用本软件!已正常退出,按任意键结束。”),按任意键后,退出本功能。

 

……………………………

.请输入选项编号(0 ~7):.

……………………………

. 1——建立上机档案   .

. 2——添加新档案     .

. 3——注销旧档案     .

. 4——开始上机       .

. 5——离开机房       .

. 6——续钱           .

. 7——创新功能(可选) .

. 0——退出系统       .

……………………………

图6 机房收费管理主菜单

 

3. 任务分工

负责编写:

建立上机档案函数create();

添加新档案函数add();

注销旧档案函数cancel();

上机函数up();

结算金额函数Suan_Qian(int dif,int k);

续钱函数top_up();

创新功能函数innovate();

创新功能:查询余额函数inquiry();

创新功能:修改密码函数mod();

创新功能:显示所有学生函数XianShi();

主函数Main();

 

 

第2部分  设计实训题目功能

1. 总体设计

403f4c4eab2d4790b23c2535f1aae5ec.png

建立上机档案create(); 添加新档案add(); 注销旧档案cancel();

开始上机up(); 计算余额Suan_Qian(int dif,int k); 续钱top_up();

创新功能innovate();

查询余额inquiry(); 修改密码mod(); 显示所有学生XianShi();

2. 算法设计

(一)主函数模块

7c71800369a54bf69e2de847a7fff902.png

 

(二)建立新档案模块create();

cb1ec5e133f74e77b9bcaa29bb16f76f.png

(三)新增档案模块add();

ffb99292cb35447380322aa89372a36f.png

(四)注销旧档案模块cancel();

4add1ae2d9774165bbcc48244ae70c64.png

 

 

 

 

(五)上机模块up();

bd7b481e2bbc4fb68759d87b5d2de3ad.png

 

 

 

 

 

(六)计算余额模块Suan_Qian(int dif,int k);

d9c21a2a874f4a0994fea39a4abe9e10.png

 

 

 

 

 

(七)续钱模块top_up();

85b9b36bb9da46c49dbf526b761498a5.png

 

(八)创新功能模块innovate();

cf179651a8d343009b70793b3c81c209.png

 

 

 

 

 

 

 

3. 数据结构

struct  student

{

   char num[15]; /*学号*/

   char name[20]; /*姓名*/

   char mima[15];/*密码*/

   char clas[20]; /*班级*/

   int money;//余额

} stu[50],st[50]; //先定义50名,后续可修改数据

4. 程序代码设计

(一)主函数

用于主要代码组成

int main(){

char chose='\0',yes_no='\0';

int flag=0;

int y=1;

int dif=0,k;

 

time_t start_t,end_t;

    

 

do{

 

menu();

 

printf("请选择输入选项编号\n");

 

scanf("%c",&chose);

 

getchar();

 

switch(chose){

case '1':

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值