C语言课程设计报告---职工工资管理系统.doc_第1页
C语言课程设计报告---职工工资管理系统.doc_第2页
C语言课程设计报告---职工工资管理系统.doc_第3页
C语言课程设计报告---职工工资管理系统.doc_第4页
C语言课程设计报告---职工工资管理系统.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

湖 南 涉 外 经 济 学 院 C 语 言 课 程 设 计 (报告书)题 目职工工资管理系统作 者肖梦星 陈名河学 院信息科学与工程学院专 业软件工程2012102班任课教师李 桥二一二 年 十二 月 二十七 日机房管理系统【设计目的】设计“机房管理系统”使其具有上机、下机、查询上机时间、机器使用情况显示等功能。1、 随时都可以来这里上下机,24小时为你服务。2、 上机时间还可以来查询你的上机时间。3、 还可查询本机房所有电脑的使用情况。【设计思路】根据要求,把学生的信息输入电脑,文本文件存入。还保存了记录做以查询,使用情况,另外还应提供键盘式选择菜单实现功能选择。【总体设计】机房管理系统系统上机下机查询上机时间机器使用情况显示【详细设计】1. 主函数主函数设计要求简洁,只提供部分提示语和函数的调用int main()/*主函数*/int n=0;for(k=0;k30;k+)/*全部机器标记为未使用*/comk.f=0;for(;)switch(main_menu()case 1:printf(ttt输入学生信息:n);n=input(stu,n);break;case 2:printf(ttt学生上机n);online(stu,n);printf(tt);system(pause);break;case 3:printf(ttt学生下机n);offline(stu,n);printf(tt);system(pause);break;case 4:printf(ttt上机时间查询n);search(stu,n);printf(tt);system(pause);break;case 5:printf(ttt机器使用情况显示nn);display();break;case 0:printf(nntt感谢使用机房收费管理系统,欢迎下次使用,再见!nn);printf(tt);system(pause);exit(0);return 0;2. 流程图 显示一系列功能选项输入n,判断n是否是05 ?根据n的值调用各功能模块函数结束开始n 图2. 主函数流程图3. 程序运行截图图3. 主界面截图说明:选择数字05,完成相应功能。 图4. 查询上级时间截图图5. 机器使用情况显示截图【附录】#include #include #include #include struct 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(tttt*机房收费管理系统*n);printf(ttt*1.输 入 学 生 信 息*n);printf(ttt*2.上 机*n);printf(ttt*3.下 机*n);printf(ttt*4.查 询 上 机 时 间*n);printf(ttt*5.机器使用 情况显示*n);printf(ttt*0.退 出 系 统*n);printf(ttt*n);printf(tttt请选择菜单(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:printf(ttt输入学生信息:n);n=input(stu,n);break;case 2:printf(ttt学生上机n);online(stu,n);printf(tt);system(pause);break;case 3:printf(ttt学生下机n);offline(stu,n);printf(tt);system(pause);break;case 4:printf(ttt上机时间查询n);search(stu,n);printf(tt);system(pause);break;case 5:printf(ttt机器使用情况显示nn);display();break;case 0:printf(nntt感谢使用机房收费管理系统,欢迎下次使用,再见!nn);printf(tt);system(pause);exit(0);return 0;【设计体会】通过为期一周的课程设计,我们对C语言这门课程有了更深一步的了解。它是计算机程序设计的重要理论技术基础,在我们信息与计算科学专业的学习中占据着十分重要的地位。同时也使我们知道,要学好这门课程,仅学习书本上的知识是不够的,还要有较强的实践能力。因为我们学习知识就是为了实践。而只有多实践,多编写程序,才能更好的理解与掌握书本上的东西。运用C语言中的算法思想作数据结构,结合C语言基本知识,编写一个机房管理系统。通过完成本课题,进一步熟悉C语言的基本知识,并掌握数据结构的一些基本算法思想,掌握C语言的文件操作(包括从磁盘读入和向磁盘写入内容),进一步熟悉指针的用法,数组的建立运用和函数的调用等。【参考文献】谭浩强.C程序设计(第三版).清华大学出版社。朱若愚.数据结构M.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论