班级信息管理系统c语言课程设计报告_第1页
班级信息管理系统c语言课程设计报告_第2页
班级信息管理系统c语言课程设计报告_第3页
班级信息管理系统c语言课程设计报告_第4页
班级信息管理系统c语言课程设计报告_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1、课程设计设计题目: 班级信息管理系统 班 级: 13-1 学 号: 20132501085 学生姓名: 方丽莎 _ 设计地点(单位): 软件学院第二实验室 指导教师评语: 该生在班级管理系统设计中,承担了教师系统的编程工作,并且和团队通力合作,进行程序的调试工作,最后系统正常运行,达到了预期目标,提高了C语言在实际运用中的能力。成 绩:_ _ _ 教师签名:_田生伟_完成日期: 2014年01月 17日课程设计任务书设计题目: 班级信息管理系统 学生姓名方丽莎课程名称C程序设计课程设计专业班级13级软件工程地 点第二实验室起止时间2014.1.7-2014.1.17设计内容及要求主要利用c语言

2、的文件操作能力设计开发一个小型的班级信息管理系统,至少具有如下功能:学生对本人信息查询,学生对他人基本信息查询,老师对学生信息的查询,老师对学生信息的录入,老师对学生信息的修改,保存。操作界面要符合用户的一般习惯,图形或文本界面都可以。要求:明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识; 提高学生用高级语言进行程序设计的能力,重点提高用C语言进行文件操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和步骤; 提高撰写技术文档的能力。设计参数文件记录的字段数量不少于6个,分类统计中统计的项不少于2个。进度要求1.布置设计题目,讲解要求和说明 2014.1

3、.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();bre

10、ak; 修改个人记录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老师界面程序简单说明:该功能主要显示的是给老师用户一个进入界面,它主要的是显示该程序主要能够执行的有哪些功能。下

11、面是显示给用户的界面。(见图3.1-A) :运行界面截图图3.1B老师界面3)录入学生信息(N-S)流程图及程序运行界面录入学生信息(N-S)流程图(见图3.3-A)printf("Record NO. %d n",n+1);输入学生基本信息输入学生的姓名输入学生的学生输入学生的电话号码输入学生的QQ号输入学生的高数成绩输入学生的英语成绩输入学生的电工电子成绩输入学生的体育成绩输入学生的C语言成绩输入学生的思修成绩输入学生的计算机系统基础成绩图3.3-A录入学生信息程序该模块主要是对学生的信息进行录入,录入的主要有包括(录入学生的基本信息、高数成绩、英语成绩、体育成绩、电工

12、电子成绩、计算机系统基础成绩、思修成绩、C语言成绩、学生电话号码)。录入学生信息程序运行界面。(见图3.3-B)图3.3-B录入学生信息程序界面45 / 45文档可自由编辑打印4)删除学生记录的(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=tm

13、pj;成功删除记录n=n-1;return (0);图3.4-A删除学生记录程序该模块主要通过已经输入的学生信息进行删除,如果你输入的信息存在或不存在,则显示以下运行界面。见图(3.4-B)图3.4-B删除学生记录程序界面 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修改

14、个人记录程序修改个人记录是在原有的基础上对学生信息进行修改,在修改的同时你可以看到该学生原来的信息。以下是修改学生信息过后的显示界面。(见图3.5-B)图3.5-B修改个人记录的运行界面 6)查找学生记录的(N-S)流程图及运行界面查找学生记录的(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)流程图该功能是对已经录入

15、的学生信息进行查寻,如果你输入的学生学号存在,则显示学生信息,如果不存在,则提示为“您查找的记录不存在”。运行界面如下。(见图3.6-B)图3.6-B查找学生记录的运行界面 7)统计出所有的学生信息的(N-S)流程图及运行界面 统计出所有的学生信息的N-S流程图(见图3.7-A)int jn<1?真假您查找的记录不存在 for(j=0;j<n;j+)printf("n NO:%d |",j+1)输出全体学生相应的信息return(0)图3.7-A统计出所有的学生信息的(N-S)流程图在这个子模块程序中,主要是对输入的学生信息进行统计,统计过后并输出说有的学生信息

16、。以下是程序的运行界面。(见图3.7-B)图3.7-B统计出所有的学生信息的运行界面8)班级信息管理学生的运行界面 3.2对代码加以分析说明#include "stdio.h"#include "conio.h"#include "stdlib.h"#include "string.h"#include "dos.h"/* 为了调用atof()等函数 */#include "stdlib.h"#define TRUE 1int system(const char *strin

17、g);/清屏函数声明addone();/增加学生信息delone();/删除学生信息modone();/修改学生信息idone();/输出某学生的所有信息listall();/学生成绩排名信息 wfile();/保存文件rfile();/下载文件void mima();/教师密码登陆personalInformation();/本人信息查询informationSearch ();/信息查询studentSystem();/学生界面void teacherSystem();/教师界面passwordMod ();/修改密码otherInformation();/他人信息查询/* 结构体声明 *

18、/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;/计算机系统基础double amount;/总分 int password;/密码;struct information gl50;/* 建立结构体变量 */struct information t

19、emp;/* 学生列表中的数量 */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.学生nn");printf("tttt2.老师nn");pr

20、intf("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"); /本人信息查询界面/personalInforma

21、tion()int n=0,i; doublenumber1;/承接学号system("cls");/清屏 printf("t*nn"); printf("ttt 欢迎来到学生信息服务中心nn");printf("请输入你的学号,按回车键结束nn");scanf("%lf",&number1); for(i=0;i<50;i+)if(number1=gli.number)break;/学号验证printf("姓名:%s ",);printf(&q

22、uot;QQ:%lf ",gli.QQ);printf("学号:%lf ",gli.number);printf("nn");printf("高数:%lf ",gli.Math);printf("英语:%lf ",gli.English);printf("电子电工:%lf ",gli.ele);printf("nn");printf("计算机基础:%lf ",gli.Computer);printf("C语言:%lf ",gl

23、i.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&quo

24、t;);printf("ttt 欢迎来到学生服务中心nn"); printf("tttt1.信息查询nn");printf("tttt2.返回首页nn"); printf("请选择1或2,按回车键结束nn"); while(TRUE) scanf("%s",ch);switch(ch0) case'1': personalInformation();break;/本人信息查询 case'2': return; default: printf("输入有误,

25、请重新输入nn"); /教师系统/void teacherSystem() FILE *fptr; char ch2; n=0; / rfile(); 使用后启动程序时系统会自动加载纪录*/ /n=0;printf("n Loading date. n");if(fptr=fopen("成绩.rec","rb")=NULL)printf("Can not open file 成绩.rec! n");elsewhile(fread(&gln,sizeof(gln),1,fptr)=1)n+;fclo

26、se(fptr);printf(" Total %d records read! n",n);/while(TRUE) printf("n");system("cls");printf("=n"); printf("tt欢迎来到班级管理系统(老师) (请在<1-8>中选择) n"); /printf("_n"); printf("tt 1.增加学生的信息 n"); printf("tt 2.删除某学生的信息 n"); pri

27、ntf("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(

28、"%s",ch);while(getchar() != 'n')continue;switch(ch0) case '1': addone();break; case '2':delone();break; case '3':modone();break; case '4':idone();break; case '5':listall();break; case '6':wfile();break; case '7':rfile();break;

29、 case '8':exit(0); case '9':return; default:printf("对不起,请重新选择!n"); /* 添加学生成绩信息 */ addone(void) printf("n"); system("cls"); printf("_>>><<<_n"); printf("Record NO. %d n",n+1); printf("输入学生基本信息n"); printf(&qu

30、ot;请输入学生的 姓名:"); scanf("%s",); tep: gets(numstr); if(strlen(numstr)!=11) printf("请输入11位的 学号:"); goto tep; gln.number=atof(numstr);tep1:gets(numstr); if(strlen(numstr)!=11) printf("请输入11位的 电话号码:"); goto tep1; gln.Tel=atof(numstr); printf("请输入 QQ号:"

31、); gets(numstr); gln.QQ=atof(numstr);tep3:printf("请输入学生的 高数成绩: "); gets(numstr); gln.Math=atof(numstr); if(gln.Math>100 | gln.Math<0) printf("请正确输入!n"); goto tep3; tep4:printf("请输入学生的 英语成绩: "); gets(numstr); gln.English=atof(numstr); if(gln.English>100 |gln.Eng

32、lish<0) printf("请正确输入!"); goto tep4; tep5:printf("请输入学生的 电工电子成绩: "); gets(numstr); gln.ele=atof(numstr); if(gln.ele>100 | gln.ele<0) printf("请正确输入!n"); goto tep5; tep6:printf("请输入学生的 体育成绩: "); gets(numstr); gln.PE=atof(numstr); if(gln.PE>100 | gln.

33、PE<0) printf("请正确输入!n"); goto tep6; tep7:printf("请输入学生的 c语言成绩: "); gets(numstr); gln.Language=atof(numstr); if(gln.Language>100 | gln.Language<0) printf("请正确输入!n"); goto tep7; tep8:printf("请输入学生的 思修成绩: "); gets(numstr); gln.siXiu=atof(numstr); if(gln.

34、siXiu>100 | gln.siXiu<0) printf("请正确输入!n"); goto tep8; tep9:printf("请输入学生的 计算机系统基础成绩: "); gets(numstr); gln.Computer=atof(numstr); if(gln.Computer>100 | gln.Computer<0) printf("请正确输入!n"); goto tep9; gln.amount=(gln.Math)+(gln.English)+(gln.ele)+(gln.PE)+(gln

35、.Language)+(gln.siXiu)+(gln.Computer); printf("总成绩:%fn",gln.amount); n+; printf("添加成功!n"); printf("_>>><<<_n"); wfile(); return 0; /*删除学生记录*/delone(void)struct information tmp50;double number;int j,k;int flagfind;flagfind=0;k=0;printf("-n");p

36、rintf("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

37、 没有你要删除的记录! n");printf("-n");return (0);/*修改学生记录*/modone(void)double number;int j;int flagfind;flagfind=0;printf("n 请输入学生的 学号: n");gets(numstr);number=atof(numstr);for(j=0;j<=n;j+)if(glj.number=number)printf("NO.:%dn",j);printf("学生的学号:%lfn",glj.number)

38、;tep10: printf("t电话号码:%lfn",glj.Tel); gets(numstr); if(strlen(numstr)!=11) printf("请输入11位的 电话号码:n"); goto tep10; glj.Tel=atof(numstr); printf("tQQ:%lfn",glj.QQ); printf("请输入QQ号:n"); gets(numstr); glj.QQ=atof(numstr);printf("t高数成绩:%10.2fn",glj.Math);t

39、ep12:printf("t请输入学生的 高数成绩: n");gets(numstr); glj.Math=atof(numstr); if(glj.Math>100 | glj.Math<0)printf("请正确输入!n"); goto tep12; printf("t英语:%10.2fn",glj.English);tep13: printf("t请输入学生的 英语成绩: n"); gets(numstr); glj.English=atof(numstr); if(glj.English>

40、100 | glj.English<0) printf("请正确输入!n"); goto tep13; printf("t电工电子成绩:%10.2fn",glj.ele);tep14:printf("t请输入学生的 电工电子成绩: n");gets(numstr);glj.ele=atof(numstr);if(glj.ele>100 | glj.ele<0) printf("请正确输入!n"); goto tep14; printf("t体育:%10.2fn",glj.PE)

41、;tep15:printf("t请输学生的 体育成绩: n");gets(numstr);glj.PE=atof(numstr);if(glj.PE>100 | glj.PE<0) printf("请正确输入!n"); goto tep15; printf("tC语言:%10.2fn",glj.Language);tep16: printf("请输入学生的 C语言成绩: n"); gets(numstr); glj.Language=atof(numstr); if(glj.Language>10

42、0 | glj.Language<0) printf("请正确输入!n"); goto tep16; printf("t思修:%10.2fn",glj.siXiu);tep17: printf("请输入学生的 思修成绩: n"); gets(numstr); gln.siXiu=atof(numstr); if(gln.siXiu>100 | gln.siXiu<0)printf("请正确输入!n"); goto tep17; printf("t计算机:%10.2fn",glj

43、.Computer);tep18:printf("t请输学生的 计算机系统基础成绩: n");gets(numstr);glj.Computer=atof(numstr);if(glj.Computer>100 | glj.Computer<0)printf("请正确输入!n"); goto tep18; glj.amount=(glj.Math)+(glj.English)+(glj.ele)+(glj.PE)+(glj.Language)+(glj.siXiu)+(glj.Computer);printf("总成绩:%fn&qu

44、ot;,glj.amount);printf("修改成功n");flagfind=1;elseflagfind=0;if(flagfind!=0)printf("n没有此记录! n");getch();return(0);/查找学生信息 idone(void)double number; int j; int flagfind = 0;printf("n");printf("n 请输入学生学号: n");gets(numstr);number=atof(numstr);for(j=0;j<=n;j+)if(glj.number=number)printf("n %d 成功找到记录! n |",j+1);printf("t学生的姓名:%sn",);printf("t学生的学号:%10.0f n",glj.number);printf("t学生的电话号码:%lf n",glj.Tel); printf("t学生的QQ号码:%lf n&qu

温馨提示

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

评论

0/150

提交评论