完整版数据结构毕业课程设计学生成绩管理系统.docx
- 文档编号:26525821
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:19
- 大小:19.62KB
完整版数据结构毕业课程设计学生成绩管理系统.docx
《完整版数据结构毕业课程设计学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《完整版数据结构毕业课程设计学生成绩管理系统.docx(19页珍藏版)》请在冰豆网上搜索。
完整版数据结构毕业课程设计学生成绩管理系统
淮阴工学院
数据结构课程设计报告
选题名称:
学生成绩管理系统
系(院):
数理学院
专业:
信息与计算科学
班级:
计科1102班
指导教师:
周海岩
学年学期:
2011~2012学年第1学期
2012年06月06日
【摘要】
21世纪,科学技术突飞猛进,经济知识和信息产业初见端倪,特别是信息技术和网络技术的讯速发展和广泛应用,对社会的政治,经济,军事,文化等领域产生越来越深刻。
学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要。
本论文叙述到的学生成绩管理系统是用IIS+ASP网页编程+ACCESS数据库+DREAMWEAVERMX2004+SQL查询语言实现的。
重点介绍了学生成绩管理系统的实现过程:
包括系统分析,系统调查,功能设计,数据库设计,系统实现,系统测试和调试等。
本系统主要功能有查询学生成绩、单个添加学生成绩、批量添加学生成绩、删除学生成绩、管理页面和修改管理员密码等内容。
【关键词】
成绩管理;成绩查询;C++
目录
中文摘要。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
1
1绪论。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
4
1.1选题背景。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
5
1.2需求分析。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
6
2总体设计。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
7
2.1程序设计组成框图。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
8
2.2模块功能说明。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
9
2.3程序流程图。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
10
2.4主要函数之间相互调用。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
11
3在设计过程中的感受。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
12
致谢。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
13
参考文献。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
14
附录:
源程序清单。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
15
1.绪论
1.1选题背景
为了提高高校学生信息的管理效率,方便对学生信息进行管理、学校里面的学生和管理员方便去管理和查询学生信息,如再要进行查询,就得在众多的学生信息中查找自己的成绩信息,面对学院大量的学生信息,怎么可以即时而方便的管理,学生只要登录本系统就可以查找到自己的成绩信息,而管理员也方便去管理每学期的学生的成绩信息。
建立一个学生信息管理系统,使学生信息管理工作规范化,系统化,程序化,避免学生管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改学生信息是必须而且十分迫切的工作。
2.1需求分析
学生管理系统功能的信息量大,数据安全性和保密性要求最高。
本功能实现对专业信息、学生信息、教师信息情况信息的管理和统计、课程信息和成绩信息查看及维护。
系统管理员可以浏览、查询、学生的基本信息,能添加、删除和修改学生信息,这部分功能应该由系统管理员执行,但是,删除某条专业基本信息记录时,应实现对该专业的相关信息也级联删除。
并且还应具有查询,并打印输出的功能
设计不同用户的操作权限和登陆方法、对所有用户开放的用户提供学生成绩信息查询、由于本系统功能实现方面并不太复杂,所以上面只是相关的学生信息管理查询的总体分析,具体实现就主要体现在学生管理,教师的管理和课程的管理这一块,也就是重点实现查询与添加学生信息,以及对成绩信息管理。
2.总体设计
(1)程序设计组成框图
(2)模块功能说明
1输出功能:
完成全部学生记录的显示。
2查询功能:
输入姓名可以查询学生的详细信息。
3增加功能:
增加新学生的信息。
4删除功能:
删除学生信息。
5修改功能:
修改学生的错误信息。
6保存功能:
保存已输入信息。
7读取功能:
读取已输入信息。
8显示功能:
按要求显示学生记录。
9排序功能:
按要求完成对学生信息的排序。
10退出系统。
(3)程序流程图
(4)主要函数之间相互调用如下:
总结
首先经过一周的编程实习,并在后一段的报告总结,我对数据结构这门科有新的认识,本人实在是获益不浅!
要想编写一个准确、高效并有使用价值的程序,一定先要对课本知识熟悉,还要掌握必要的上机操作能力,写程序其实很容易而关键在于调试程序。
这次设计,让我重新掌握了数据结构,而且还得到了用数据结构解决实际问题的宝贵经验。
其次,通过此次编程我也发现了自己在学习中的错误和不足,复习了以前学过的知识。
同时也学到了一些没学过的知识,让我从中收益非浅,也为期末考试准备了一下!
更重要的是培养了独立思考问题和解决问题的能力,熟悉了一些基本操作和解决问题的方法!
致谢
因为初次接触等原因此次设计遇到了许多问题,我深刻体会到老师发挥的重要作用,数据结构程序对我们来说比较难,在匆忙的学习中更是难上加难,似乎觉得自己仅是个匆匆过客,但在老师的帮助下我学会了如何调试,如何查找系统没有提示的错误,最后终于排除万难把程序搞定,体会到原来编程也挺有意思的快感.我想没有老师的帮助我很难在短期内把程序设计做的这样好,在此特地感谢老师的帮助。
参考文献
[1]李丽娟.C语言程序设计教程(第二版).北京:
人民邮电出版社2009
[2]刁成嘉.C语言程序设计论文[D].北京:
清华大学出版社2004
[3]杨文军,杨柳.C语言程序设计教程[M].北京:
清华大学出版社2010
[4]周启海.C语言程序设计报告[R].北京:
中国水利工程出版社2005
[5]谭浩强.C程序设计(第三版)[M].北京:
清华大学出版社2005
附录
源程序清单
#include voidOutputInformation(void); voidDesplayInfoBystudentName(void); voidDesplayOneNode(STUDENT*t); voidInsertOneNode(STUDENT*t); voidDeleteNodeBystudentNumber(void); voidChangeMarkByName(void); voidChangeMarkByNumber(void); voidSaveLinkToFile(void); voidDesplayMarkSegment(void); voidCompositorByTotalMark(void); intchoose;*用于接受用户的选择* *主函数* voidmain() { CreateHeadLink(); ReadInfoFormFile(); DesplayMenu(); } ************************************ 函数功能: 从文件中读学生信息到链表中 ************************************ voidReadInfoFormFile(void) { FILE*fp; STUDENT*p; fp=fopen("student.txt","r"); if(! fp) { printf("文件不存在\n"); return; } p=MallocNode(); while(fscanf(fp,"%s%s%s%f%f%f",p->studentNumber,p->studentName,p->className,&(p->mark1),&(p->mark2),&(p->mark3))>0) { InsertOneNode(p); p=MallocNode(); } fclose(fp); } ************************************ 函数功能: 显示菜单,根据用户的输入 完成相应的功能 ************************************ voidDesplayMenu(void) { STUDENT*p; printf("|1按班级输出学生成绩单|\n"); printf("|2按姓名查询|\n"); printf("|3增加学生|\n"); printf("|4删除学生|\n"); printf("|5按班级修改学生成绩|\n"); printf("|6按学期修改学生成绩|\n"); printf("|7保存所有学生信息|\n"); printf("|8显示不及格学生成绩|\n"); printf("|9按平均成绩排序并输出绩|\n"); printf("|10退出|\n\n"); scanf("%d",&choose);*取得用户的选择* switch(choose) { case1: OutputInformation();*显示所有学生的信息* break; case2: DesplayInfoBystudentName(); break; case3: p=MallocNode();*先申请一个新结点* GetInformation(p);*要求用户输入信息到新结点中* InsertOneNode(p);*将新结点加到链表中* break; case4: DeleteNodeBystudentNumber();*根据用户输入的学号删除该学生* break; case5: ChangeMarkByName();*根据用户输入的姓名修改学生成绩* break; case6: ChangeMarkByNumber();*根据用户输入的学号修改学生成绩* break; case7: SaveLinkToFile();*保存数据* break; case8: DesplayMarkSegment();*显示不及格的学生成绩* break; case9: CompositorByTotalMark();*按平均成绩排序* break; case10: SaveLinkToFile();*保存数据后再退出* free(NULL; for(i=0;i<10;i++) p->studentNumber[i]='\0'; for(i=0;i<20;i++) p->studentName[i]='\0'; for(i=0;i<20;i++) p->className[i]='\0'; p->mark1=0.0; p->mark2=0.0; p->mark3=0.0; p->next=NULL; returnp; } ************************************ 函数功能: 取得用户输入的学生信息 ************************************ voidGetInformation(STUDENT*t) { printf("请输入学生学号: \n"); scanf("%s",t->studentNumber); printf("请输入学生姓名: \n"); scanf("%s",t->studentName); printf("请输入该生所在班级: \n"); scanf("%s",t->className); printf("请输入第1门成绩: \n"); scanf("%f",&(t->mark1)); printf("请输入第2门成绩: \n"); scanf("%f",&(t->mark2)); printf("请输入第3门成绩: \n"); scanf("%f",&(t->mark3)); } ************************************ 函数功能: 在链表的结尾处增加一个结点 ************************************ voidInsertOneNode(STUDENT*t) { STUDENT*p; p="); scanf("%s",studentName); while(p) { if(strcmp(p->studentName,studentName)==0) { printf("学号\t姓名\t班级\t成绩1\t成绩1\t成绩3\t总成绩\t平均成绩\n\n"); DesplayOneNode(p); flag=1; break; } p=p->next; } if(! flag) printf("对不起,不存在姓名为%s的学生\n",studentName); } ************************************ 函数功能: 输出一个结点的信息 ************************************ voidDesplayOneNode(STUDENT*t) { printf("%s\t",t->studentNumber); printf("%s\t",t->studentName); printf("%s\t",t->className); printf("%.2f\t",t->mark1); printf("%.2f\t",t->mark2); printf("%.2f\t",t->mark3); printf("%.2f\t",t->mark1+t->mark2+t->mark3); printf("%.2f\t\n",(t->mark1+t->mark2+t->mark3)3); } ************************************ 函数功能: 根据用户输入的学号删除该学生 ************************************ voidDeleteNodeBystudentNumber(void) { charstudentNumber[10]; STUDENT*p,*q; charflag=0; printf("请输入要删除的学生学号: "); scanf("%s",studentNumber); p="); return; } printf("成功删除\n"); } ************************************ 函数功能: 显示所有学生的信息 ************************************ voidOutputInformation(void) { STUDENT*p; p=\n"); return; } printf("学号\t姓名\t班级\t成绩1\t成绩1\t成绩3\t总成绩\t平均成绩\n\n"); while(p) { DesplayOneNode(p); p=p->next; } } ************************************ 函数功能: 根据输入的班级修改成绩 ************************************ voidChangeMarkByName(void) { STUDENT*p; inta; charstudentName[20]; charflag=0; floatmark1,mark2,mark3; p="); scanf("%d",&a); printf("请输入学生姓名: \n"); scanf("%s",studentName); while(p) { if(strcmp(p->studentName,studentName)==0) { printf("请输入新的第1门成绩: \n"); scanf("%f",&mark1); printf("请输入新的第2门成绩: \n"); scanf("%f",&mark2); printf("请输入新的第3门成绩: \n"); scanf("%f",&mark3); p->mark1=mark1; p->mark2=mark2; p->mark3=mark3; flag=1; printf("修改成功\n"); break; } p=p->next; } if(! flag) printf("对不起,不存在班级为%s的学生\n",studentName); } ************************************ 函数功能: 根据输入的学期修改成绩 ************************************ voidChangeMarkByNumber(void) { STUDENT*p; intb; charstudentNumber[20]; charflag=0; floatmark1,mark2,mark3; p="); scanf("%d",&b); printf("请输入学生学号: \n"); scanf("%s",studentNumber); while(p) { if(strcmp(p->studentNumber,studentNumber)==0) { printf("请输入新的第1门成绩: \n"); scanf("%f",&mark1); printf("请输入新的第2门成绩: \n"); scanf("%f",&mark2); printf("请输入新的第3门成绩: \n"); scanf("%f",&mark3); p->mark1=mark1; p->mark2=mark2; p->mark3=mark3; flag=1; printf("修改成功\n"); break; } p=p->next; } if(! flag) printf("对不起,不存在学期为%s的学生\n",studentNumber); } ************************************ 函数功能: 保存链表数据到文件中 ************************************ voidSaveLinkToFile(void) { STUDENT*p; FILE*fp; p=\n"); return; } fp=fopen("student.txt","w+"); if(! fp) { printf("文件不存在\n"); return; } while(p) { fprintf(fp,"%s%s%s%f%f%f\n",p->studentNumber,p->studentName,p->className,p->mark1,p->mark2,p->mark3); p=p->next; } fclose(fp); } ************************************ 函数功能: 不及格学生成绩 ************************************ voidDesplayMarkSegment(void) { STUDENT*p; intcount=0; p="); printf("学号\t姓名\t班级\t成绩1\t成绩1\t成绩3\t总成绩\t平均成绩\n\n"); while(p) { if((6>((int)(p->mark110)))||(6>((int)(p->mark210)))||(6>((int)(p->mark310))))*只要有一科不及格就认为该生不及格* { count++; DesplayOneNode(p); } p=p->next; } printf("不及格的学生一共有%d人\n",count); } ************************************ 函数功能: 按平均成绩排序 ************************************ voidCompositorByTotalMark(void) { STUDENTexchange,*r,*p,*q; r="); return; } while(r)*两层while循环实现排序* { p=r; q=r->next; while(q) { if((q->mark1+q->mark2+q->mark3)>(p->mark1+p->mark2+p->mark3)) { strcpy(exchange.studentNumber,q->studentNumber);*先复制q结点信息到exchange* strcpy(exchange.studentName,q->studentName); strcpy(exchange.className,q->className); exchange.mark1=q->mark1; exchange.mark2=q->mark2; exchange.mark3=q->mark3; strcpy(q->studentNumber,p->studentNumber);*再复制p结点信息到q* strcpy(q->studentName,p->studentName); strcpy(q->className,p->className); q->mark1=p->mark1; q->mark2=p->mark3; q->mark3=p->mark3; strcpy(p->studentNumber,exchange.studentNumber);*最后复制exchange结点信息到p* strcpy(p->studentName,exchange.studentName); strcpy(p->className,exchange.className); p->mark1=exchange.mark1; p->mark2=exchange.mark2; p->mark3=exchange.mark3; } q=q->next; } r=r->next; } OutputInformation(); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整版 数据结构 毕业 课程设计 学生 成绩管理系统