程序设计论文
吉 林 农 业 科 技 学 院
课 程 设 计 论 文
论 文 题 目: 学生管理系统
年 级 专 业: 11级电气工程及其自动化 组 长: 钟磊
组 员: 王硕文 张可明 赵立勋 吴旭 指 导 教 师: 武青海 评 阅 教 师: 武青海
完 成 日 期: 2012-7-4
吉林农业科技学院
学生管理系统设计
学 生: 钟磊、王硕文、张可明、赵立勋 专 业:电气工程及其自动化 指导教师: 武青海
摘 要
21 世纪是信息时代,随着信息技术在管理上越来越深入而广泛的应用,管 理信息系统的实施技术已经很成熟。作为学校需要管理学生大量基本信息,如何将其学生信息高效率地组织起来,就必须要拥有一个建立在于自身特点上相应的管理系统。以此来管理学生基本信息,实现高效率,简约成本,快捷,方便。
学校学生信息管理是学校教务管理中的一个极为重要的环节,它是整个学校管理的核心和基础。为了适应现代社会人们强烈的时间观念,学生管理系统将会为教学办公室带来极大的方便。学生管理系统能够为管理者,操作者提供有条理信息和快捷的查询方式。本系统功能有学生信息输入与查询管理,其中有基本的删除、添加和查询。使用计算机对学生信息进行管理,具有手工人员管理无法比拟的优点。
关键词:信息;管理系统;查询
目 录
摘 要…………………………………………………………………………I 1 开发与设计总体思想......................................................................................1
1.1 目的背景..............................................................................................1 1.2 管理系统的发展..................................................................................1 1.3 课题的提出意义..................................................................................1 1.4 设计思想..............................................................................................2 1.5 系统概述..............................................................................................2 2 总体设计..........................................................................................................3
2.1 系统模块结构图..................................................................................3 2.2 模块设计..............................................................................................3 2.3 程序运行与调试分析..........................................................................3 3 函数整体设计..................................................................................................5 3.1 main函数.............................................................................................5
3.2 void writedat函数...........................................................................6 3.3 void readdat函数.............................................................................7 3.4 void change函数...............................................................................8
结 论.................................................................................................................9
参 考 文 献...........................................................................................................10 致 谢.................................................................................................................11
1 开发与设计总体思想
1.1 目的背景
学生信息管理系统是一个教育单位不可缺少的部分,一个功能齐全 ,简单 易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担, 它的内容对于学校的决策者和管理者来说都至关重要. 所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段. 但一直以来人们使用传统人工的方式管理文件档案 ,统计和查询数据 ,这种管理方式存在着许多缺点 ,如:效率低 ,保密性差 ,人工的大量浪费;另外时间一长 ,将产生大量的文件和数据 ,这对于查找 ,更新和维护都带来了不少困难。随着科学技术的不断提高, 计算机科学日渐成熟, 其强大的功能已为人们深刻认识, 它已进入人类社会的各个领域并发挥着来越重要的作用。作为计算机应用的一部分,使用计算机学校的各类信息进行管理, 具有手工管理所无法比拟的优点。例如:检索迅速, 查询方便, 效率高, 可靠性好, 存储量大, 保密性好, 寿命长, 成本低等. 这些优点能够极大地提高学校信息管理的效率, 也是一个单位科学化, 正规化管理, 与世界接轨的重要条件。
1.2 管理系统的发展
管理信息系统(MIS )是一门边缘学科,集管理科学、信息科学、系统科学、现代通信技术和电子计算机技术于一体。1985年,管理信息系统创始人,明尼苏达大学卡尔森管理学院的著名教授戴维斯(Gordon.B.Davis )给出了一个具有代表性的定义:“管理信息系统是一个利用计算机硬件和软件,手工作业、分析、计划、控制和决策模型以及数据库的用户-机器系统。它能提供信息支持企业或组织的运行、管理和决策功能。”
随着网络技术的出现,管理信息系统又有了新的发展,基于网络的管理信息系统不断出现,管理信息系统的概念模型也发生了相应的变化,许多学者对管理信息系统给出了新的定义。例如劳顿认为:“管理信息系统是一个基于计算机的信息系统,它通过收集、处理、存储和扩散信息,来支持组织的管理、决策、合作、控制、分析活动,并使之可视化。”
1.3 课题的提出意义
在各大中小学校, 用计算机管理学校的信息已经越来越普遍了。用计算机不但可以提高工作效率, 而且还节省了许多人力物力, 增强了学校资料的安全性。提高了学校的管理能力, 为此, 用计算机来管理学校的信息, 是非常必要的。
通过学生管理系统,可以做到信息的规范管理,科学统计和快速的查询,从而减少管理方面的工作量。毋庸置疑,切实有效地把计算机管理引入学校教务管理中,对于促进学校管理制度,提高学校教学质量与办学水平有着显著意义
1.4 设计思想
建立学生信息管理系统, 采用计算机对学生信息进行管理, 进一步提高办学效益和现代化水平. 帮助广大教师提高工作效率, 实现学生信息管理工作流程的系统化, 规范化和自动化.
本系统主要应用结构化的思想,实现学生信息管理系统的查询,增加,删除等典型管理功能,系统的设计方法是结构化设计方法,采用C 语言进行设计开发。
1.5 系统概述
学生管理系统是运行于Windows 系统下的应用软件,主要用于对学生的姓名,学号等自然信息进行增加,修改等操作,给用户提供了一个简单的人机界面,使用户可以根据提示输入操作项,调用系统提供的管理功能。系统采用C++软件编辑,运用C 语言环境编译,具有简单易懂的特性。
2 总体设计
2.1 系统模块结构图。
依据需求分析,学生管理系统分为3个模块:创建学生信息文件,查询学生信息,修改学生信息。
2.2 模块设计
(1) 创建学生信息:用户根据提示输入学生的学号、姓名、年龄、地址,可一次性输入5条学生信息记录,系统将学生成绩信息记录存储,以便进行管理、查找和备份。
(2) 显示学生信息:系统会把已存储的学生记录按存储的自然顺序以列表的形式进行显示,显示内容包括学生的姓名、年龄、学号,地址。
(3) 查询学生信息:系统提示用户输入要查询的学生标号,如果在磁盘文件中有对应的学生信息,则逐项列出学生的情况。
(4) 修改学生信息:提示用户输入要修改的编号,如果在文件中有该学生的信息存在,就直接进行修改。
2.3 程序运行调试分析
(1)主菜单为用户提供操作选择,具体设计效果如图A-1。
(2)创建学生信息的操作,每条记录的输入都要提示用户输入具体的项目内容,效果如图A-2.
(3)显示学生信息的操作,按录入自然顺序输出,效果如图A-3。
(4)修改学生信息的操作,按照用户输入的编号进行查找,效果如图A-4。
3 函数整体设计
3.1 main函数
功能:进入系统,给用户主控平台,显示操作菜单。根据用户的选项调用相应的函数。
输入:用户输入要进行操作的数字选项。
处理:接收用户输入的操作选项;系统根据用户输入的操作选项调用响应的功能函数;显示响应函数的操作过程。
输出:用户选相对应的执行结果。 程序清单: #include"stdio.h" #define SIZE 5 struct stu
{ char name[10]; int no;
int age; char add[10]; }stu[SIZE]; void readdat(); void writedat(); void change(); void main() { char k;
printf(" 欢迎进入学生信息管理系统\n"); printf("\n\n 1.学生信息输入系统 "); printf(" 2.学生信息查询系统\n"); printf(" 3.学生信息修改系统\n\n\n"); began:
printf("\n\n请输入选项:"); scanf("%d",&k); switch(k)
{ case 1: writedat(); break; case 2: readdat(); break; case 3: change(); break; default: goto began; } goto began; while(1); }
3.2 void writedat()函数
功能:创建学生信息,并将创建的信息保存。 输入:学生的简单资料。 程序清单: void writedat() {
FILE *fp; char i;
printf("\n\n请输入学生的姓名、学号、年龄和地址:\n"); for(i=0;i
printf("输入%d号学生信息:",i+1);
scanf("%s %d %d %s",stu[i].name,&stu[i].no,&stu[i].age,stu[i].add);
}
if((fp=fopen("E:\\a.dat","wb"))==NULL) {
printf("Open Error\n"); return; }
for(i=0;i
if(fwrite(&stu[i],sizeof(struct stu),1,fp)!=1) printf("write error\n"); }
fclose(fp); }
3.3 void readdat()函数
功能:查找所输入的学生信息。 输出:按查找的要求输出学生信息。 程序清单: void readdat() { FILE *fp; int i,k,kk; jixu:
printf("查询全部请输入0,查询单个请输入1:"); scanf("%d",&k);
if((fp=fopen("E:\\a.dat","rb"))==NULL) { printf("Read Error\n"); return; } if(k==0)
{ printf("编号 姓名 学号 年龄 地址\n");
for(i=0;i
{ if(fread(&stu[i],sizeof(struct stu),1,fp)!=1)
{ if(!feof(fp))
printf("write error\n");
return;}
printf("%-5d%-8s%-8d%-5d%s\n",i+1,stu[i].name,stu[i].no,stu[i].age,stu[i].add);} }
else if(k==1)
{ printf("请输入学生的编号:");
scanf("%d",&kk);
printf("编号 姓名 学号 年龄 地址\n");
if(fread(&stu[kk-1],sizeof(struct stu),1,fp)!=1)
{ if(!feof(fp))
printf("write error\n");
return; }
printf("%-5d%-8s%-8d%-5d%s\n",kk,stu[kk-1].name,stu[kk-1].no,stu[kk-1].age,stu[kk-1].add); }
else
{ printf("输入错误!");
goto jixu;} fclose(fp); }
3.4 void change()函数
功能:修改学生的基本信息,根据用户要求修改。
输入:要修改学生的标号,修改的内容。
输出:显示修改后的学生信息。
程序清单:
void change()
{ FILE *fp;
char i,kk;
while(1)
{ printf("请输入修改信息学生的编号(0退出):");
scanf("%d",&kk);
if(kk==0)
return;
printf("编号 姓名 学号 年龄 地址\n");
if((fp=fopen("E:\\a.dat","rb"))==NULL)
{ printf("Read Error\n");
return; }
for(i=0;i
if(fread(&stu[i],sizeof(struct stu),1,fp)!=1)
{ if(!feof(fp))
printf("write error\n");
return;}
printf("%-5d%-8s%-8d%-5d%s\n",kk,stu[kk-1].name,stu[kk-1].no,stu[ kk-1].age,stu[kk-1].add);
printf("请输入学生的姓名、学号、年龄和地址:\n");
scanf("%s %d %d %s",stu[kk-1].name,&stu[kk-1].no,&stu[kk-1].age,stu[kk-1].add);
if((fp=fopen("E:\\a.dat","wb"))==NULL)
{ printf("Open Error\n");
return; }
for(i=0;i
{ if(fwrite(&stu[i],sizeof(struct stu),1,fp)!=1)
printf("write error\n"); }
fclose(fp); } }
结 论
通过这次课程设计,再此过程中使我学会了很多有用的东西,受益匪浅。在编写程序的过程中,我回顾了以前所学的知识,将学习到得知识在这个项目中得到了充分的应用,达到了检验自我的目的。并且通过和别人一起合作,学到了新的知识,积累了经验。我深刻认识到所学的基础课程的重要性,也使我掌握了很多新知识,特别是一些课本之外的知识,体会到了理论知识和实践相结合的重要性。
学生管理系统是一个需要不断完善的过程,只有在实际的使用过程中才能不断的发现问题,从而再加以改进,而在系统的设计过程中,难免会出现一些预测不到的异常,这些异常甚至在系统测试阶段都检查不出来, 只有在用户的使用过程中才能检查出来,很多地方未能考虑周全已至系统存在着很多不足之处,这些不足主要是由于时间不足,
个人水平不够造成的。在代码设计上也存在不足,容易造成系统运行效率的降低,这需要在以后系统维护过程中逐步发现,并不断进行升级,都有待进一步改善。
本次设计也使我感觉到个人的能力不足,一个好的系统仅靠个人的能力是不够的,需要一个团队的配合,通过这个设计也加强了自己的团队精神,也深深的体会到团队精神的重要性。因为一个人所学的知识不可能面面俱到的,只有通过合作,发挥自己的优点,体现团队精神,才能使工作做得更为出色。通过这次设计,我学到了许多书本上学不到的知识,增强了自己的动手能力和自信心。由于本次课程设计时间较短,且所掌握的知识水平有限,所以该系统还有许多不尽如人意的地方,比如:功能较少,用户界面不够美观,人机界面不友好,出错处理不够等多方面问题。不过,我们会再接再厉,用以后所学的知识不断的去改进完善。
参 考 文 献
[1]许薇 武青海编著. 《C 语言程序设计》. 北京:人民邮电出版社.2010
[2] 哈比森编著. 《C 语言参考手册》. 北京:机械工业出版社,2001
[3] P.J.Plauger编著. 《C 标准库》. 北京:人民邮电出版社,2004
[4]郑宇军 王侃 凌海风编著. 《C#程序设计基础》. 北京:清华大学出版社,2008
致 谢
感谢武老师的无私奉献!感谢武老师在我们的设计过程中给予了我们帮助,为我们指明了方向,避免了走弯路的可能。我们所取得的成果与老师的辛勤教诲是分不开的。同时还要谢谢我同组的同学们,一个人势单力薄,要完成这样一个复杂的系统,没有大家的通力合作,显然不太现实。在同学们的帮助下,才成就了我的一些小小的成功,通过大家的交流,也使得我学到了不少的知识。可以说没有组员的共同努力,我这个组长不可能这么顺利的完成课题。
经历了这次的课程设计,终于在老师规定的时间内完成了预定的设计要求,达到了预期的目的,完成了老师布置的任务,在此次设计的过程中,经过组员的共同努力,由
最初的一无所知,然后慢慢熟悉,稳扎稳打的进行设计修改,使我们对课题有了全面的理解。
这次设计是对以前所学知识的回顾和综合运用,使得我们对所学知识进行了综合应用和拓展。在这次课程设计过程中,我掌握了一般系统设计的方法,同时也对我实践应用能力提出了更高的要求,开拓了视野,拓展了知识面。