资源预览内容
第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
亲,该文档总共8页全部预览完了,如果喜欢就下载吧!
资源描述
机房收费管理系统2011-5-221. 设计目的(1) 通过对机房收费管理程序的编写加深对C语言的掌握。加深掌握条件语句,循环语 句,函数调用,结构体等。(2) 通过对机房收费管理系统程序的编写,提高自己,对C语言有了更深一步的认识。2. 函数调用关系 main-menu 函数:输出机房管理系统菜单 input 函数:输入若干个学生的学号、班级和姓名 online 函数:学生上机,输入上机学生学号或姓名及时间 calculate 函数:计算上机费用并输出offline函数:学生下机,输入下机时间,调用calculate函数得到上机费用 search 函数:查找学生上机信息display 函数:显示全部机器的使用信息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/*机器信息*/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):);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:);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;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该生正在上机! 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.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.finish.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.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(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=0)printf(tt该生未上机或已下机! n);return;elseprintf(tt 请输入下机时间(当前时间):); scanf(%d:%d:%d,&stui.finish.hour,&stui.finish.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!=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.start.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
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号