C语言课程设计机房管理系统实验报告(共9页).doc
精选优质文档-倾情为你奉上目录1.概述1.1研究的背景与意义1.2设计的任务和需要的知识点1.3具体完成的设计内容2.需求分析2.1功能要求2.2操作方法3.总体设计3.1模块划分4.详细设计4.1主控模块main函数4.2其它函数5.程序的调用与测试(错误分析)6.结论7.结束语8.程序清单9.程序分析10.参考文献1.概述本课程设计以软件工程方法为指导,采用了结构化,模块化的设计方法。以C语言技术为基础,使用win TC为主要开发工具,对机房管理系统进行了需求分析,总体设计,详细设计,最终完成系统的实现与测试。1.1研究的背景与意义 随着社会的发展,网吧越来越多,从而对网吧则需要一个自主的管理系统,使人们跟轻松的生活。 通过开发机房管理系统,可初步了解使用软件工程的方法,技术和工具开发软件的过程,进一步掌握结构化,模块化的程序设计方法和步骤,为后续课程的学习和将来实际软件开发打下坚实的基础。1.2设计的任务和需要的知识点 1.课程设计主要完成的任务通过编写机房管理系统程序掌握结构化,模块化程序设计的思路,培养解决实际问题的能力。设计好数组元素与电脑的对应关系通过菜单的说明能实现各功能 2.需要掌握和运用的知识点 数组的应用 全局变量的使用 结构体的应用 随机函数的使用 结构化,模块化的设计方法1.3具体完成的设计内容 设计主控模块(main函数,47行),实现对各组员函数的调用。2.需求分析2.1功能要求 设计机房管理系统要求由菜单进行管理 1.有学生上机时,首先检查是否有空位置 2.还有空位置时,运行进入,并记录相关信息 3.学生下机时,根据其上机时间进行收费2.2操作方法 本系统使用键盘操作 1.运行程序进入系统后,界面自动显示菜单 2.功能实现 通过提示,用户可进入下一层模块及各种操作3.总体设计 确定机房管理系统体系结构,给出总体模块结构图,确定程序的主要函数及之间的调用关系。3.1模块划分主控函数显示机房上机情况显示学生上机费用退出登记上机显示机房所有上机信息4.详细设计 根据总体设计的模块功能和结构,完成所承担的程序模块的算法设计,给出每个模块的详细算法,分别用N-S流程图和文字说明来描述4.1主控模块main函数4.2其它函数 由各组员完成5.程序的调用与测试(错误分析) 开始将各函数组合后,无法记录电脑被占用,于是在各成员的讨论下,在全局变量结构中定义了一个整型变量a标记电脑是否被占用 调试成功后,程序无法清屏,于是界面显得比较繁琐,加入了clrscr函数后改进了这一功能6.结论 通过一周的课程设计,在开发小组的共同努力下,终于完成了机房管理系统程序的开发任务,该程序实现了用键盘进行各种操作,完成了课程设计的要求和目的,该程序具有界面友好,操作方便,控制准确等特点7.结束语要写出好的程序,需要我们有扎实的基础,这样遇到一些基本算法的时候就会游刃有余了,在编程时我们要有丰富的想象力,不要拘泥于固定的思维方法,遇到问题的时候要多想几种解决的方案。丰富的想象力是建立在丰富知识上的,所以我们通过多的途径来帮助自己建立较丰富的知识结构8.程序清单#include<stdio.h>#include<string.h>#include<stdlib.h>#define MaxSize 50struct message char name20; long number; int time; int a;studentMaxSize;main() char c; int i; void input(); void disp(); void dispall(); void dispmoney(); do clrscr(); for(i=0;i<80;i+) printf("*"); for(i=0;i<40;i+) printf(" *"); printf("n"); printf(" * * * Menu * * *n"); printf("n"); printf(" * 1: Inputn"); printf("n"); printf(" * 2: Disp n"); printf("n"); printf(" * 3: Dispalln"); printf("n"); printf(" * 4: Dispmoneyn"); printf("n"); printf(" * 5: Exitn"); printf("n"); printf(" Please Choose Number 1 2 3 4 5n"); printf("n"); for(i=0;i<40;i+) printf(" *"); for(i=0;i<80;i+) printf("*"); do c=getchar(); clrscr(); while(c!='1'&&c!='2'&&c!='3'&&c!='4'&&c!='5'); getchar(); switch(c) case'1':input();break; case'2':disp();break; case'3':dispall();break; case'4':dispmoney(); break; case'5':exit(0); getchar(); while(1); getchar(); void input() int i,n=0; printf("n"); printf(" * * The computer room informatins * *n"); printf("n"); for(i=1;i<=MaxSize;i+) if(studenti.a=0) n+; printf(" * There are %d can be usen",n); printf(" * they are:n"); printf("n"); for(i=1;i<=9;i+) if(studenti.a=0) printf("0%dt",i); else printf("t"); for(i=10;i<=MaxSize;i+) if(studenti.a=0) printf("%dt",i); else printf("t"); printf("n Press Enter return menu!"); return 0;void disp() int i; printf("n"); printf(" * * Enter * * n"); printf("n"); printf("n * Input computer number: "); scanf("%d",&i); if(studenti.a=1) printf("n"); printf(" the computer is on using please choice other number: "); scanf("%d",&i); if(i=0) for(i=1;i<=9;i+) if(studenti.a=0) printf("0%dt",i); else printf("t"); for(i=10;i<=MaxSize;i+) if(studenti.a=0) printf("%dt",i); else printf("t"); printf("n"); printf(" please input number again: "); scanf("%d",&i); if(i>MaxSize) printf("n"); printf(" the number is wrong please input 01-50 number: "); scanf("%d",&i); if(i<0) printf("n"); printf(" the number is wrong please input 01-50 number: "); scanf("%d",&i); studenti.a=1; if(i>MaxSize) printf("n"); printf(" the number is wrong please input 01-50 number: "); scanf("%d",&i); if(i<0) printf("n"); printf(" the number is wrong please input 01-50 number: "); scanf("%d",&i); studenti.a=1; printf("n"); printf(" * please input name: "); scanf("%s",studenti.name); printf("n"); printf(" * please input less than 10 numbers student number: "); scanf("%ld",&studenti.number); printf("n"); printf(" * please input the use time : "); scanf("%d",&studenti.time); printf("n"); if(studenti.time>8) printf(" Time spend on computer please less than 8 hours ,input time again:"); scanf("%d",&studenti.time); return 0;void dispall()int i; printf("n"); printf(" * * All the computer room informations * *n"); printf("n"); printf(" * On using computer's informations:n"); printf("n"); printf(" * NO. Name Number Timen"); for(i=1;i<=MaxSize;i+) if(studenti.a=1) printf(" %d %s %ld %dn",i,studenti.name,studenti.number,studenti.time); printf("n * The empty computer's number:n"); printf("n"); for(i=1;i<=9;i+) if(studenti.a=0) printf("0%dt",i); else printf("t"); for(i=10;i<=MaxSize;i+) if(studenti.a=0) printf("%dt",i); else printf("t"); printf("n Press Enter return menu!"); return 0; void dispmoney() int i; int money=0; printf("n"); printf(" * * Settle accounts * *n"); printf("n"); printf(" * Input the computer number: "); scanf("%d",&i); if(studenti.a=1) money=studenti.time*2; printf("n"); printf(" * * * Computer %d must pay for %d yuan! * * *n",i,money); printf("n Press Enter return menu!"); studenti.a=0; getchar(); return 0;9.程序分析 该程序一共由一个主函数和四个次函数组成,在函数开始定义了一个结构体数组,分别代表用户的名字,学号,上机时间,且电脑分别由编号和变量a表示,其中a=0时,表示该机空的,a=1时表示有人上机,于是在输出可用机号时通过判断a是否等于0,若等于1则不输出该机编号,这体现在第一个函数中(input函数),在第二个函数中输入电脑编号和学生信息时,自动给该电脑的变量a赋值1.第三个函数也是通过判断a是否等于1,若等于,则输出用户信息。第四个函数表示用户下机,于是a赋值一个0,整个函数利用a的变化实现了电脑信息的记录与读取。10.参考文献【1】谭浩强.C语言程序设计(第四版).清华大学出版社,2010【2】谭浩强.C语言程序设计(第四版)学习指导.清华大学出版社,2010【3】 曹哲.C语言实验与课程设计指导.机械工业出版社,2010专心-专注-专业