




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言实践报告机房收费管理系统机房收费管理系统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(ttt1.输入学生信息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+);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(,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(,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(,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(t-n);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.num,comk.stut.banji,comk.stut.start.hour,comk.stut.start.minute,comk.stut.start.second);printf(t);system(pause);-/*使刚显示的内容在屏幕上停留一段时间,直到继续操作为止*/int main()-/*主函数*/int n=0;for(k=0;k30;k+)-/*全部机器标记为未使用*/comk.f=0;for(;)switch(main_menu()case 1:system(cls);printf(ttt输入学生信息:n);n=input(stu,n);break;case 2:system(cls);printf(ttt学生上机n);online(stu,n);printf(tt);system(pause);break;case 3:system(cls);printf(ttt学生下机n);offline(stu,n);printf(tt);system(pause);break;case 4:system(cls);printf(ttt上机时间查询n);search(stu,n);printf
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高效节能空调系统箱涵施工与安装工程合同
- 离婚协议财产分割及专利权转让合同
- 2025年新能源行业上市公司市值增长与产业政策环境研究报告
- 2025年影视剧制片人聘用合同范本
- 2025年新能源行业绿色制造工艺标准与碳排放交易市场报告
- 2025木材采购合同
- 高校创新创业教育课程体系与实践教学互动模式研究2025年报告
- 【2025案例】合同终止协议解除劳动合同经济补偿问题
- 2025债权收益权转让合同
- 2025碧沃丰河道处理销售合同
- 紧急采购申请单
- GA/T 1678-2019法庭科学鞋底磨损特征检验技术规范
- 《数字媒体专业认知实习》课程教学大纲
- 中西方婚礼文化差异毕业论文Word版
- 预备队员考核表
- 庆阳地区地下水供水水文地质条件评价
- 储能项目竣工报告
- 打印版唐能通
- 37°球面型管路连接件
- 择菜洗菜和切菜
- 主体沉降观测的大概内容主体沉降观测方案.doc
评论
0/150
提交评论