欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    课程设计说明书学生信息管理系统设计.doc

    • 资源ID:3993276       资源大小:137.50KB        全文页数:21页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    课程设计说明书学生信息管理系统设计.doc

    摘 要C是一种通用的程序设计语言,C语言在很多方面继承和发展了以往许多高级程序设计语言的成功经验和特色,具有书写格式自由、数据类型丰富、语句功能强大、执行速度快和存储控制能力强等优点。学生信息管理系统设计是关于对学生各种信息管理来设计的一个系统。整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发,完成学生信息管理的全过程,包括创建学生信息、查找学生信息、修改学生信息、插入学生信息、删除学生信息、按平均分或者总分排序、统计学生信息等工作。本课程主要介绍了本课题的开发背景,所要完成的功能和开发的过程。重点说明了系统的设计思路、总体设计、各个功能模块的设计与实现方法。关键词:学生管理系统,C语言,数据结构,Wintc目录摘 要11课题背景的介绍31.1 课题背景31.2 目的32需求分析42.1 数据需求分析42.2 功能需求分析43系统总体设计53.1 系统模块划分53.2 系统模块结构图54系统详细设计64.1 系统主界面设计64.2初始化学生信息64.3查找学生信息74.4删除学生信息94.5更新学生信息114.6排序134.7统计学生信息164.8插入学生信息175系统连编与运行196总 结207参考文献211 课题背景的介绍1.1 课题背景随着网络技术的迅速发展,各种行业纷纷应用网络技术操作和管理。当然学校是一个很大的管理系统,随着学生的大量增加,其管理难度也越来越大,如何对学生的个人信息进行更好的管理,这就是我们研究这个课题的目的。在计算机迅速发展的今天,将计算机这一信息处理器应用于学生的个人信息管理已是势必所然,而且这也将学生信息管理带来前所未有的改变。采用计算机对学生的信息管理是信息科学化和现代化的重要标志,它也给各大高校带来了明显的社会效益。主要体现在:极大地提高了管理工作人员的工作效率,大大地减少了以往的资料室所存在的各种弊端,同时也加强和规范学习对于学生信息的管理。为了能够更好的来实现对学生信息的管理,通过对学生信息管理日常工作的详细调查,搜集了大量的资料,从系统结构的组织,功能的实现,技术的要求以及可行性等多方面进行考虑,认为本课题是一个适应现今学校学生个人信息管理需求的计算机信息管理系统,具有一定的实际开发价值和使用价值。1.2 目的本课题运用C语言进行开发,C语言能够简单的进行编译一些程序,来实现对一些问题的解决。它虽然比较简单的处理一些问题,但却有更高的效率。它能够被大多数用户所接受,因为它能够呈现出清晰的界面,是人们能够很好的理解。能在一些方面给人们更好的服务,成为人们的好帮手。经过这一个学期对数据结构的学习,我们都学到了不少东西,可能有些学的还不够理想,但无论如何这些知识都为我们的下一步学习打下了坚实的基础。做这么一个课程设计,一方面是为了检查我们一个学期以来的学习成果,另一方面也是为了让我们进一步的掌握和运用它,同时也让我们认清自己的不足之处和薄弱环节,加以弥补和加强。2 需求分析随着学校规模的发展扩大,学校要向着大型化,规模化发展,而对于学生信息管理系统有关的信息随之增加。在这种情况下单靠人工来处理学生的信息不但显得大不从心,而且极容易出错。因此,需要开发学生管理系统,该系统可以实现由计算机代替人工执行一系列复杂而繁琐的操作,使得学校管理人员可以轻松快捷的完成学生信息管理的任务。2.1 数据需求分析本系统的主要数据是学生信息。学生信息包括:学生学号,姓名,性别,语文成绩,数学成绩,英语成绩,平均成绩,总成绩等。2.2 功能需求分析本系统主要实现对学生成绩信息进行管理,需要实现以下几个方面的管理功能:(1)创建学生信息:录入学生的信息。(2)查找学生信息:按学号、姓名查找。(3)删除学生信息;按学号、姓名删除。(4)更新学生信息:找到要修改的学号,修改相应信息。(5)排序学生信息:按某科目或者总分排序。(6)统计学生信息:统计及格和优秀人数。(7)插入学生信息:插入一个新的学生。3 系统总体设计3.1 系统模块划分本系统主要是对学生信息的管理,包括了有关学生信息的创建、查询、删除、更新、排序、统计、插入等功能。整个系统分为以下几个模块。1、欢迎界面模块 本模块提供欢迎界面的信息输出模式。2、创建模块本模块用于创建学生的信息,包括学生的学号、姓名、性别、语文成绩、数学成绩、英语成绩、平均成绩、总成绩。3、查询模块 本模块用于查询学生的信息,按学号或姓名查询等。4、删除模块 本模块用于删除学生的信息,按学号或姓名删除等。5、更新本模块 用于根据输入要查询的学号来修改其相应的信息。6、排序模块 本模块将学生成绩按平均分或者总分排序。7、统计模块 本模块用于统计各科目及格和优秀的人数。3.2 系统模块结构图学生信息管理系统更新信息排序删除信息按学号删除根据学号更新按平均分排序统计信息查询信息按学号查找按姓名查找按姓名删除按总分排序及格人数优秀人数根据系统功能设计,对应的系统模块结构图如图1所示:图1 系统模块结构图4 系统详细设计4.1 系统主界面设计统过对该系统设计的了解与讨论,同时也为了广大使用者的方便与快捷。我们最后设计了这样的一个界面。首先要让使用者明白怎样使用此系统。这就需要通过界面来给他们一个清晰而明白的空间。而我们设计的这个界面恰好符合了这一要求。通过调用界面函数来使使用者能够很方便的进行查询、删除、更新等操作。界面函数如下:void jm() printf(" *n *nn"); printf(" 欢迎进入学生信息管理系统nnn"); printf(" 1: 查询 2: 删除 3: 更新n"); printf(" 4: 排序 5: 统计 6: 插入nnn" ); printf(" 制作者:付利娟n"); printf(" 和培培n"); printf(" 陈珊珊n"); printf(" 帕提古丽n"); printf(" *n *nn"); 4.2初始化学生信息学生信息管理系统的主界面提供进入系统其他功能模块的方法,使用户能方便地调用查询、 删除、更新、排序、统计、插入。其代码如下:/* 初始化顺序表 */SeqList SeqListInit( )SeqList L;int i,n;scanf("%d",&n); L.length=n; for(i=0;i<n;i+) scanf ("%d",&L.datai.xh); scanf("%s",L.datai.name); scanf("%s",L.datai.sex); scanf("%d",&L.datai.chinese); scanf("%d",&L.datai.math); scanf("%d",&L.datai.english); scanf("%d",&L.datai.ave); scanf("%d",&L.datai.all);return L; 4.3查找学生信息在初始化线性表后,在界面上输入1进入查询模块,选择你要进行的操作:按姓名查找或按学号查找。其代码如下:chazhao(SeqList L) int i=0,a,y; char name10; printf(" 1;按姓名查找n 2;按学号查找n"); printf("请选择;n"); scanf("%d",&a); if (a=1) printf("请输入你要查找的名字;n"); scanf("%s",name); while(i<=L.length-1)&&(strcmp(name,L.datai.name)!=0) i+; if(i=L.length printf("没有这个学生!n"); else printf("学号 姓名 性别 语文 数学 英语 平均 总分n"); printf("%d ",L.datai.xh); printf("%s ",L.datai.name); printf("%s ",L.datai.sex); printf("%d ",L.datai.chinese); printf("%d ",L.datai.math); printf("%d ",L.datai.english); printf("%d ",L.datai.ave); printf("%d n",L.datai.all); else if(a=2) printf("请输入你要查找的学号;n"); scanf("%d",&y); while(i<=L.length-1)&&(L.datai.xh!=y) i+; if(i=L.length) printf("没有这个学生!n"); else printf("%d ",L.datai.xh); printf("%s ",L.datai.name); printf("%s ",L.datai.sex); printf("%d ",L.datai.chinese); printf("%d ",L.datai.math); printf("%d ",L.datai.english); printf("%d ",L.datai.ave); printf("%d n",L.datai.all); else if (a=0) jm();4.4删除学生信息 在初始化线性表后,在界面上输入2进入删除模块,选择你要进行的操作:根据学号删除或根据姓名删除。其代码如下: SeqList Delete(SeqList L) int i=0; int a,y; char name10; printf(" 1;根据学号删除信息n 2;根据姓名删除信息n"); printf ("请选择;n"); scanf("%d",&a); if (a=1) printf ("请输入你要删除的学号;n"); scanf("%d",&y); while(i<=L.length-1)&&(L.datai.xh!=y) i+; if(i=L.length)printf("feifa shanchu!n"); else if(i=L.length-1) L.length-; else for(;i<L.length;i+) L.datai.xh=L.datai+1.xh; strcpy( L.datai.name,L.datai+1.name); strcpy( L.datai.sex,L.datai+1.sex); L.datai.chinese=L.datai+1.chinese;L.datai.math=L.datai+1.math; L.datai.english=L.datai+1.english; L.datai.ave=L.datai+1.ave; L.datai.all=L.datai+1.all; L.length-; return L; else if (a=2) printf("请输入你要删除的名字n"); scanf ("%s",name); while(i<=L.length-1)&&(strcmp(name,L.datai.name)!=0) i+; if(i=L.length) printf("feifa shanchu!n"); else if(i=L.length-1) L.length-; else for(;i<L.length;i+) L.datai.xh=L.datai+1.xh; strcpy( L.datai.name,L.datai+1.name); strcpy( L.datai.sex,L.datai+1.sex); L.datai.chinese=L.datai+1.chinese; L.datai.math=L.datai+1.math; L.datai.english=L.datai+1.english; L.datai.ave=L.datai+1.ave; L.datai.all=L.datai+1.all; L.length-; return L; else if (a=0)jm(); 4.5更新学生信息由于学生人员的不断更新,针对其相应的学生信息系统也要有相应的改变,这样会比较方便对信息的查询,删除,和统计等其他操作。同时也方便了校领导以及其他工作人员操作的方便。/*更新学号为a的学生的成绩*/update(SeqList L,int m) int i=0,n,a; printf("1;语文 2;数学 3;英语n"); printf ("输入你想修改的科目;n"); scanf("%d",&a); if (a=1) printf("输入你要修改的学生的语文成绩:n",n); scanf("%d",&n); while (L.datai.xh!=m)&&(i<L.length) i+; if(i=L.length) printf("没有该学生n"); else L.datai.chinese=n; printf("%d ",L.datai.xh); printf("%s ",L.datai.name); printf("%s ",L.datai.sex); printf("%d ",L.datai.chinese); printf("%d ",L.datai.math); printf("%d ",L.datai.english); printf("%d ",L.datai.ave); printf("%d n",L.datai.all); else if (a=2) printf("输入你要修改的学生的数学成绩:n",n); scanf("%d",&n); while (L.datai.xh!=m)&&(i<L.length) i+; if(i=L.length) printf("没有该学生n"); else L.datai.math=n; printf("%d ",L.datai.xh); printf("%s ",L.datai.name); printf("%s ",L.datai.sex); printf("%d ",L.datai.chinese); printf("%d ",L.datai.math); printf("%d ",L.datai.english); printf("%d ",L.datai.ave); printf("%d n",L.datai.all); else if (a=3) printf("输入你要修改的学生的英语成绩:n",n); scanf("%d",&n); while (L.datai.xh!=m)&&(i<L.length) i+; if(i=L.length) printf("没有该学生n"); else L.datai.english=n; printf("%d ",L.datai.xh); printf("%s ",L.datai.name); printf("%s ",L.datai.sex); printf("%d ",L.datai.chinese); printf("%d ",L.datai.math); printf("%d ",L.datai.english); printf("%d ",L.datai.ave); printf("%d n",L.datai.all); else if(a=0) jm();4.6排序当面对如此多的学生信息时,如果要更加明了的观察和分析学生的成绩信息时,排序是必然的,因为当你根据实际情况对一个字段进行排序后,能够清楚直观的筛选所要的信息,比如说:评奖学金,三好学生,优秀干部,优秀团员等一些评选活动。/*根据选择的情况排序*/paixu(SeqList L) int i,j,y,m,n,h,t,k,a;char p10,r10; printf("1;平均成绩 2;总分n");printf("请输入你要排序的种类的:n");scanf("%d",&a); if (a=1) for(j=0;j<L.length-1;j+) for(i=0;i<L.length-j-1;i+) if(L.datai.ave>L.datai+1.ave) y=L.datai.xh; L.datai.xh=L.datai+1.xh; L.datai+1.xh=y; /*学号*/ strcpy(p10,L.datai.name); strcpy(L.datai.name,L.datai+1.name); strcpy(L.datai+1.name,p10);/*名字*/strcpy(r10,L.datai.sex); strcpy(L.datai.sex,L.datai+1.sex); strcpy(L.datai+1.sex,r10); /*性别*/m=L.datai.chinese; L.datai.chinese=L.datai+1.chinese; L.datai+1.chinese=m; /*语文*/n=L.datai.math; L.datai.math=L.datai+1.math; L.datai+1.math=n; /*数学*/ k=L.datai.english; L.datai.english=L.datai+1.english; L.datai+1.english=k; /*英语*/t=L.datai.ave; L.datai.ave=L.datai+1.ave; L.datai+1.ave=t; /*平均*/h=L.datai.all; L.datai.all=L.datai+1.all; L.datai+1.all=h; /*总分*/ for(i=0;i<L.length;i+) printf("%d ",L.datai.xh); printf("%s ",L.datai.name); printf("%s ",L.datai.sex); printf("%d ",L.datai.chinese); printf("%d ",L.datai.math); printf("%d ",L.datai.english); printf("%d ",L.datai.ave); printf("%d n",L.datai.all); else if(a=2) for(j=0;j<L.length-1;j+) for(i=0;i<L.length-j-1;i+) if(L.datai.all>L.datai+1.all) y=L.datai.xh; L.datai.xh=L.datai+1.xh; L.datai+1.xh=y; /*学号*/ strcpy(p10,L.datai.name); strcpy(L.datai.name,L.datai+1.name); strcpy(L.datai+1.name,p10);/*名字*/strcpy(r10,L.datai.sex); strcpy(L.datai.sex,L.datai+1.sex); strcpy(L.datai+1.sex,r10); /*性别*/ m=L.datai.chinese; L.datai.chinese=L.datai+1.chinese; L.datai+1.chinese=m; /*语文*/n=L.datai.math; L.datai.math=L.datai+1.math; L.datai+1.math=n; /*数学*/ k=L.datai.english; L.datai.english=L.datai+1.english; L.datai+1.english=k; /*英语*/ t=L.datai.ave; L.datai.ave=L.datai+1.ave; L.datai+1.ave=t; /*平均*/h=L.datai.all; L.datai.all=L.datai+1.all; L.datai+1.all=h; /*总分*/ for(i=0;i<L.length;i+) printf("%d ",L.datai.xh); printf("%s ",L.datai.name); printf("%s ",L.datai.sex); printf("%d ",L.datai.chinese); printf("%d ",L.datai.math); printf("%d ",L.datai.english); printf("%d ",L.datai.ave);待添加的隐藏文字内容3 printf("%d n",L.datai.all); else if(a=0) jm();4.7统计学生信息 过去的人工统计既浪费时间而且错误率很高,这不仅影响了学校的工作效率,而且还影响了整个学生工作的开展。比如具体的说:统计男生,女生,以及各个年级段的学生的人数,通过此系统能够简单方便并且迅速的统计出来,在时间这方面已经节约很多了,这也大大提高了学校的办事效率和质量。/*统计学生信息*/tongji(SeqList L) int i=0,j=0,k,m=0; printf("1.语文 2.数学 3.英语n"); printf("请输入你要统计的科目:n");scanf("%d",&k); if(k=1) while(i<L.length) if(L.datai.chinese<60) i+;j+; else if(L.datai.chinese>80) i+;m+; else i+;printf("语文不及格人数为:%d个n",j);printf("语文优秀人数为:%d个n",m); else if(k=2) while(i<L.length)if(L.datai.math<60) i+; j+; else if(L.datai.math>80) i+; m+; else i+; printf("数学不及格人数为:%d个n",j); printf("数学优秀人数为:%d个n",m); else if(k=3) while(i<L.length) if(L.datai.english<60) i+; j+; else if(L.datai.english>80) i+; m+; else i+; printf("英语不及格人数为:%d个n",j); printf("英语优秀人数为:%d个n",m); else if(k=0) jm();4.8插入学生信息对一个完善的学生信息来说,插入也是一个不可缺少的模块。能够不断地更新,追加信息,当完成插入信息以后,对其信息等各方面的管理统计都有一个很好的把握,同时也方便了学校其他方面工作的开展。/*在第i个位置插入学生信息*/SeqList insert (SeqList L,int i) int j,xh,chinese,math,english,ave,all; char name10,sex10; if(i<=0)|(i>L.length+1) printf("非法插入n");else printf("请输入你要插入的学生的信息:n"); scanf ("%d",&xh); scanf("%s",name); scanf("%s",sex); scanf("%d",&chinese); scanf("%d",&math); scanf("%d",&english); scanf("%d",&ave); scanf("%d",&all); while(i!=L.length+1) for (j=L.length;j>=i-1;j-) L.dataj.xh=L.dataj-1.xh; strcpy( L.dataj.name,L.dataj-1.name); strcpy( L.dataj.sex,L.dataj-1.sex); L.dataj.chinese=L.dataj-1.chinese; L.dataj.math=L.dataj-1.math; L.dataj.english=L.dataj-1.english; L.dataj.ave=L.dataj-1.ave; L.dataj.all=L.dataj-1.all; L.datai-1.xh=xh; strcpy( L.datai-1.name,name); strcpy( L.datai-1.sex,sex); L.datai-1.chinese=chinese; L.datai-1.math=math; L.datai-1.english=english; L.datai-1.ave=ave; L.datai-1.all=all; L.length+; return L; 5 系统连编与运行一个应用系统设计和创建完成后,还必须进行连编,以便生成一个可执行文件供最终用户使用。连编完成后还要运行,以检查整个系统的完整性和准确性,同时还可增加程序代码的保密性。(1)先进行编译,编译过之后再选择超级工具集然后选择中文DOS。如图9所示:按图中所示运行程序,生成可执行文件.exe格式的文件。6 总 结本设计开发的工资管理系统从最后的测试结果来看,基本上实现了工资管理系统的几大功能:成绩信息录入、成绩信息的管理等。并达到操作过程中的直观、方便、实用、安全等要求。系统采用模块化程序设计的方法,既便于系统功能的组合和修改,又便于未参与系统开发的技术维护人员补充和维护。本系统经过测试,证明其运行是稳定、可靠的。但在系统设计中也也遇到很多的问题,并且本系统的功能还需要不断的完善和改进,在以后空闲时间里逐一进行完善,使系统功能更加完善,使本软件能够更好的为大中型企业服务,创造更大的社会价值。在这次设计过程中,我得到了代文征老师的精心指导,在此,我由衷地感谢代老师!7 参考文献1 谭浩强.C程序设计M.北京:清华大学出版社. 20052 严蔚敏. 数据结构(C语言版) M. 北京:清华大学出版社. 20083 陈雁.数据结构 M.北京:高等教育出版社,2004.

    注意事项

    本文(课程设计说明书学生信息管理系统设计.doc)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开