C语言机房收费管理系统

上传人:鲁** 文档编号:513690234 上传时间:2023-08-26 格式:DOCX 页数:8 大小:86.43KB
返回 下载 相关 举报
C语言机房收费管理系统_第1页
第1页 / 共8页
C语言机房收费管理系统_第2页
第2页 / 共8页
C语言机房收费管理系统_第3页
第3页 / 共8页
C语言机房收费管理系统_第4页
第4页 / 共8页
C语言机房收费管理系统_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《C语言机房收费管理系统》由会员分享,可在线阅读,更多相关《C语言机房收费管理系统(8页珍藏版)》请在金锄头文库上搜索。

1、机房收费管理系统2011-5-221. 设计目的(1) 通过对机房收费管理程序的编写加深对C语言的掌握。加深掌握条件语句,循环语 句,函数调用,结构体等。(2) 通过对机房收费管理系统程序的编写,提高自己,对C语言有了更深一步的认识。2. 函数调用关系 main-menu 函数:输出机房管理系统菜单 input 函数:输入若干个学生的学号、班级和姓名 online 函数:学生上机,输入上机学生学号或姓名及时间 calculate 函数:计算上机费用并输出offline函数:学生下机,输入下机时间,调用calculate函数得到上机费用 search 函数:查找学生上机信息display 函数:

2、显示全部机器的使用信息main函数:函数调用以及结束程序3程序模块4程序代码#include#include#include#includestruct time/*时间*/int hour;int minute;int second;typedef struct/*学生信息*/char num20;/*学号*/int banji;/*班级*/int flag;/*用来标记学生是否上机*/*上机起止时间*/char name20;/*姓名*/struct time start,finish;Student;Student stu50;/*信息库*/struct computer/*机器信息*/

3、int f;/*用来标记机器是否使用*/Student stut;/*使用这台机器的学生*/com30;/*30台机器*/int k;int main_menu()/*主菜单*/char c; dosystem(cls);/*清屏*/printf(ttt* 机房收费管理系统 *n);printf(tttl.输入学生信息 n);printf(ttt2.上机n);printf(ttt3.下机n);printf(ttt4.查询上机时间 n);printf(ttt5.机器使用情况显示n);printf(ttt0 .退出系统 n);printf(ttt*n);printf(ttt 请选择菜单(0-5):

4、);c=getchar();while(c5);/*判断输入是否合法*/return(c-0);/*输入学生信息*/int input(Student stu,int n)int i=0;char sign=0; while(sign!=n&sign!=N)/*判断是否继续输入学生信息*/getchar();/*吃掉回车*/printf(tt 学号:);gets(stun+i.num);printf(tt 班级:);scanf(%d,&stun+i.banji);getchar();printf(tt 姓名:);gets(stun+i.name);printf(tt继续输入?是请按Y,否请按N

5、:);scanf(%c,&sign);stun+i.flag=0;/*初始化为未上机*/i+;return(n+i);void online(Student stu,int n)/*上机*/char num_t20,name_t20;int i,s;doprintf(tt使用姓名按1,使用学号按2:);scanf(%d,&s);while(s!=1&s!=2);getchar();if(s=1)printf(tt 请输入姓名:”);gets(name_t);for(i=0;in;i+)/*查找信息库中是否有该学生*/if(strcmp(stui.name,name_t)=0)break;els

6、eprintf(tt 请输入学号:”);gets(num_t);for(i=0;in;i+)if(strcmp(stui.num,num_t)=0)break;if(i=n)printf(tt信息库中暂无该生,请输入该生信息再上机! n); return;else if(stui.flag=1)printf(tt该生正在上机! n); return;elsefor(k=0;k30;k+) if(comk.f=0)comk.f=1;/*该台机器标记为使用*/printf(tt 请输入上机时间(当前时间):);scanf(%d:%d:%d,&stui.start.hour,&stui.start.

7、minute,&stui.start.second);stui.flag=1;/*该生标记为上机*/comk.stut=stui;/*记录使用该台机器的学生信息*/break;if(k=30)printf(tt机器全部使用中,请稍后再上机! n);void calculate(Student stu)/*上机时间及费用计算*/int t;struct time timet;if(stu.finish.secondstu.start.second)if(stu.finish.minute=0)stu.finish.hour-=1; stu.finish.minute=59;elsestu.fin

8、ish.minute-=1;timet.second=stu.finish.second+60-stu.start.second; elsetimet.second=stu.finish.second-stu.start.second;if(stu.finish.minutestu.start.minute) stu.finish.hour-=1; timet.minute=stu.finish.minute+60-stu.start.minute;elsetimet.minute=stu.finish.minute-stu.start.minute;timet.hour=stu.finish

9、.hour-stu.start.hour;if(timet.second=0&timet.minute=0) t=timet.hour;elset=timet.hour+1;/*不满一小时按一小时记*/printf(tt该生上机用时d小时,费用为d元n,t,t);/*下机*/void offline(Student stu,int n)char num_t20,name_t20;int i,s;doprintf(tt使用姓名按1,使用学号按2:); scanf(%d,&s);while(s!=1&s!=2);getchar();if(s=1)printf(tt 请输入姓名:”);gets(na

10、me_t);for(i=0;in;i+)if(strcmp(stui.name,name_t)=0) break;elseprintf(tt 请输入学号:”);gets(num_t);for(i=0;in;i+)if(strcmp(stui.num,num_t)=0)break;if(i=n)printf(tt没有这个学生! n);return;else if(stui.flag=0)printf(tt该生未上机或已下机! n);return;elseprintf(tt 请输入下机时间(当前时间):); scanf(%d:%d:%d,&stui.finish.hour,&stui.finish

11、.minute,&stui.finish.second);calculate(stui);/*计算并输出上机费用*/stui.flag=0;/*该生标记为未上机*/for(k=0;k3;k+)/*将刚下机学生使用的机器标记为未使用*/if(strcmp(comk.stut.num,stui.num)=0)comk.f=0;/*该台机器标记为未使用*/break;void search(Student stu,int n)/*上机时间查询*/char num_t20,name_t20;int i,s;doprintf(tt使用姓名按1,使用学号按2:);scanf(%d,&s);while(s!

12、=1&s!=2);getchar();if(s=1)printf(tt 请输入姓名:”);gets(name_t);for(i=0;in;i+)if(strcmp(stui.name,name_t)=0)break;elseprintf(tt 请输入学号:); gets(num_t);for(i=0;in;i+)if(strcmp(stui.num,num_t)=0)break;if(i=n)printf(tt 查无此生! n);return;else if(stui.flag=1)printf(tt 该生正在上机,上机起始时间为d:%d:%dn,stui.start.hour,stui.st

13、art.minute,stui.start.second);elseprintf(tt该生未上机或已下机! n);void display()/*全部机器使用情况显示*/printf(t机器号是否使用使用者学号班级上机时间n);-/*显示格式,表头=/printf(tn);for(k=0;k30;k+)if(comk.f=0)printf(t%02d否-:-:-n,k+1);elseprintf(t%02d是%-10s%-10s%2d%02d:%02d:%02dn,k+1,comk.stut.name,comk.stut.num,comk.stut.banji,comk.stut.start.hour, comk.stut.start

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号