《班级信息管理系统c语言课程设计毕业论文报告.doc》由会员分享,可在线阅读,更多相关《班级信息管理系统c语言课程设计毕业论文报告.doc(45页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 新疆大学软件学院C语言程序设计课程设计报告课程设计设计题目: 班级信息管理系统 班 级: 13-1 学 号: 20132501085 学生姓名: 方丽莎 _ 设计地点(单位): 软件学院第二实验室 指导教师评语: 该生在班级管理系统设计中,承担了教师系统的编程工作,并且和团队通力合作,进行程序的调试工作,最后系统正常运行,达到了预期目标,提高了C语言在实际运用中的能力。成 绩:_ _ _ 教师签名:_田生伟_完成日期: 2014年01月 17日课程设计任务书设计题目: 班级信息管理系统 学生姓名方丽莎课程名称C程序设计课程设计专业班级13级软件工程地 点第二实验室起止时间2014.1.7-2
2、014.1.17设计内容及要求主要利用c语言的文件操作能力设计开发一个小型的班级信息管理系统,至少具有如下功能:学生对本人信息查询,学生对他人基本信息查询,老师对学生信息的查询,老师对学生信息的录入,老师对学生信息的修改,保存。操作界面要符合用户的一般习惯,图形或文本界面都可以。要求:明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识; 提高学生用高级语言进行程序设计的能力,重点提高用C语言进行文件操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和步骤; 提高撰写技术文档的能力。设计参数文件记录的字段数量不少于6个,分类统计中统计的项不少于2个。进度要求1
3、.布置设计题目,讲解要求和说明 2014.1.7 2.确定设计任务,确定具体的功能,熟悉相关知识 2014.1.8-93.按功能需求确定程序的主要模块 2014.1.10 4.编程实现程序的功能 2014.1.11 - 2014.1.145.调试并完善程序 2014.1.15 6.撰写课程设计报告 2014.1.16 7. 提交课程设计报告并答辩 2014.1.17参考资料C程序设计 清华大学出版社 2006.3其它说明.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。.若填写内容较多可另纸附后。3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区
4、别。教研室主任: 指导教师: 年 月 日目录摘 要.41设计内容、任务及具体要求.51.1设计内容.51.2设计任务及具体要求.52概要设计.62.1该系统的功能简介.42.2 总体程序框图.72.3各个模块之间的主要关系.73系统功能模块的具体设计.83.1各个模块的程序流程图及运行界面.83.2对代码加以分析说明.164程序调试分析.405程序使用说明.416总结.42致谢.43摘 要班级信息管理系统最大的优点在于实现班级信息的管理和“共享”,其中,共享的实现是为方便学生对本班同学基本信息的查询,当然,像学生成绩这一类涉及隐私的信息将不会出现在基本信息当中,但本人可凭借学号对其进行查询。对
5、于班级信息的管理则有老师或班委负责,当然,管理之前则要进行密码验证,来确保管理者身份的合法性。此处所说的管理则是对学生信息的录入,修改,增加,删除,输出学生信息,以及成绩排名的输出。本文从需求分析、开发平台选择、系统模块建立、数据库设计、功能模块编程实现及软件测试等方面阐述了本应用系统的设计过程。为便于说明,文中绘制了程序结构框图、数据流程图和部分界面图。最后附有主要的源程序代码清单。 关键词:班级管理 系统维护 数据汇总 管理系统 软件开发1 设计内容、任务及具体要求1.1设计内容班级信息管理系统按照课程设计要求进行设计,实现班级信息的管理和共享,该系统功能主要包括六大模块: 1)学生对本人
6、信息的查询。此功能可以将学生的所有信息输出,包括成绩, 但是它要求输入学号。2)学生对他人信息的查询。此功能主要方便同学之间相互联系,学生只需 要输入所查询同学的姓名,就可得知该同学的基本信息,但出于隐私的保护,将不输出成绩这一栏。 3)老师对此系统拥有输入修改查询的权限,根据教师用户输入密码验证获得权限,方可进行操作。4)教师管理模块,用户输入学生学号后,进行信息的录入、修改、查询。5)数据输出模块,输出其相应的模块功能。6)信息统计模块,根据输入的学生信息进行统计。所有录入的学生的成绩根据总分进行排名。 1.2设计任务及具体要求主要利用c语言的文件操作能力设计开发一个小型的管理信息系统,至
7、少具有如下功能:学生(本人信息查询,他人信息查询),教师(信息录入,信息查询,信息修改)。操作界面要符合用户的一般习惯,图形或文本界面都可以。要求:明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识; 提高学生用高级语言进行程序设计的能力,重点提高用C语言进行文件操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和步骤; 提高撰写技术文档的能力。2 概要设计2.1该系统的功能简介该系统的主要功能是实现学生信息的录入与查询,包括(录入学生的基本信息、高数成绩、英语成绩、体育成绩、电工电子成绩、计算机系统基础成绩、思修成绩、C语言成绩、学生电话号码)。对学生的信
8、息进行删除、修改。并统计学生的所有信息。班级信息管理系统-老师添 加 学 生 信 息输出所有学生信息修改个人记录查询学生信息输出学生信息删除个人信息2.2 总体程序框图图2.2-A老师界面思修计算机基础电工电子英语QQ号电话号码学号姓名高数C语言 添 加 学 生 信 息 图2.2-B添加学生信息 班 级 信 息 管 理 系 统-学 生 退出信息查询 图2.2-C学生界面班 级 信 息 管 理 系 统老师退出学生图2.2-D主界面2.2各个模块之间的主要关系该程序的功能主要是实现学生信息的录入与查询,并对所有学生信息的统计。各个模块之间的关系是相互联系的。首先,主函数包含了所有的子函数。主函数是
9、整个程序的核心。子函数之间也是有联系的,对所有学生成绩的计算、学生信息的修改、删除、查询,必须是在学生信息录入的情况下进行的。因此对学生信息的录入是非常重要的。3 系统功能模块的具体设计3.1各个模块的程序流程图1)总界面程序运行界面 2)老师界面程序(N-S)流程图及运行界面老师界面程序(N-S)流程图(见图3.1-A) 定义变量char ch2; while(TRUE)scanf(“%s”,ch); switch(ch)case 1: addone();break; 添加学生信息case 2:delone();break; 删除个人记录case 3:modone();break; 修改个人
10、记录case 4:idone();break; 查找学生记录case 5:listall();break; 统计学生信息记录case 6:wfile();break;将信息写入文件当中case 7:rfile();break;从文件中读取信息case 8:exit(0);退出系统default:printf(对不起,请重新选择!n);图3.1-A老师界面程序简单说明:该功能主要显示的是给老师用户一个进入界面,它主要的是显示该程序主要能够执行的有哪些功能。下面是显示给用户的界面。(见图3.1-A) :运行界面截图图3.1B老师界面3)录入学生信息(N-S)流程图及程序运行界面录入学生信息(N-S
11、)流程图(见图3.3-A)printf(Record NO. %d n,n+1);输入学生基本信息输入学生的姓名输入学生的学生输入学生的电话号码输入学生的QQ号输入学生的高数成绩输入学生的英语成绩输入学生的电工电子成绩输入学生的体育成绩输入学生的C语言成绩输入学生的思修成绩输入学生的计算机系统基础成绩图3.3-A录入学生信息程序该模块主要是对学生的信息进行录入,录入的主要有包括(录入学生的基本信息、高数成绩、英语成绩、体育成绩、电工电子成绩、计算机系统基础成绩、思修成绩、C语言成绩、学生电话号码)。录入学生信息程序运行界面。(见图3.3-B)图3.3-B录入学生信息程序界面454)删除学生记录
12、的(N-S)流程图及程序运行界面删除学生记录的(N-S)流程图(见图3.4-A)定义数据变量输入某学生的学号 gets(numstr);number =atof(numstr); for(j=0;j=n;j+)glj.number=number?真假flagfind=1;tmpk=glj;k+;flagfind=1?真假 for(j=0;j=(n-1);j+)没有你要删除的记录glj=tmpj;成功删除记录n=n-1;return (0);图3.4-A删除学生记录程序该模块主要通过已经输入的学生信息进行删除,如果你输入的信息存在或不存在,则显示以下运行界面。见图(3.4-B)图3.4-B删除学
13、生记录程序界面 5)修改个人记录的(N-S)流程图及运行界面修改个人记录的(N-S)流程图(见图3.5-A)定义数据变量输入学生的学号将所输学生的学号转化为double型 for(j=0;j=n;j+)glj.number=number?真假输入学生的新信息同时调用atof进行修改flagfind=0flagfind=1;flagfind!=0?真假return 0图3.5-A修改个人记录程序修改个人记录是在原有的基础上对学生信息进行修改,在修改的同时你可以看到该学生原来的信息。以下是修改学生信息过后的显示界面。(见图3.5-B)图3.5-B修改个人记录的运行界面 6)查找学生记录的(N-S)
14、流程图及运行界面查找学生记录的(N-S)流程图(见图3.6-A)定义数据变量输入学生将所输学生的学号化为double型 for(j=0;j=n;j+)glj.number=number?真假将查询到的程序一一输出flagfind=0flagfind=1flagfind!=0?真假您查找的记录不存在!return 0图3.6-A查找学生记录的(N-S)流程图该功能是对已经录入的学生信息进行查寻,如果你输入的学生学号存在,则显示学生信息,如果不存在,则提示为“您查找的记录不存在”。运行界面如下。(见图3.6-B)图3.6-B查找学生记录的运行界面 7)统计出所有的学生信息的(N-S)流程图及运行界
15、面 统计出所有的学生信息的N-S流程图(见图3.7-A)int jn1?真假您查找的记录不存在 for(j=0;jn;j+)printf(n NO:%d |,j+1)输出全体学生相应的信息return(0)图3.7-A统计出所有的学生信息的(N-S)流程图在这个子模块程序中,主要是对输入的学生信息进行统计,统计过后并输出说有的学生信息。以下是程序的运行界面。(见图3.7-B)图3.7-B统计出所有的学生信息的运行界面8)班级信息管理学生的运行界面 3.2对代码加以分析说明#include stdio.h#include conio.h#include stdlib.h#include stri
16、ng.h#include dos.h/* 为了调用atof()等函数 */#include stdlib.h#define TRUE 1int system(const char *string);/清屏函数声明addone();/增加学生信息delone();/删除学生信息modone();/修改学生信息idone();/输出某学生的所有信息listall();/学生成绩排名信息 wfile();/保存文件rfile();/下载文件void mima();/教师密码登陆personalInformation();/本人信息查询informationSearch ();/信息查询student
17、System();/学生界面void teacherSystem();/教师界面passwordMod ();/修改密码otherInformation();/他人信息查询/* 结构体声明 */struct informationchar name50;/姓名 double number;/学号 double Tel;/电话号码 double QQ;/QQ号码double Math;/高数double English;/英语double ele;/电子电工double Language;/C语言double siXiu;/思修double PE;/体育 double Computer;/计算机
18、系统基础double amount;/总分 int password;/密码;struct information gl50;/* 建立结构体变量 */struct information temp;/* 学生列表中的数量 */int n=0;/* 获得字符串 */char numstr50;/ 主函数/int main()/总界面char ch2; /ch存放选项int n=0;/控制输错次数 system(color 3e);/颜色 while(TRUE)system(cls);/清屏printf(t*nn);printf(ttt欢迎来到班级管理系统nn);printf(tttt1.学生n
19、n);printf(tttt2.老师nn);printf(tttt3.结束nn);printf(请选择1或2,按回车键结束nn);scanf(%s,ch);switch(ch0) case 1: studentSystem( );break;/studentSystem学生界面 case 2: mima();break;/教师登陆验证case 3: exit(0);/退出 default:printf(输入有误,请核对后重新输入nn); /本人信息查询界面/personalInformation()int n=0,i; doublenumber1;/承接学号system(cls);/清屏 pr
20、intf(t*nn); printf(ttt 欢迎来到学生信息服务中心nn);printf(请输入你的学号,按回车键结束nn);scanf(%lf,&number1); for(i=0;i50;i+)if(number1=gli.number)break;/学号验证printf(姓名:%s ,gli.name);printf(QQ:%lf ,gli.QQ);printf(学号:%lf ,gli.number);printf(nn);printf(高数:%lf ,gli.Math);printf(英语:%lf ,gli.English);printf(电子电工:%lf ,gli.ele);pri
21、ntf(nn);printf(计算机基础:%lf ,gli.Computer);printf(C语言:%lf ,gli.Language);printf(思修:%lf ,gli.siXiu);printf(nn); printf(体育:%lf ,gli.PE);printf(电话:%lf ,gli.Tel);printf(总分:%lf ,gli.amount);printf(nn);exit(0);/学生界面/studentSystem()char ch2; int n=0;system(cls); printf(t*nn);printf(ttt 欢迎来到学生服务中心nn); printf(t
22、ttt1.信息查询nn);printf(tttt2.返回首页nn); printf(请选择1或2,按回车键结束nn); while(TRUE) scanf(%s,ch);switch(ch0) case1: personalInformation();break;/本人信息查询 case2: return; default: printf(输入有误,请重新输入nn); /教师系统/void teacherSystem() FILE *fptr; char ch2; n=0; / rfile(); 使用后启动程序时系统会自动加载纪录*/ /n=0;printf(n Loading date. n
23、);if(fptr=fopen(成绩.rec,rb)=NULL)printf(Can not open file 成绩.rec! n);elsewhile(fread(&gln,sizeof(gln),1,fptr)=1)n+;fclose(fptr);printf( Total %d records read! n,n);/while(TRUE) printf(n);system(cls);printf(=n); printf(tt欢迎来到班级管理系统(老师) (请在中选择) n); /printf(_n); printf(tt 1.增加学生的信息 n); printf(tt 2.删除某学生
24、的信息 n); printf(tt 3.改变某学生的信息 n); printf(tt 4.输出某学生的所有信息 n); printf(tt 5.学生成绩排名信息 n); printf(tt 6.保存 n); printf(tt 7.下载 n); printf(tt 8.退出 n);printf(tt 9.返回首页 n); printf(=n); printf(ttt 请选择(1-9) n);scanf(%s,ch);while(getchar() != n)continue;switch(ch0) case 1: addone();break; case 2:delone();break; c
25、ase 3:modone();break; case 4:idone();break; case 5:listall();break; case 6:wfile();break; case 7:rfile();break; case 8:exit(0); case 9:return; default:printf(对不起,请重新选择!n); /* 添加学生成绩信息 */ addone(void) printf(n); system(cls); printf(_100 | gln.Math100 |gln.English100 | gln.ele100 | gln.PE100 | gln.Lan
26、guage100 | gln.siXiu100 | gln.Computer_n); wfile(); return 0; /*删除学生记录*/delone(void)struct information tmp50;double number;int j,k;int flagfind;flagfind=0;k=0;printf(-n);printf(n 请输入某学生的 学号: n);gets(numstr); number=atof(numstr);for(j=0;j=n;j+)if(glj.number=number)flagfind=1;elsetmpk=glj;k+;if(flagfind=1)for(j=0;j=(n-1);j+)glj=tmpj;printf(n 成功删除记录 ! n);printf(请按回车键继续!n);getch();printf(-n);n=n-1;elseprintf(n 没有你要删除的记录! n);printf(-