学生成绩管理系统设计与实现c语言版_第1页
学生成绩管理系统设计与实现c语言版_第2页
学生成绩管理系统设计与实现c语言版_第3页
学生成绩管理系统设计与实现c语言版_第4页
学生成绩管理系统设计与实现c语言版_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

学生成绩管理系统设计与实现学生姓名: 指导老师:摘 要 本系统采用C+语言来编写学生成绩管理系统。该系统主要由输入学生成绩、删除学生成绩、学生成绩排序、学生成绩查询和退出管理系统五个功能模块组成, 系统用户界面友好, 操作简便, 满足了学生成绩管理的需要。关键词 成绩;C+;管理系统1 引 言为方便对学生成绩的管理,编写该程序以学生成绩的管理效率。使用该程序之后,老师或学生可以查询每位学生的成绩,还可以按学号、姓名等信息来查询成绩,并且最后给出了按学生成绩的总分来排列的学生成绩清单。1.1 课题背景及意义一直以来人们使用传统的人工方式管理学生成绩,对于学生成绩的管理过程,想必大家都已很熟悉。在计算机尚未在广泛使用之前,学生成绩的管理主要依靠手工。一个最典型的学生成绩管理过程就是:工作人员把每个同学的成绩先写下来,然后人工的按照学生的分数来进行各种操作,最后得到我们所需要的最终结果。以上所描述的手工过程的不足之处显而易见,首先各种排序工作非常困难,当学生人数比较多时会使工作的难度更大;并且在工作过程中,会经常出现成绩排错、记混等问题。 为提高学生成绩管理效率,减少老师的工作负担,有必要开发一个小型学生成绩管理软件来对学生的成绩实施有效管理。该系统必须具备以下功能:1)输入学生成绩;2)删除学生成绩;3)学生成绩排序;4)学生成绩查询;5)学生成绩清单。这样不仅能较好地帮助老师在最短的时间内处理完学生的成绩,而且能让学生很好的查询自己的成绩。1.2 课题开发框架及技术选择本系统主要采用C+语言来编写程序,实现学生成绩的管理。我们利用软件Microsoft Visual C+来编译C+语言编写的程序,实现系统执行的每一步,并在电脑屏幕上显示出我们所要执行的步骤。2 系统需求分析2.1 功能需求分析1) 输入学生成绩:即输入学生的学号、姓名、成绩等。2) 删除学生成绩:当发现成绩出错时,用来删除成绩。3) 学生成绩排序:按单科成绩或总成绩排序。4) 学生成绩查询:按学号、姓名等查询成绩。5) 学生成绩清单:按学号把所有学生的成绩显示出来。6) 退出管理系统:退出程序所建立的管理系统。2.2性能需求分析 1硬件环境l 处理器:Inter CR300或是更高。l 内存:128MB(建议 196MB)。l 硬盘空间:20MB。2软件环境l 操作系统: Windows 98 或是Windows 2000/Windows NT Server 4.0。2.3系统总体结构设计对学生成绩情况进行管理的系统,主要划分为一下五个模块:1) 输入学生成绩:实现学生的学号、姓名、成绩等的输入。2) 删除学生成绩:学生成绩出现错误时,实现学生成绩的删除。3) 学生成绩排序:实现按单科成绩排序或按总成绩排序。4) 学生成绩查询:按学号、姓名等实现学生成绩的查询。5) 学生成绩清单:实现按学号排列的学生成绩的显示。根据需求分析的结果,总体结构如图2-1所示。图2-1系统总体结构 2.4系统管理流程图该学生成绩管理系统6个主流程及10个子流程,则系统的程序流程图如图2-2所示。图2-2 系统管理流程图3 学生成绩管理系统设计3.1 数据模型分析与设计该应用程序包含输入学生成绩、删除学生成绩、学生成绩排序、学生成绩查询、学生成绩清单五部分的功能。其中学生成绩的格式例子为:表3-1 学生成绩学号姓名数学成绩程序设计成绩 1张三8676 2李四8495 3王五7672 4赵六95863.2 系统功能模块分析系统功能模块如图3-1所示。图3-1 系统功能模块图4 系统详细设计4.1输入学生成绩这部分主要实现学生成绩的添加,把所需要输入的学生的成绩按照规定的格式输入到学生管理系统中去,该部分的程序代码为:num = num + 1;printf( 请输入学生的学生信息, 包括学号,姓名,数学成绩和程序设计成绩:n);scanf( %d %s %d %d, &stunum-1.no, &, &stunum-1.math_score,&gram_score);printf(你所输入的学生信息为:n);printf(学号:%4d 姓名:%10s 数学成绩:%4d 程序设计成绩:%4d, stunum-1.no, , stunum-1.math_score, gram_score);stunum-1.total_score = stunum-1.math_score + gram_score;num=scan_no(num,stu);/ 判断没有重复的学号, 如果与原来的学号重复则需重新输入4.2删除学生成绩:这部分主要实现,当所输入的学生成绩出现问题时,用来在学生成绩管理系统中删除错误的学生成绩。该部分的程序代码为:int search(int no, int num, struct student *stu)int search_no;int i;for(i=0; inum; i+)if(no = stui.no)search_no = i;break;return(search_no);void del(int no, int *num, struct student *stu)int i;int del_no;int number;number = *num;del_no = search(no, number, stu);for(i=del_no; i=number; i+)stui = stui+1;number = number - 1;*num = number;printf( 请输入要删除的学生的学号:n);scanf( %d, &no);del(no, &num, stu);4.3学生成绩排序这部分主要实现,在学生成绩管理系统中,按照学生的数学成绩、程序设计成绩或总分进行排序。该部分的程序代码为:void sort(int sort_no, int num, struct student *stu)int i, j, k;struct student t; if(sort_no = 1)/ 数学成绩排序for(i=0; inum-1; i+) k = i;for(j=i+1; jnum; j+)if(stuj.math_scorestuk.math_score) k = j;t = stuk;stuk = stui;stui = t;for(i=0; inum; i+)printf(学号:%4d 姓名:%10s 数学成绩:%4d 程序设计成绩:%4d 总分:%4dn, stui.no, , stui.math_score,gram_score, stui.total_score);else if(sort_no = 2)/ 程序设计成绩排序for(i=0; inum-1; i+)k = i;for(j=i+1; jnum; j+)if(gram_gram_score) k= j;t= stuk;stuk = stui;stui = t;for(i=0; inum; i+)printf(学号:%4d 姓名:%10s 数学成绩:%4d 程序设计成绩:%4d 总分:%4dn, stui.no, , stui.math_score,gram_score, stui.total_score);else if(sort_no = 3) / 总分排序for(i=0; inum-1; i+)k = i;for(j=i+1; jnum; j+)if(stuj.total_scorestuk.total_score) k=j;t= stuk;stuk = stui;stui = t;for(i=0; i数学成绩排序n);printf( 2-程序设计成绩排序n);printf( 3-总分排序n);printf( 4-返回主菜单n);printf( 请选择要进行排序的方式的编号:n);scanf( %d, &sort_no);sort(sort_no, num, stu);4.4学生成绩查询这部分主要实现,在学生管理系统中,按照学号、姓名、数学成绩、程序设计成绩、总分等方式查询学生的成绩。该部分的程序代码为:printf( 请选择以下的方式对学生数据进行查询:n);printf( 1-学号查询n);printf( 2-姓名查询n);printf( 3-数学成绩查询n);printf( 4-程序设计成绩查询n);printf( 5-总分查询n);printf( 6-返回主菜单n);printf( 请选择要进行查询内容的编号:n);scanf( %d, &search_no);while(search_no 0)if(search_no =1)printf( 请输入要查询的学号n);scanf(%d, &no);for(i=0; inum; i+)if(no = stui.no)printf(学号:%4d 姓名:%10s 数学成绩:%4d 程序设计成绩:%4d 总分:%4dn, stui.no, , stui.math_score,gram_score, stui.total_score);break;if(search_no = 2)printf( 请输入要查询的姓名n);scanf(%s, &name);for(i=0; inum; i+)if(strcmp(name,)=0)printf(学号:%4d 姓名:%10s 数学成绩:%4d 程序设计成绩:%4d 总分:%4dn, stui.no, , stui.math_score, gram_score, stui.total_score);break;if(search_no = 3)printf( 请输入要查询的数学成绩n);scanf(%d, &math_score);for(i=0; inum; i+)if(math_score=stui.math_score)printf(学号:%4d 姓名:%10s 数学成绩:%4d 程序设计成绩:%4d 总分:%4dn, stui.no, , stui.math_score, gram_score, stui.total_score);if(search_no = 4)printf( 请输入要查询的程序设计成绩n);scanf(%d, &program_score);for(i=0; inum; i+)if(program_score=gram_score)printf(学号:%4d 姓名:%10s 数学成绩:%4d 程序设计成绩:%4d 总分:%4dn, stui.no, , stui.math_score, gram_score, stui.total_score);if(search_no = 5)printf( 请输入要查询的总分成绩n);scanf(%d, &total_score);for(i=0; inum; i+)if(total_score=stui.total_score)printf(学号:%4d 姓名:%10s 数学成绩:%4d 程序设计成绩:%4d 总分:%4dn, stui.no, , stui.math_score, gram_score, stui.total_score);if(search_no = 6)break;printf( 请选择要进行查询内容的编号:n);scanf( %d, &search_no);4.5学生成绩清单这部分主要实现,把学生成绩管理系统中的所有学生的成绩按照学号的顺序依次显示出来。该部分的程序代码为:printf(所有学生的成绩按总分排列的清单为:);for(i=0;inum;i+)printf(学号:%4d 姓名:%10s 数学成绩:%4d 程序设计成绩:%4d 总分:%4dn, stui.no, , stui.math_score,gram_score, stui.total_score);5 系统实现5.1 输入学生成绩按照学生成绩的格式输入几个学生的成绩,其系统的实现为:5.2删除学生成绩删除学号为4的学生的成绩,其系统的实现为:5.3学生成绩排序 按数学成绩排序的结果为:按程序设计成绩排序的结果为:按总分排序的结果为:5.4学生成绩查询 分别按照学号、姓名、数学成绩、程序设计成绩、总分来查询学生的成绩,其结果为:5、学生成绩清单 按照学生成绩的总分的排列所列的清单为:6、退出管理系统结束语在本次课程设计过程中,李辉老师从选题、构思、资料收集到最后定稿的各个环节给予细心指导,使我对软件工程有了更深刻的认识,在此表示衷心地感谢。在整个过程中,我查阅了大量的关于书籍借阅管理系统的资料和网站,在老师的指导和自己的努力下,终于完成了本次课程设计。在为期三周的课程设计过程中,使我熟悉了C+语言,但也体现了我的种种不足,希望在以后的学习生活当中能够改正。同时我还要感谢指导过我的每一位老师,他们给了我很大的指导和帮助,还有在我陷入困境时帮助过我的同学们。参考文献1 郑人杰,殷人昆,陶永雷实用软件工程(第二版)北京:清华大学出版,2003年2 Clifford A.Shaffer. 数据结构与算法分析(C+版) 电子工业出版社,2006年3 潘锦平软件系统开发技术西安:西安市西安电子科技大学出版社,1989年4 张海藩软件工程导论(第三版) 北京:清华大学出版社,2002年5范策,周世平,胡潇琨. 算法与数据结构 机械工业出版社,2004年设计源程序主要清单 #define N 100#include stdio.h#include string.hstruct studentint no;char name20;int math_score;int program_score;int total_score;int search(int no, int num, struct student *stu)int search_no;int i;/for(i=0; inum; i+)if(no = stui.no)search_no = i;break;return(search_no);void del(int no, int *num, struct student *stu)int i;int del_no;int number;/number = *num;del_no = search(no, number, stu);/for(i=del_no; i=number; i+)/stui = stui+1;/number = number - 1;*num = number;void sort(int sort_no, int num, struct student *stu)int i, j, k;struct student t; if(sort_no = 1)/ 数学成绩排序for(i=0; inum-1; i+)k = i;for(j=i+1; jnum; j+)if(stuj.math_scorestuk.math_score) k = j;t = stuk;stuk = stui;stui = t;for(i=0; inum; i+)printf(学号:%4d 姓名:%10s 数学成绩:%4d 程序设计成绩:%4d 总分:%4dn, stui.no, , stui.math_score, gram_score, stui.total_score);else if(sort_no = 2)/ 程序设计成绩排序for(i=0; inum-1; i+)k = i;for(j=i+1; jnum; j+)if(gram_gram_score) k = j;t = stuk;stuk = stui;stui = t;for(i=0; inum; i+)printf(学号:%4d 姓名:%10s 数学成绩:%4d 程序设计成绩:%4d 总分:%4dn, stui.no, , stui.math_score, gram_score, stui.total_score);else if(sort_no = 3) / 总分排序for(i=0; inum-1; i+)k = i;for(j=i+1; jnum; j+)if(stuj.total_scorestuk.total_score) k = j;t = stuk;stuk = stui;stui = t;for(i=0; inum; i+)printf(学号:%4d 姓名:%10s 数学成绩:%4d 程序设计成绩:%4d 总分:%4dn, stui.no, , stui.math_score, gram_score, stui.total_score);else if(sort_no = 4) / 返回上层return;elseprintf(错误的排序方式!n);return;int scan_no(int num,struct student *stu) int i; for(i=0;i输入学生成绩n);printf( 2-删除学生成绩n);printf( 3-学生成绩排序n);printf( 4-学生成绩查询n);printf( 5-学生成绩清单n);printf( 6-退出管理系统n);/*选择操作*/printf(n);printf( 请选择要进行操作的编号:n);scanf(%d, &manage_no);while(manage_no 0)if(manage_no = 1) /*输入学生成绩*/num = num + 1;printf( 请输入学生的学生信息, 包括学号,姓名,数学成绩和程序设计成绩:n);scanf( %d %s %d %d, &stunum-1.no, &, &stunum-1.math_score, &gram_score);printf(你所输入的学生信息为:n);printf(学号:%4d 姓名:%10s 数学成绩:%4d 程序设计成绩:%4d, stunum-1.no, , stunum-1.math_score, gram_score);stunum-1.total_score = stunum-1.math_score + gram_score;num=scan_no(num,stu);/ 判断没有重复的学号, 如果与原来的学号重复则需重新输入else if(manage_no = 2) /*删除学生成绩*/printf( 请输入要删除的学生的学号:n);scanf( %d, &no);del(no, &num, stu);else if(manage_no = 3) /*学生成绩排序*/printf( 请选择以下的方式对学生数据进行排序:n);printf( 1-数学成绩排序n);printf( 2-程序设计成绩排序n);printf( 3-总分排序n);printf( 4-返回主菜单n);/printf( 请选择要进行排序的方式的编号:n);scanf( %d, &sort_no);sort(sort_no, num, stu);else if(manage_no = 4) /*学生成绩查询*/printf( 请选择以下的方式对学生数据进行查询:n);printf( 1-学号查询n);printf( 2-姓名查询n);printf( 3-数学成绩查询n);printf( 4-程序设计成绩查询n);printf( 5-总分查询n);printf( 6-返回主菜单n);/printf( 请选择要进行查询内容的编号:n);scanf( %d, &search_no);while(search_no 0)if(search_no =1)printf( 请输入要查询的学号n);scanf(%d, &no);for(i=0; inum; i+)if(no = stui.no)printf(学号:%4d 姓名:%10s 数学成绩:%4d 程序设计成绩:%4d 总分:%4dn, stui.no, , stui.math_score,gram_score, stui.total_score);break;if(search_no = 2)printf( 请输入要查询的姓名n);scanf(%s, &name);for(i=0; inum; i+)if(strcmp(name,)=0)printf(学号:%4d 姓名:%10s 数学成绩:%4d 程序设计成绩:%4d 总分:%4dn, stui.no, , stui.math_score, gram_score, stui.total_score);break;if(search_no = 3)printf( 请输入要查询的数学成绩n);scanf(%d, &math_score);for(i=0; inum; i+)if(math_score=stui.math_score)printf(学号:%4d 姓名:%10s 数学成绩:%4d 程序设计成绩:%4d 总分:%4dn, stui.no, , stui.math_score, gram_score, stui.total_score);if(search_no = 4)printf( 请输入要查询的程序设计成绩n);scanf(%d, &program_score);for(i=0; inum; i+)if(program_score=gram_score)printf(学号:%4d 姓名:%10s 数学成绩:%4d 程序设计成绩:%4d 总分:%4dn, stui.no, , stui.math_score, gram_score, stui.total_score);if(search_no = 5)printf( 请输入要查询的总分成绩n);scanf(%d, &total_score);for(i=0; inum; i+)if(total_score=stui.total_score)printf(学号:%4d 姓名:%10s 数学成绩:%4d 程序设计成绩:%4d 总分:%4dn, stui.no, , stui.math_score, gram_score, stui.total_score);if(search_no = 6)break;printf( 请选择要进行查询内容的编号:n);scanf( %d, &search_no);else if(manage_no = 5) /*学生成绩清单*/printf(所有学生的成绩按总分排列的清单为:n);for(i=0;inum;i+)printf(学号:%4d 姓名:%10s 数学成绩:%4d 程序设计成绩:%4d 总分:%4dn, stui.no, , stui.math_score,gram_score, stui.total_score);else if(manage_no = 6) /*退出管理系统*/break;elseprintf(错误的操作, 请选择菜单里的操作!n);break;/*选择操作*/printf(n);printf( 请选择要进行操作的编号:n);scanf(%d, &manage_no); 27毕业论文规范要求需存档的材料(一)学生个人材料(1)毕业论文(2)毕业论文任务书(3)开题报告(4)中期检查表(5)指导过程记录表(6)指导教师评阅表(7)评阅人评阅表(8)答辩成绩表(9)成绩评定表以上9项材料按顺序装订成一本,与毕业实习材料一起,放入每生一袋的文件袋中。(二)专业汇总材料(1)按专业汇总的毕业论文任务安排情况表(2)学院有关毕业论文的补充规定(3)毕业论文组织安排(包括答辩委员会的组成名单及学生分组名单、答辩的时间安排表等)(4)本专业学生的毕业论文成绩汇总表(5)本专业所有学生毕业论文正文的电子文档(光盘若干张)(6)答辩记录表以上6项材料由学院教务办负责收集、保管。本科毕业论文任务书_ _学院 填写时间:_年_月_日课题名称学生姓名专业、学号毕业论文基本要求、主要设计内容及需要解决的关键问题计划进度安排应收集的资料及主要参考文献指导教师(签名):_职称:_ 系(教研室)主任(签名): 分管院长(签章): 本 科 毕 业 论 文 开 题 报 告 论文题目:_ _ _ _ 学 院:_ _ _ _ _ _专业年级:_ _ _ _ _学 号:_ _ _ _姓名:_ _ _ _指导教师、职称:_ _ _ _年 月 日一、立题意义及国内外的研究现状与存在问题,主要研究内容及拟解决的关键性问题(含文献综述)说明:1、字体字号等格式,参照毕业论文的要求进行编辑,但无需上下空行。2、“国内外研究现状”部分,篇幅在1500字以上。 3、“国内外研究现状”中,表述专家学者观点时,在学者的姓名后面用括号标明该观点的发表年份。共同作者的情形,用一个括号;不同作者但观点同一的情形,则一个作者一个括号。然后,在“存在问题”之后,按顺序列出这些参考文献(文献的格式见毕业论文的规范)。例如:关于留守儿童现状,沈爱文(2009)认为。关于留守儿童的成因,周全德(2010)、齐建英(2013)、周城卫(2011)指出。陈雷、乔卫(2012)则对此提出了异议。4、“存在问题”这部分,应为前人研究成果中存在的问题,而不是该研究对象存在的问题。以上述留守儿童问题为例,存在的问题也许是前人的研究大都是从社会学的角度来观察和分析,较少涉及到法学的层面等等。不要写成留守儿童因为缺乏管教,导致辍学、流浪、给社会造成危害等这方面的内容。 5、紧接“存在问题”后,按顺序列出文献综述中涉及到的参考文献.(要求至少10个以上)二、本课题的主要研究方法、步骤、预期目的三、研究工作总体安排及具体进度四、指导教师审查意见:(此页的三个审查意见表格,应单独做成一页)签字: 年月日五、系(教研室)审查意见: 签字: 年月日六、学院审查意见: 分管院长签章: 年月日本科毕业论文中期检查表 填表时间: 年 月 日课题名称学生姓名专业、学号中期检查记录(内容包括:工作的进度、工作量与完成质量、学生的工作态度等)有否更换题目,若有确认更换的理由存在的问题、建议或处理意见中期检查结论:合格 不合格检查组组长(签名)(注:中期检查由学院组织,检查组组长由系主任以上领导担任)文法学院毕业论文指导记录表学生姓名专业年级指导老师论文题目指导选题记录 指导开题记录 审阅初稿记录 审阅定稿记录 指导教师(签名): 年 月 日本科毕业论文制作规范一、毕业论文文本结构:封面;目录;摘要(200-300字);关键词(38个);英文摘要;英文关键词;引言、正文、结论;参考文献;论文内容的必要附件;致谢。二、毕业论文的打印排版:1、页面设置纸张: A4打印纸:页边距:左2.5cm(装订),上、下、右各2 cm;页眉:1.5cm,标示:大学本科毕业论文(宋体五号居中)页脚:0.75cm,从摘要页开始标注第1页,页末居中打印页码。2、论文主体文本排版格式封面:学校统一格式,学生自行下载填写后打印;目录:目录独立成页,“目录”二字宋体小二号加粗居中,下空二行为章节及其开始页码,采用小四号宋体。页码放在行末,目录内容和页码之间用虚线连接。摘要和关键词:“摘要”二字采用四号黑体,加“:”后打印摘要内容(小四号宋体)。摘要内容下空一行打印“关键词”三字(四号黑体),加“:”后打印关键词(小四号宋体),每两个关键词之间空两格。“Abstract”采用小四号加粗“Times New Roman”字体,英文摘要的内容采用小四号“Times New Roman”字体;“Key words” 采用小四号加粗“Times New Roman”字体,英文关键

温馨提示

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

评论

0/150

提交评论