数据结构课程设计-学生成绩管理系统_第1页
数据结构课程设计-学生成绩管理系统_第2页
数据结构课程设计-学生成绩管理系统_第3页
数据结构课程设计-学生成绩管理系统_第4页
数据结构课程设计-学生成绩管理系统_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、淮阴工学院数据结构课程设计报告选题名称:学生成绩管理系统系(院):数理学院专业:信息和计算科学班级:计科1102班姓名:徐连喜学号:1104101233指导教师:周海岩学年学期:20112012学年 第 1 学期2012 年_06_月 _06_ 日【摘要】21世纪,科学技术突飞猛进,经济知识和信息产业初见端倪,特别是信息 技术和网络技术的讯速发展和广泛使用,对社会的政治,经济,军事,文化等领域产生越来越深刻。学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要。 本论文叙述到的学生成绩管理系 统是用 IIS+ASP 网页编程 +ACCESS 数据库 +D

2、REAMWEAVER MX 2004+SQL 查 询语言实现的。重点介绍了学生成绩管理系统的实现过程:包括系统分析,系统 调查,功能设计,数据库设计,系统实现,系统测试和调试等。本系统主要功能 有查询学生成绩、单个添加学生成绩、批量添加学生成绩、删除学生成绩、管理 页面和修改管理员密码等内容。【关键词】成绩管理;成绩查询;C+中文摘要OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO1绪论0000000000000000000000000000000000000000000000001.1选题背景000000000000000000000

3、000000000000000000000000001.2需求分析0000000000000000000000000000000000000000000000002总体设计0000000000000000000000000000000000000000000000002.1程序设计组成框图00000000000000000000000000000000000000002.2 模块功能说明000000000000000000000000000000000000000000002.3程序流程图0000000000000000000000000000000000000000000000102.4主要

4、函数之间相互调用0000000000000000000000000000000000000113在设计过程中的感受00000000000000000000000000000000000000012致谢00000000000000000000000000000000000000000000000013参考文献0000000000000000000000000000000000000000000000014附录:源程序清单00000000000151.绪论1.1选题背景为了提高高校学生信息的管理效率,方便对学生信息进行管理、学校里面的 学生和管理员方便去管理和查询学生信息, 如再要进行查询,就得在

5、众多的学生信息中查找自己的成绩信息,面对学院大量的学生信息,怎么可以即时而方便的管理,学生只要登录本系统就可以查找到自己的成绩信息, 而管理员也方便去管 理每学期的学生的成绩信息。建立一个学生信息管理系统,使学生信息管理工作 规范化,系统化,程序化,避免学生管理的随意性,提高信息处理的速度和准确 性,能够及时、准确、有效的查询和修改学生信息是必须而且十分迫切的工作。2.1需求分析学生管理系统功能的信息量大,数据安全性和保密性要求最高。本功能实现 对专业信息、学生信息、教师信息情况信息的管理和统计、课程信息和成绩信息 查看及维护。系统管理员可以浏览、查询、学生的基本信息,能添加、删除和修 改学生

6、信息,这部分功能应该由系统管理员执行, 但是,删除某条专业基本信息 记录时,应实现对该专业的相关信息也级联删除。 并且还应具有查询,并打印输 出的功能设计不同用户的操作权限和登陆方法、对所有用户开放的用户提供学生成绩 信息查询、由于本系统功能实现方面并不太复杂,所以上面只是相关的学生信息 管理查询的总体分析,具体实现就主要体现在学生管理, 教师的管理和课程的管 理这一块,也就是重点实现查询和添加学生信息,以及对成绩信息管理。2 总体设计(1) 程序设计组成框图(2) 模块功能说明1输出功能:完成全部学生记录的显示2查询功能:输入姓名可以查询学生的详细信息3增加功能:增加新学生的信息。4删除功能

7、:删除学生信息。5修改功能:修改学生的错误信息。6保存功能:保存已输入信息。7读取功能:读取已输入信息。8显示功能:按要求显示学生记录。9排序功能:按要求完成对学生信息的排序。10退出系统。(3) 程序流程图(4) 主要函数之间相互调用如下:主函数main ()的调用switch(choice)case 1:Outputl nformati on( );break;case 2:Desplay In foBystude ntName();break;case 3:p=MallocNode();Get In formati on( p); I nsertOn eNode(p); break;总

8、结首先经过一周的编程实习,并在后一段的报告总结,我对数据结 构这门科有新的认识,本人实在是获益不浅!要想编写一个准确、高 效并有使用价值的程序,一定先要对课本知识熟悉,还要掌握必要的 上机操作能力,写程序其实很容易而关键在于调试程序。这次设计,让我重新掌握了数据结构,而且还得到了用数据结构解决实际问题的 宝贵经验。其次,通过此次编程我也发现了自己在学习中的错误和不足,复习了以前学过的知识。同时也学到了一些没学过的知识, 让我从中收 益非浅,也为期末测试准备了一下!更重要的是培养了独立思考问题 和解决问题的能力,熟悉了一些基本操作和解决问题的方法!致谢因为初次接触等原因此次设计遇到了许多问题 ,

9、我深刻体会到老 师发挥的重要作用,数据结构程序对我们来说比较难,在匆忙的学习 中更是难上加难,似乎觉得自己仅是个匆匆过客,但在老师的帮助下我 学会了如何调试,如何查找系统没有提示的错误,最后终于排除万难把 程序搞定,体会到原来编程也挺有意思的快感我想没有老师的帮助我 很难在短期内把程序设计做的这样好,在此特地感谢老师的帮助。参考文献1 李丽娟.C 语言程序设计教程(第二版).北京:人民邮 电出版社20092 刁成嘉.C语言程序设计论文D.北京:清华大学出版社2004杨文军,杨柳.C语言程序设计教程M.北京:清华大学出版社20104周启海.C语言程序设计报告R.北京:中国水利工程出 版社2005

10、 谭浩强.C 程序设计(第三版)M.北京:清华大学出版 社 2005附录源程序清单#i nclude#in clude#i nclude#i ncludetypedef struct STUDENTchar studentNumber10;/*学生学号 */char studentName20;/*学生姓名 */char className20;/*班级名称 */char yearName20;/* 学期名称 */float mark1;/* 第 1 门成绩 */float mark2;/* 第 2 门成绩 */float mark3;/* 第 3 门成绩 */struct STUDENT *

11、n ext;STUDENT;STUDENT *headLink;/* 链表表头指针 */*以下是函数声明*/void ReadI nfoFo rmFile(void);void DesplayMe nu( void);void CreateHeadLi nk(void);STUDENT *MallocNode(void);void GetI nformatio n( STUDENT *t);void Output In formati on(v oid);void DesplayI nfoBystude ntName(void);void Desplay On eNode(STUDENT *t

12、);void In sert On eNode(STUDENT *t);void DeleteNodeBystude ntNumber(void);void Cha ngeMarkByName(void);void Cha ngeMarkByNumber(void);void SaveL in kToFile(void);void DesplayMarkSegme nt(void);void CompositorByTotalMark(void);int choose;/*用于接受用户的选择*/*主函数*/void mai n()CreateHeadLi nk();Read InfoFo rm

13、File();DesplayMe nu();/*函数功能:从文件中读学生信息到链表中*/void ReadI nfoFo rmFile(void)FILE *fp;STUDENT *p;fp=fope n( stude nt.txt,r);if(!fp)printf(文件不存在n);return;p=MallocNode();while(fsca nf(fp,%s%s%s%f%f%f,p-stude ntNumber,p-stude ntName,p-className,&(p-mark1),&(p-mark2),&(p-mark3)0)In sertO neNode(p);p=MallocN

14、ode();fclose(fp);/*函数功能:显示菜单,根据用户的输入完成相应的功能*/void DesplayMe nu( void)STUDENT *p;printf( 请选择相应功能 nn);prin tf(| 1按班级输出学生成绩单|n);printf(| 2按姓名查询 |n);printf(| 3增加学生 |n);printf(| 4删除学生 |n);prin tf(| 5按班级修改学生成绩|n);prin tf(| 6按学期修改学生成绩|n);printf(| 7保存所有学生信息|n);prin tf(| 8显示不及格学生成绩|n);prin tf(| 9按平均成绩排序并输出绩|

15、n);prin tf(| 10 退出 |nn);seanf(%d,&choose);/*取得用户的选择 */switch(choose)case 1:Outputlnformation();/*显示所有学生的信息*/break;case 2:Desplayl nfoBystude ntName();break;case 3:p=MallocNode();/* 先申请一个新结点*/Getl nformatio n(p);/* 要求用户输入信息到新结点中*/InsertOneNode(p);/* 将新结点加到链表中*/ break;case 4:DeleteNodeBystude ntNumber

16、();/* 根据用户输入的学号删除该学生 */ break;case 5:Cha ngeMarkByName();/*根据用户输入的姓名修改学生成绩 */ break;case 6:ChangeMarkByNumber();/*根据用户输入的学号修改学生成绩 */ break;case 7:SaveLinkToFile();/*保存数据 */break;case 8:DesplayMarkSegment();/*显示不及格的学生成绩*/ break;case 9:CompositorByTotalMark();/* 按平均成绩排序 */ break;case 10:SaveLinkToFile

17、();/*保存数据后再退出*/free(headL in k); break;default:break;DesplayMenu();/* 递归调用 */*函数功能:建立链表表头*/void CreateHeadLi nk(void)STUDENT *p; p=(STUDENT*)malloc(sizeof(STUDENT); headL in k=p;p- next=NULL;/*函数功能:申请一个新结点,并将其初始化*/STUDENT *MallocNode(void)STUDENT *p;int i;p=(STUDENT*)malloc(sizeof(STUDENT); if(p=NUL

18、L)return NULL;for(i=0;istude ntNumberi=0;for(i=0;istude ntNamei=0;for(i=0;iclassNamei=0;p-mark1=0.0;p-mark2=0.0;p-mark3=0.0;p- next=NULL;return p;/*函数功能:取得用户输入的学生信息*/void GetI nformatio n( STUDENT *t) printf(请输入学生学号:n);sca nf(%s,t-stude ntNumber);printf(请输入学生姓名:n);sca nf(%s,t-stude ntName);printf(请输

19、入该生所在班级:n);sca nf(%s,t-className);printf(请输入第1门成绩:n);sca nf(%f,&(t-mark1);printf(请输入第2门成绩:n);sea nf(%f,&(t-mark2);printf(请输入第3门成绩:n);sea nf(%f,&(t-mark3);/*函数功能:在链表的结尾处增加一个结点*/void In sert On eNode(STUDENT *t)STUDENT *p;p=headL ink;while(p-n ext)p=p-n ext;p-n ext=t;/*函数功能:根据用户输入的学生姓名显示该学生的信息*/void D

20、esplay In foBystude ntName(void)STUDENT *p;char stude ntName20;char flag=0;p=headL ink-n ext;printf(请输入学生姓名:n);sca nf(%s,stude ntName);while(p)if(strcmp(p-stude ntName,stude ntName)=0)printf(学号t姓名t班级t成绩1t成绩1t成绩3t总成绩t平均成绩nn);DesplayO neNode(p);flag=1;break;p=p-n ext;if(!flag)prin tf(对不起,不存在姓名为 %s的学生n

21、,stude ntName);*函数功能:输出一个结点的信息*/void Desplay On eNode(STUDENT *t)prin tf(%st,t-stude ntNumber);prin tf(%st,t-stude ntName);prin tf(%st,t-className);prin tf(%.2ft,t-mark1);prin tf(%.2ft,t-mark2);prin tf(%.2ft,t-mark3);prin tf(%.2ft,t-mark1+t-mark2+t-mark3);prin tf(%.2ftn,(t-mark1+t-mark2+t-mark3)/3);

22、/*函数功能:根据用户输入的学号删除该学生*/void DeleteNodeBystude ntNumber(void)char stude ntNumber10;STUDENT *p,*q;char flag=0;printf(请输入要删除的学生学号:);sca nf(%s,stude ntNumber);p=headL ink;q=headL ink-n ext;while(q)if(strcmp(q-stude ntNumber,stude ntNumber)=0)p-n ext=q-n ext;free(q);flag=1;break;p=p-n ext;q=q-n ext;if(!f

23、lag)printf(”不存在该学号的学生n);return;prin tf(成功删除 n);/*函数功能:显示所有学生的信息*/void Outputl nformati on(v oid)STUDENT *p;p=headL ink-n ext;if(p=NULL)prin tf( 现在没有学生信息,请先输入学生信息nn);return;printf( 学号t姓名t班级t成绩1t成绩1t成绩3t总成绩t平均成绩nn);while(p)DesplayO neNode(p);p=p-n ext;/*函数功能:根据输入的班级修改成绩*/void Cha ngeMarkByName(void)ST

24、UDENT *p;int a;char stude ntName20;char flag=0;float mark1,mark2,mark3;p=headL ink-n ext;printf(” 请输入学生班级:n);sea nf(%d,&a);printf( 请输入学生姓名:n);sea nf(%s,stude ntName);while(p)if(stremp(p-stude ntName,stude ntName)=0)printf( 请输入新的第1门成绩:n);sea nf(%f,&mark1);printf(请输入新的第2门成绩:n);sea nf(%f,&mark2);printf

25、(请输入新的第3门成绩:n);sea nf(%f,&mark3);p-mark仁markl;p-mark2=mark2;p-mark3=mark3;flag=1;printf(修改成功 n);break;p=p-n ext;if(!flag)prin tf(对不起,不存在班级为 %s的学生n,stude ntName);/*函数功能:根据输入的学期修改成绩*/void Cha ngeMarkByNumber(void)STUDENT *p;int b;char stude ntNumber20;char flag=0;float mark1,mark2,mark3;p=headL ink-n

26、ext;printf(请输入学生所在学期:n);sca nf(%d,&b);printf(请输入学生学号:n);sca nf(%s,stude ntNumber);while(p)if(strcmp(p-stude ntNumber,stude ntNumber)=0)printf(请输入新的第1门成绩:n);sca nf(%f,&mark1);printf(请输入新的第2门成绩:n);sca nf(%f,&mark2);printf(请输入新的第3门成绩:n);sca nf(%f,&mark3);p-mark1=mark1;p-mark2=mark2;p-mark3=mark3;flag=1

27、;printf(修改成功 n);break;p=p-n ext;if(!flag)prin tf(对不起,不存在学期为 s的学生n,stude ntNumber);/*函数功能:保存链表数据到文件中*/void SaveL in kToFile(void)STUDENT *p;FILE *fp;p=headL ink-n ext;if(p=NULL)prin tf(现在没有学生信息,请先输入学生信息nn);return;fp=fope n( stude nt.txt,w+);if(!fp)printf(文件不存在n);return;while(p)fprin tf(fp,%s %s %s %f

28、 %f %fn,p-stude ntNumber,p-stude ntName,p- className,p-mark1,p-mark2,p-mark3);p=p-n ext;fclose(fp);/*函数功能:不及格学生成绩*/void DesplayMarkSegme nt(void)STUDENT *p;int coun t=0;p=headL ink-n ext;printf(60 分以下(不及格)的学生成绩如下:n);printf(学号t姓名t班级t成绩1t成绩1t成绩3t总成绩t平均成绩nn);while(p)if(6(i nt)(p-mark1/10)|(6(i nt)(p-mark2/10)|(6(i nt)(p-mark3/10)/*只要有一科不及格就认为该生不及格*/coun t+;DesplayO neNode(p);p=p-n ext;pri

温馨提示

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

最新文档

评论

0/150

提交评论