C语言课程设计报告- 机房管理系统_第1页
C语言课程设计报告- 机房管理系统_第2页
C语言课程设计报告- 机房管理系统_第3页
C语言课程设计报告- 机房管理系统_第4页
C语言课程设计报告- 机房管理系统_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

..目录.设计内.设计要题目要求输入/输出要求.整体设思路.流程图层次模块图空机号查询—S.主函数功能菜说明.各模块要说明.心得体附录.源程序码.各模块行结果图.

专业专注

...一:设计容题机房管理系统设计机房管理系统,要求由菜单进行管理。上机前先检查是否有空机位有则将其显示出,无则提示无空位还有空位置时,运行进入,并记录下位置号以及序号,与上机时间。(3)可对上机者上机信息进行查询,修改与删除。设计相关模块,显示上机者的上机费用。显示所有上机者的上机信息二:设计求题要求:为各项操作功能设计一个菜单应用程序运行后,先显示这个菜单然后用户通过菜单项选择希望进行的操作项目要求以上功能分别用函数实现输/输出求应用程序运行后,先显示一个菜单,然后用户根据需要选择相应的操作项目。进入每个操作后,根据程序的提示输入相应的信息。要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。三:整体计路.

专业专注

...在设计该程序时,要将系统的不同功能分成各个模块。每个模块由一个函数定义,整个程序由函数调用来实现。每个模块是一个子函数,由一个主函数调用各个子函数。在定义子函数时根据不同的功能选择不同的语句,如需要使用循环时可以用“do……while来实现;需要使用选择时可以用switch”或“if”语句来实现等。设计以菜单方式工作的机房管理系统主要包括六个模块,分别是上机者信息输入模块,上机者信息查询模块上机者信息修改模块,上机者信息删除模块,上机者上机费用计算模块,所有上机者信息显示模块。每个模块由组员相应完成。另外考虑到机房的特殊要求,新增一个上课模式,此模式功能是将所有机子开启,统一赋上上机者相关信息避免管理员一个一个的给机子输入信息。本系统程序关键在于一个空机位的检索亦是本程序核心之所在。本程序是通过给StudentList[time]值为0或分别实现空机号的判断0代表无人上机,及为空机号,反之1表有人上机,及不为空机号本程序通过定义结构体,包括姓名[name],机号[号stu_num]上机时间[time]四个成员。具体如下;Structstudent_info{charname[10];intseat;Longstu_num;inttime;}.

专业专注

...四:流程层模图主单学生信息输入模

空机号查询模块

查询上机情况模

修改上机信息模

删除上机信息模

显示上机费用模

显示所有上机信

上课模式模块

退出系统块

息模块空号询NSi=0k=0StudentList[i].time==0YN输i

Y

NK=1

输“空位空机号检索是本程序的核心本程序的其它几个模块皆是通过先对空机号的判断然后进行下去的(及先对StudentList[time]的值进01判断)。例如“显示所有上机信息模块”,们小组通过一个for环语句,从机号—79号.

专业专注

...逐一判断,符合条件则将其输出。而判断的标准就是if(StudentList[i].time!=0)N图如下所示:for(i=0;i<80;i++)YN输上信不输其它模块类似,流程图省略。五:主数及功菜单说在主函数之前我们首先定义了一个结构体同时进行了相关函数的声其结构体包括机学上机时间[time]四个成员。在主函数中我们定义了一个变j通过一循环语句,j=80,分别给所有机子编号同时给所有机子的上机时间赋以初0,即:for(j=0;j<80;j++){StudentList[j].time=0;StudentList[j].seat=j;}从而为空机号的检索以及下面各个模块顺利的连接编译做下铺垫.

专业专注

...而功能菜单的实现,我们采用的switch选择语句并结合……while循环的方,过人为的输入来实现菜单的操作。美化菜,我们加上相应的头文件#include<stdlib.h>再加上相应的颜色函数:system("color5A,从而成功使系统界面背景颜色与字体分别变成紫色与绿色系菜界截六:各块简要明学信输模学生信息输入模块是本系统的第一个模块亦是本系统尤为关键的一个模块。下面的模块能够正常运行,皆离不开这一模块结合主函数,我们在输入上机者信息时我们通过对StudentList[i].time进01判断,对整个机房进行一个空机号的检索检查是否有空机号,有则执行输入功能,无则输出“机房已满”信息。当然,管理员亦能先执行第二个模块:空机号检索模块,先检索出空机再让上机者选择机号上机。空号询块详见上文流程图部分的介绍.

专业专注

...查修改、除、显示机息块这四个模块采用的设计思路基本一致皆通过对StudentList[i].time的值进01判断,达到功能的实现例如:查询上机信息模块。在此模块中,设计者通过一个if的判断语(即:if(StudentList[i].time!=0)),对管理员所输入机号进行一个是否为空机号的判断若检测到所输机号是空机号(即:StudentList[i].time=0)时,则不输出相关信息,反之,输出相关上机者信息。显上费模此模块采用的是时间乘上每单位时间的费用的计费方式来进行计费的在本系统中,我们规定每小时上机费用是2,通过调用在“学生信息输入模块”中所输入的上机时间(即:StudentList[i].time)乘上此费用,从而得到上机者上机费用。上模模此模块为本系统新增模块,是根据机房某些时候的特殊需要设计的,旨在能够方便管理员一次性输入数据。而为达到这一功能我们采用了一个循环语句,从0号机一直到号机统一赋上相同的上机时间,学号。For循环语句.

专业专注

...如下:for(i=0;i<80;i++){StudentList[i].time=n;StudentList[i].stu_num=0;strcpy(StudentList[i].name,"");}七:心体会C语言程序设计是本学期才开的课,虽然到现在已经告一落,不过现在回想,觉得经过大半个学期的学习,自己的确学到了不少东西,不过依然只是个入门者,经后还得靠自己继续学习,加强。这次C语言课程设计,在我们小组开始备时,大家几乎都是一头雾水尤其是我这个当组长的,更是不知该如何给小组成员分配任务,这也是我遇到的第一个难题。后来在学习函数并且与其它小组讨论之后,渐渐有了眉目。于是我决定按功能模块给小组成员分配任务我们这个小组基本上是一人负责一个模块,而我在负责“删除上机信息模块”的同时,也担负起主函数与连接各个模块的任务。在这个过程中我于是遇到了第二个困难这第二个困难就是如何利用结构体”。说句实话,在我们小组开始着手准备之时连结构体都弄不清楚,因为压根就还没学到此部分。但在自己查阅相关书籍以及与同学讨论再加上后来老师在结构体”一章中的讲解我们终于在最后用结构体完成了此次课程设计。此次的课程设计之所以能够顺利完成也离不开组员之间的团结协作比如在此次课程设计中,起初大家都不知道该如何将各个部分连接起来,也就是说.

专业专注

...该如何选取一个统一的判断标准。后来在经过组员的讨论并亲自实践调试之后,大家得到了一致的意见。从本系统源程序代码中可以大家可以发现,我们小组所编写的程序的核心就是空机号的判断及上文所提到的StudentList[j].time的判断。(Student[i].time==0示空机号,等于1表示非空极号,有人正在操作此机)。于是在接下来的模块编写时,我们小组成员都严格的统一遵照此规定完成了接下来的任务例如“显示所有上机信息模块”,我们小组就是通过一个环语句,通过逐一检查,遇到符合条件的则将其输出。而我们的判断标准就是Student[i].time的值为零则不输出不为零则将其输出。因为在这次C语言课程设计中,们小组可谓经历了一“自学大作战,因此我们也逐渐感受到了自学的妙处我想这必将会对我今后的学习产生一定的积极影。如在我们小组基本完成设计之后,们觉得主界面不够美观,是否可以改进一下?于是我们通过上网查阅了相关的资料,现我们其实可以给主界面以及字体加点背景颜色,这项工作也并不是很难,只需要调用库函数中的颜色函数。于是我们在主函数中加上System"color0A"),并加上相应的头文件#include<stdlib.h>于是我们就成功实现了这一功能,该程序主界面赋上了紫色,字体也变为了绿色。在课程设计,收获知,提高能力的同,我也学到了很多人生哲理,懂得怎样去制定计,怎么样去实现这个计划并掌握了在执行过程中如何去克服心理上的不良情绪,因在以后的生活和学习过程中,我一定会把课程设计的精神带到生活中,不畏艰难,勇往直前!.

专业专注

...附录一:源序代码#include<stdio.h>#include<string.h>#include<stdlib.h>#defineMaxSizestructstudent_info{charname[10];intseat;longstu_num;inttime;}StudentList[MaxSize];voidInsert();voidEmpty();voidSearch();voidUpdate();

姓名机号学号上机时间.

专业专注

...voidDelete();voidDispallmoney();voidShow();voidClass();intmain(){inti,j;system("color5A");字体和背景颜色for(j=0;j<80;j++){StudentList[j].time=0;//所有机子上机时间赋值为0,代表空机StudentList[j].seat=j;给所有机子编号}printf("\t\t\t*****************************\n\n");//显示一个简易菜单printf("\t\t\t

欢迎使用机房管理系统\n\n");printf("\t\t\t*****************************\n\n");do{printf("\n");printf("\t\t\t1------入学生信息(Insert)\n");printf("\t\t\t2------询空机位(Empty)\n");printf("\t\t\t3------询上机情况(Search)\n");.

专业专注

...printf("\t\t\t4------改上机信息(Update)\n");printf("\t\t\t5------除上机信息(Delete)\n");printf("\t\t\t6------示学生上机费用(Dispallmoney)\n");printf("\t\t\t7------示所有上机信息(Show)\n");printf("\t\t\t8------课模式(Class)\n");printf("\t\t\t9------出(Exit)\n");scanf("%d",&i);接受用户的选择switch(i){case1:Insert();调用学生信息输入函数break;case2:Empty();调用空机号检索函数break;case3:Search();调用上机信息查询函数break;case4:Update();调用上机信息修改函数break;case5:Delete();break;case6:Dispallmoney();调用计费函数break;case7:Show();调用上机信息全显示函数break;.

专业专注

...case8:Class();调用机房上课模式函数break;case9:break;default:printf("错误选择!请重选");break;}}while(i!=9);return}voidInsert(){inti,k=0;for(i=0;i<80;i++){if(StudentList[i].time==0)k=1;}if(k==0){printf("机房已满!");return;}printf("请输入机号:");scanf("%d",&i);专业专注.

.

检测机房是否有空机位..if(i>=80){printf("请输入小于80的整数");return;}if(StudentList[i].time!=0){printf("已经有人正在操作此机");return;}printf("请输入上机者姓名:");scanf("%s",StudentList[i].name);printf("请输入上机者学号:");scanf("%ld",&StudentList[i].stu_num);printf("请输入上机时间:");scanf("%d",&StudentList[i].time);}voidEmpty(){inti,k=0;printf("空机号为:\n");for(i=0;i<80;i++){if(StudentList[i].time==0){printf("%d\t",i);k=1;专业专注.

.

检测空机号并将其输出..}}if(k==0){printf("无空机位!");return;}}voidSearch(){inti;printf("请输入要查询的机号:");scanf("%d",&i);if(StudentList[i].time!=0)//判断标准,检索到则输出{printf("姓名:%s\t",StudentList[i].name);printf("学号:%ld\t",StudentList[i].stu_num);printf("上机时间:%d\t",StudentList[i].time);}elseprintf("没有查询到!");}.

专业专注

...voidUpdate(){inti;printf("请输入要修改数据的机号:");scanf("%d",&i);if(StudentList[i].time!=0)判断标准,检索到则输出{printf("请输入姓名:");scanf("%s",StudentList[i].name);printf("请输入学号:");scanf("%ld",&StudentList[i].stu_num);printf("请输入上机时间:");scanf("%d",&StudentList[i].time);}elseprintf("没有查询到可以修改的数据!");}voidDelete(){inti;printf("请输入要删除信息的机号:");.

专业专注

...scanf("%d",&i);if(StudentList[i].time==0)printf("无需修改!");StudentList[i].time=0;strcpy(StudentList[i].name,"");}voidDispallmoney(){inti,money;printf("请输入结账机号:");scanf("%d",&i);money=2*StudentList[i].time;//费采用公式:时间每次的费用简单计算printf("您的上机费用为:%d",mone

温馨提示

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

评论

0/150

提交评论