学生信息管理系统.docx
《学生信息管理系统.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统.docx(27页珍藏版)》请在冰豆网上搜索。
学生信息管理系统
摘要
随着经济的发展,社会的进步,计算机越来越深入到我们日常的工作学习及生活中,成为我们日常生活不可或缺的辅助工具。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已成为人们深刻认识,它已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
现在由于学校规模进一步扩大,学生人数逐渐上升,在学校的学生信息管理中,虽然已经存在许多学生信息管理系统,但由于学校之间的管理差异很信息的不同,各个学校的学生信息管理的要求不一致,这样我们需要根据具体学习的具体要求来开发学生信息管理系统以方便学生管理。
本系统主要对学生各种信息进行处理。
本系统采用C语言编写,设计从实用性出发,设计开发出一个操作简单且符合实际需要的学生信息管理系统。
首先本文介绍了开发背景等前期工作;然后详细讨论了该程序系统的设计与实现过程,设计出一个可以添加、修改、查询的学生信息管理系统;最后,通过测试分析,力求将学到的只是在学生信息管理系统的得到全面运用,并使系统在实际的操作中能按照设计的要求安全有效的正确运行。
关键字:
学生信息;信息管理;信息开发;C语言
Abstract:
Withthedevelopmentofeconomy,theprogressofthesociety,thecomputerismoreandmoredeepintoourdailyworkstudyandlife,becomeourdailylifeindispensableaid.Alongwithscienceandtechnologyunceasingenhancement,thecomputerscienceismaturedayafterday,itsformidablefunctionhasbecomeprofoundunderstanding,ithasprofoundlyknownforthepeople,itenteredthehumansocietyeachdomainandisplayingthemoreandmoreimportantrole.Nowbecauseofschoolscale,further,thenumberofstudentsincreasedgraduallyintheschoolstudentinformationmanagement,althoughtherehavebeenmanystudentsinformationmanagementsystem,butduetotheschoolofmanagementbetweendifferenceisverydifferentinformation,eachschoolstudentsinformationmanagement'srequestisnotconsistent,soweneedaccordingtothespecificrequirementsofthespecificlearningtodevelopstudents'informationmanagementsystemforstudents'management.Thissystemmainlyonstudents'variousinformationprocessing.ThesystemUSEStheClanguage,anddesignfrompracticalsetout,designanddevelopmentofasimpleoperationandaccordwith
theactualrequirementofthestudents'informationmanagementsystem.Atfirstthispaperintroducesthedevelopmentbackgroundofthework;Thendiscussedindetailtheprogramdesignandrealizationofthesystemprocess,designacanadd,modify,andinquiresthestudentinformationmanagementsystem;Finally,throughthetestandanalysis,andstrivetowilllearnonlyinthestudentinformationmanagementsystemforcomprehensiveutilization,andmakethesystemintheactualoperationcanbeaccordingtothedesignrequirementsofthepropolyoperationofthesafeandeffective.
Keywords:
studentinformation;managementinformation;development;Clanguage
目录
引言...................................................1
1绪论................................................1
1.1课题背景.............................................1
1.2.目的的背景和意义.......................................1
1.3.项目开发的目标........................................2
1.4.开发工具的选择........................................2
2.设计任务分析........................................2
2.1.设计目的.............................................2
2.2.要求与功能...........................................2
3具体设计方案......................................2
3.1.总体设计.............................................2
3.2.详细设计.............................................5
3.2.1.函数入口说明........................................5
3.2.2.调用关系...........................................5
3.2.3入口参数...........................................6
3.3.调试与测试...........................................6
4.心得体会...........................................19
5.谢辞...............................................20
6.参考文献...........................................21
7.附录...............................................20
1引言
教育是科学之本,随着我国九年义务教育的普及和当前全球范围的知识经济的突飞猛进,一套高质量高效率的学生信息管理系统更是必不可少,当前不仅是我国还是海外其他国家,均把学校教育放在战略地位,投入巨大的人力物力研制各种教育模式,其中,学生信息管理系统的开发是首当其冲。
一套好的管理系统是良好学习环境的组织者。
由于信息系统数据量大,传统的人工操作不仅效率低,准确性不高,而且其完整性,保密性均得不到保证。
毋庸置疑,切实有效地把计算机管理引入学校教务管理中,对于促进学校管理制度,提高学校教学质量与办学水平有着显著意义。
本学生信息管理系统才用VisualC语言编写,此信息管理系统可以单机操作,也可在局域网中联机操作,可以实现学生信息的高效查询,修改,删除等操作,使学生信息关系系统化,规范化和自动化。
1.绪论
1.1课题背景
该项目开发的软件为学校学生信息管理系统软件,是鉴于目前学校学生人数剧增,学生信息呈爆炸性增长的前提下,学校对学生信息管理的自动化与准确化的要求日益强烈的背景下构思出来的,该软件设计完成后可用于学校,学院等教育单位的学生信息的管理.目前社会上信息管理系统发展飞快,各个企事业单位都引入了信息管理软件来管理自己日益增长的各种信息,学生管理系统也是有了很大的发展,商业化的学生信息管理软件也不少.但本系统完全独立开发,力求使系统功能简洁明了,功能齐全且易于操作。
1.2目的背景与意义
学生信息管理系统是一个教育单位不可缺少的部分。
一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。
所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。
但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:
效率低、保密性差,人工的大量浪费;另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着来越重要的作用。
作为计算机应用的一部分,使用计算机对学校的各类信息进行管理,具有手工管理所无法比拟的优点.例如:
检索迅速、查询方便、效率高、可靠性好、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高学校信息管理的效率,也是一个单位科学化、正规化管理,与世界接轨的重要条件。
1.3项目开发的目标
建立学生信息管理系统,采用计算机对学生信息进行管理,进一步提高办学效益和现代化水平。
帮助广大教师提高工作效率,实现学生信息管理工作流程的系统化、规范化和自动化。
1.4开发工具的选择
现在,市场上可以选购的应用开发产品很多,流行的也有数十种。
目前在我国市场上最为流行、使用最多、最为先进的可用作企业级开发工具的产品有:
Microsoft公司的VisualC++6.0。
本系统在MicrosoftVisualC++6.0下开发。
2.设计任务分析
2.1.设计目的
学生信息管理系统——学生信息包括:
学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。
2.2.要求与功能
1系统以菜单方式工作
2学生信息录入功能---输入
3学生信息浏览功能---输出
4查询、排序功能---算法
按学号查询
按姓名查询
5学生信息的删除与修改(可选项)
3.具体设计方案
3.1.总体设计:
程序设计组成框图:
学生信息录入
信息修改
主菜单学生信息浏览学号查询
信息删除学生信息查询
信息修改
姓名查询
信息删除
流程图:
3.2.详细设计:
3.2.1.函数入口说明
pr()输出主菜单
pr2()输出检索菜单界面
fileopen()文件操作:
打开
filesave()文件操作:
保存
editname(intn)编辑子菜单:
对姓名编辑
editage(intn)编辑子菜单:
对年龄编辑
editsex(intn)编辑子菜单:
对性别编辑
editbir(intn)编辑子菜单:
对出生年月编辑
editadd(intn)编辑子菜单:
对住址编辑
edittel(intn)编辑子菜单:
对电话进行编辑
editemail(intn)编辑子菜单:
对电子邮件地址编辑
last(intn)显示翻页致末尾的信息
edit(intn)信息编辑函数
del(intn)删除信息的函数
editpr(intn)输出编辑界面
jsid()检索:
按学号
jsname()检索:
按姓名
writeinfo()录入、添加信息
viewinfo()学生信息查看
main()主函数
3.2.2.调用关系
writeinfo()
fileopen()
editname(intn)
editage(intn)
editsex(intn)
pr()
editbir(intn)
edit(intn)
viewinfo()
main()
editadd(intn)
del(intn)
editpr(intn)
jsid()
edit(intn)
(同上)
edittel(intn)
editemail(intn)
del(intn)
pr2()
editpr(intn)
jsname()
filesave()
3.2.3参数说明
editname(intn)、editage(intn)、editsex(intn)、editbir(intn)、editadd(intn)、edittel(intn)、editemail(intn)、last(intn)、edit(intn)、del(intn)、editpr(intn)函数中的n都为检索中确定的学生数组下标。
3.3.调试与测试:
1.调用pr2()函数(检索界面)一闪而过。
解决方法:
添加getch()语句使程序暂停,并按任意键返回上级菜单。
2.无法有效的控制输出函数循环终止。
解决方法:
添加全局变量“stunum”,使用该全局变量来记录学生总数,从而控制输出循环的次数。
3.查询函数数据量过多时同时输出,先输出的内容无法查看,或需用户自行查看。
解决方法:
添加getchar()语句使程序暂停,当用户按Enter时继续。
4.文件在打开和保存时有问题。
解决方法:
调整文件的打开方式,从原来的单纯的w+修改为添加一个if语句,当没有文件时执行w+的操作,否则执行r+。
避免了原存储文件被覆盖的问题。
4.心得体会
通过此次课程设计,我基本上对制作一个相对来说比较完整的程序有了一定的认识和了解。
经过这段时间的程序设计,不但巩固C语言的知识,还增加了我们的动手能力。
学生信息管理系统,涉及到结构体,链表,文件和循环的知识,所以尤其对这几个方面有所加深和巩固。
其中又包括结构体的赋值,写到文件中。
从文件中赋值给结构体。
但这个系统也存在不足,比如使用了goto函数,导致读程序时有些混乱。
今后我会继续深入学习C语言,并将此次课程设计的学习的到知识应用到其他学科的课程设计和毕业设计中。
5.谢辞
首先感谢学院给我们提供这样的实践动手机会,并通过课程设计使我们能够有机会将书本上学到的知识运用到的实际中去。
从接受课题到现在完成毕业设计论文,衷心的感谢我的指导老师马杰老师给予了精心的指导和热情的帮助,这样使得我得以顺利的完成课程设计工作,谨此向老师表示衷心的感谢和崇高的敬意
6.参考文献
【1】谭浩强著,C语言程序设计(第二版)清华大学出版社,2008.11
【2】StephenPrata著CPrimerpluse(第五版)人民邮电出版社,,2012.4
【3】李云清、杨庆红、揭安全编著数据结构(C语言版)第二版人民邮电出版社,2009.8
【4】王珊、萨师煊著数据库系统导论(第四版)高等教育出版社,2009.11
【5】(美)科曼等著算法导论(第二版)机械工业出版社,2007.3
7.附录
3.4.程序清单和执行结果:
#include
#include
#include
#include
intstunum=0;
structstudent
{
intid;
charname[30];
intage;
charsex[4];
charbirthday[9];
charadd[80];
chartel[15];
charemail[25];
}stu[100];
voidpr()
{
system("cls");//清屏
printf("******学生信息管理系统******");
printf("\n----------主菜单----------");
printf("\n您想要:
");
printf("\n1.录入学生信息");
printf("\n2.浏览学生信息");
printf("\n3.检索学生信息");
printf("\n4.退出信息管理");
printf("\n****************************\n");
}
voidpr2()
{
voidjsid();
voidjsname();
inta;
charch;
while(a)
{
system("cls");
printf("******学生信息管理系统******");
printf("\n----------检索----------");
printf("\n您想要:
");
printf("\n1.按学号检索");
printf("\n2.按姓名检索");
printf("\n3.返回主菜单");
printf("\n****************************\n");
ch=getchar();
switch(ch)
{
case'1':
jsid();break;
case'2':
jsname();break;
case'3':
a=0;break;
}
}
}
voidfileopen()
{
FILE*fp;
intn;
if((fp=fopen("data","r+"))==NULL)
fp=fopen("data","w+");
for(n=0;n<100;n++)
fread(&stu[n],sizeof(structstudent),1,fp);
fclose(fp);
}
voidfilesave()
{
intn;
FILE*fp;
fp=fopen("data","r+");
for(n=0;n<100;n++)
fwrite(&stu[n],sizeof(structstudent),1,fp);
fclose(fp);
}
voideditname(intn)
{
printf("\n新姓名:
");
scanf("%s",stu[n].name);
}
voideditage(intn)
{
printf("\n新年龄:
");
scanf("%d",&stu[n].age);
}
voideditsex(intn)
{
printf("\n新性别:
");
scanf("%s",stu[n].sex);
}
voideditbir(intn)
{
printf("\n新出生年月");
scanf("%s",stu[n].birthday);
}
voideditadd(intn)
{
printf("\n新地址:
");
scanf("%s",stu[n].add);
}
voidedittel(intn)
{
printf("\n新电话:
");
scanf("%s",stu[n].tel);
}
voideditemail(intn)
{
printf("\n新E-mail:
");
scanf("%s",stu[n].email);
}
voidlast(n)
{
//if(n==stunum)
system("cls");
printf("******学生信息管理系统******");
printf("\n----------检索----------");
printf("\n已检索到末尾。
");
printf("\nPressanykeytocontinue..");
printf("\n****************************\n");
}
voidedit(intn)
{
charch;
inta=1,b;
while(a)
{
system("cls");
printf("******学生信息管理系统******");
printf("\n----------修改----------");
printf("\n请输入你想修改的内容:
");
printf("\n1.姓名2.年龄3.性别4.出生年月5.地址6.电话7.E-mail\n");
printf("\n****************************\n");
getchar();
ch=getchar();
switch(ch)
{
case'1':
editname(n);break;
case'2':
editage(n);break;
case'3':
editsex(n);break;
case'4':
editbir(n);break;
case'5':
editadd(n);break;
case'6':
edittel(n);break;
case'7':
editemail(n);break;
}
b=1;
while(b)
{
printf("\n确认吗?
(y/n)");
getchar();
ch=getchar();
switch(ch)
{
case'Y':
case'y':
b=0;a=0;break;
case'N':
case'n':
b=0;break;
}
}
}
}
voiddel(intn)
{
inta;
for(a=n;a{
strcpy(stu[a].name,stu[a+1].name);//拷贝后一个学生信息到前