机房管理系统.docx
《机房管理系统.docx》由会员分享,可在线阅读,更多相关《机房管理系统.docx(12页珍藏版)》请在冰豆网上搜索。
![机房管理系统.docx](https://file1.bdocx.com/fileroot1/2023-1/28/33d6ff87-dee7-435d-94df-1117adb66e31/33d6ff87-dee7-435d-94df-1117adb66e311.gif)
机房管理系统
课程设计说明书
课程名称:
高级语言程序设计
设计题目:
机房管理系统
院系:
计算机科学与信息工程学院
学生姓名:
学号:
专业班级:
指导教师:
2013年6月
课程设计任务书
设计题目
成绩管理系统
学生姓名
周博娜
所在院部
计算机科学与信息工程学院
专业、班级
软件工程11-2
设计要求:
完成一个学生成绩管理,具体要求如下:
1.输入学生信息
2.显示学生信息
3.查询学生信息
(1)按学号查询
(2)按姓名查询(3)按性别查询
4.更新学生信息
5.删除学生信息
6.计算学生成绩
(1)计算总分
(2)计算平均分
7.保存到文件
8.退出
学生应完成的工作:
1.学生应认真学习参考程序,理解每个文件、每个函数以及各个变量的作用和意义。
在此基础上进一步改进程序,最后正确地运行程序。
2.对程序进行测试,设计详细的测试计划,然后根据测试计划设计测试用例,对程序进行测试。
测试时应注意对各种边缘情况进行测试。
3.完成课程设计报告。
参考文献:
1.梁旭等C程序设计课程设计电子工业出版社2011
2.谭浩强C程序设计(第四版)清华大学出版社2010
工作计划:
1.小组审题,查阅资料,进行设计前的必要资料准备(3天)。
2.把程序完整运行出来(4天)。
3.增加改进程序(3天)。
4.写课程设计报告(3天)。
5.提交课程设计报告及答辩(1天)
任务下达日期:
2013年6月10日
任务完成日期:
2013年6月23日
指导教师(签名):
学生(签名):
周博娜
目录
1前言1
2需求分析1
2.1要求1
2.2任务1
2.3运行环境1
2.4开发工具1
3概要设计1
3.1系统流程图2
3.2查询函数流程图2
4详细设计2
5改进或增加功能模块说明4
6程序测试4
7课程设计总结5
8参考文献5
9致谢5
10源程序5
学生成绩管理
1前言
编写一个程序来实现算术计算器。
通过结构体数组和共用体数组来存放输入的每一数字或运算符号的记录(包括1、2、3等数字,+、--、*、等运算符号),然后将其信息存入文件中。
输入一个算术计算式,就在屏幕上显示结果。
2需求分析
2.1要求
(1)用C语言实现程序设计;
(2)利用结构体、共用体进行相关信息处理;
(3)画出查询模块的流程图;
(4)系统的各个功能模块要求用函数的形式实现;
(5)界面友好(良好的人机互交),程序要有注释。
2.2任务
(1)定义一个结构体类型数组,输入0~9及+、--、*等符号的信息,将其信息存入文件中;
(2)输入简单的加减乘除算术计算式,并在屏幕上显示计算结果;
(3)画出部分模块的流程图;
(4)编写代码;
(5)程序分析与调试。
2.3运行环境
(1)WINDOWS2000/XP系统
(2)TurboC2.0编译环境
2.4开发工具
C语言
3概要设计
3.1系统流程图
3.2查询函数流程图
4详细设计
在程序的开头部分定义了结构替类型,用来存放按钮信息
structs_button/*按键的结构体*/
{
intsx,sy,ex,ey;
char*head;
intpress;
}button[17];/*图表按键数*/
charfar*vid_mem;
staticinttx=32,ty=3;/*静态变量*/
floatv1=0.0,v2=0.0;
用输入函数input()来输入按键放在s_button数组中。
再定义结构体栈:
structstack/*结构体栈*/
{
chars[20];
inttos,top;
}stack;
chartag;
用于数据的输入和存放。
进而定义了表格窗口函数,窗口画线函数和边界线函数:
intform_win()/*表格窗口初始化*/
{
textbackground(WHITE);/*窗口背景颜色*/
clrscr();/*清零*/
draw_win();/*窗口画线*/
active_button();/*窗口按键*/
out_text_win();/*输出文本窗口*/
window_xy(32,3);/*计算结果窗口*
draw_win()/*边框画线窗口*/
………
draw_border(intsx,intsy,intex,intey,intattrib)/*边界线函数*/
………
通过这些为形成整个界面提供了大的前提。
接着通过“write_char()”,“active_button()”,“write_top()”,“make_button()”,“out_text_win()”,“get_key()”,“window_xy()”等一系列的函数,使得计算器的整个外型呈现了出来。
为了输入方便一些,就接着定义的小键盘的输入函数:
key_choice()把小键盘数字键和运算键的键值通过“get_data(bx,by);send1()”和计算器界面按键连接起来,使得通过小键盘相应的键就能获得计算器相应的值。
再就是计算器运算的主程序:
put_string()/*计算机运算函数*/
{
floatresult;
tx=32;
switch(tag)/*根据运算符号计算*/
{
case'+':
result=v1+v2;break;/*做加法*/
case'-':
result=v1-v2;break;/*做减法*/
case'*':
result=v1*v2;break;/*做乘法*/
case'/':
result=v1/v2;break;/*做除法*/
default:
result=v1;/*若不计算输出0*/
}
sprintf(stack.s,"%.3f",result);/*输出结果保留小数点后三位*/
通过switch来实现相应的计算,输出保留三位小数的结果。
………
最后mian()函数:
main()
{
init_stack();
vid_mem=(charfar*)0xb8000000;
if(!
form_win())
{
printf("can'tformthedevice,pressanykeytoleave!
...");
getch();
exit();
}
menu();
calculator();
}
通过调用上面定义的函数实现了计算器整个功能。
5改进或增加功能模块说明
6程序测试
1.测试系统能否正确显示菜单选项
执行程序后,显示本系统的菜单选项界面,如图8所示。
图8学生成绩管理主菜单界面
2.测试系统能否正确输入学生信息
输入如下数据:
学号性别姓名语文数学英语计算机
0001女wangfang87908976
0002男lihua79889080
0003女zhaoxin80967887
进入主菜单界面后,输入数字1进入输入学生信息界面,根据提示输入学生信息和成绩,输入完一条信息后提示用户是否继续输入下一条学生信息,如果输入“Y”或“y”,则继续输入下一条学生信息,否则返回主界面,输入信息界面如图9所示。
图9输入学生信息界面
7课程设计总结
8参考文献
[1]张福祥.C语言程序设计[M].辽宁大学出版社,2008.1
[2]张福祥,王萌.C语言程序设计习题解答与实验实训[M].沈阳:
辽宁大学出版社,2008.
[3]牛莉,刘远军等.计算机等级考试辅导教程[M].北京:
中国铁道出版社,2008.
9致谢
10源程序
/*头文件student.h*/
#ifndefSTUDENT_H/*防止student.h被重复引用*/
#defineSTUDENT_H
#include/*标准输入/输出函数库*/
#include/*标准函数库*/
#include/*字符串函数库*/
#defineTITLE"学生成绩管理系统"/*标题文字*/
#defineMAX10
#defineMENU_MAIN_COUNT9/*主菜单的选项个数*/
#defineMENU_SEARCH_COUNT4/*查询子菜单的选项个数*/
#defineMENU_CALC_COUNT3/*计算子菜单的选项个数*/
#defineMENU_SORT_COUNT5/*排序子菜单的选项个数*/
typedefstructstudent{
charname[MAX];/*姓名*/
charnum[MAX];/*学号*/
charsex[MAX];/*性别*/
intchinese;/*语文成绩*/
intmathematic;/*数学成绩*/
intenglish;/*英语成绩*/
intcomputer;/*计算机成绩*/
intindex;/*名次*/
structstudent*next;/*指向下一个学生的指针*/
}stu;
stu*head;/*student结构体链表的头节点*/
/*主要处理函数声明*/
voidinput_record();/*输入学生成绩的处理*/
voidshow_record();/*显示学生成绩的处理*/
voidsearch_record();/*查询学生成绩的处理*/
voidupdate_record();/*更新学生成绩*/
voiddelete_record();/*删除学生成绩*/
voidcalculate();/*计算学生成绩*/
voidsort();/*学生成绩排序*/
voidsave_to_file();/*保存到文件的处理*/
voidexit_system();/*退出系统*/
/*查询子函数声明*/
voidsearch_by_id();/*通过学号检索学生的处理*/
voidsearch_by_name();/*通过姓名检索学生的处理*/
voidsearch_by_sex();/*通过性别检索学生的处理*/
voidsearch_exit();/*退出子菜单,返回上级菜单*/
#endif
/*主控函数Master.c*/
#include"student.h"
/*字符数组menu_main中储存的是主菜单要显示的字符*/
charmenu_main[]=
"|\n"
"|1输入学生成绩\n"
"|2显示学生成绩\n"
"|3查询学生成绩\n"
"|4更新学生成绩\n"
"|5删除学生成绩\n"
"|6计算学生成绩\n"
"|7排序学生成绩\n"
"|8保存文件\n"
"|9退出系统\n"
"|\n";
/*函数指针数组menu_main_func储存的是主菜单中8个功能函数的
*地址分别对应1-8个菜单项*/
voidmain()
{
print_menu_main();//显示主菜单等待用户入
}
/*显示主菜单界面*/
voidprint_menu_main()
{
intselected=0;/*用户选择的菜单项*/
system("cls");/*清屏*/
print_menu_title(TITLE);/*显示标题*/
printf(menu_main);/*显示菜单字符*/
printf("====================================================\n");
/*如果用户没有选择或者选择错误,循环等待*/
while(!
(selected>=1&&selected<=MENU_MAIN_COUNT))
{
printf(">请选择:
");
scanf("%d",&selected);
getchar();
if(selected>=1&&selected<=MENU_MAIN_COUNT)
break;
printf("\n>输入错误!
(注:
请选择1-%d)\n",MENU_MAIN_COUNT);
}
menu_main_func[selected-1]();/*调用用户选择菜单项对应的函数指针数组中的函数*/
}
/*输入模块Input.c*/
#include"student.h"
/*输入学生信息函数*/
voidinput_record()
{
charcontinue_input='N';
stu*pLastStu=NULL;
stu*pNewStu=(stu*)malloc(sizeof(stu));/*创建一个stu*/
pNewStu->next=NULL;
create_stu_by_input(pNewStu);/*让用户为创建的stu赋值*/
if(head==NULL)/*一个都没有*/
{
head=pNewStu;
}
else
{
pLastStu=get_last_student(head);/*找到最后一个*/
pLastStu->next=pNewStu;
}
printf("继续输入学生成绩?
(Y继续,N返回菜单)");
getchar();
continue_input=getchar();
if(continue_input=='n'||continue_input=='N')
{
print_menu_main();/*不继续输入,将显示主菜单*/
}
else
{
input_record();/*再次调用这个函数输入新的学生成绩*/
}
}
指导教师评语:
1、课程设计报告:
a、内容:
不完整□完整□详细□
b、方案设计:
较差□合理□非常合理□
c、实现:
未实现□部分实现□全部实现□
d、文档格式:
不规范□基本规范□规范□
2、出勤:
全勤□缺勤次
3、上机测试:
a、未能完全理解题目,测试情况较差□
b、部分理解题目,部分测试情况正确□
c、理解题目较清楚,测试情况基本正确□
d、理解题目透彻,测试情况正确□
课程设计报告成绩:
,占总成绩比例:
40%
课程设计其它环节成绩:
环节名称:
出勤,成绩:
,占总成绩比例:
20%
环节名称:
上机测试,成绩:
,占总成绩比例:
40%
总成绩:
指导教师签字:
年月日