C语言课程设计报告-班级成绩管理系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

..目录第一章绪论--------------------------------------------------------第二章需求分析--------------------------------------------------2.1程序的功能------------------------------------------2.2输入输出的要求------------------------------------第三章概要设计--------------------------------------------------3.1程序的模块组成-------------------------------------3.2学生信息结构数组----------------------------------3.3各个程序的功能介绍-------------------------------第四章详细设计--------------------------------------------------4.1总流程图..----------------------------------------------4.2统计函数流程图-------------------------------------第五章测试--------------------------------------------------------5.1系统调试----------------------------------------------5.2结果分析----------------------------------------------第六章使用说明--------------------------------------------------第七章总结--------------------------------------------------------附录---------------------------------------------------------------------评分表------------------------------------------------------------------..第一章:绪论一.成绩管理系统的背景分析:当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,正是计算机被广泛应用于信息管理系统的环境.计算机的最大好处在于利用它能够进行信息管理.使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性.尤其对于复杂的信息管理,计算机能够充分发挥它的优越性.随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能在人类社会的各个领域并发挥着越来越重要的作用.学生成绩管理系统提供了强大的学生成绩管理管理功能,方便系统管理员对学生成绩等信息的添加,修改,删除,查询,留言等操作,同时一样的方面学生对自己各科成绩查询,学习的交流.二.开发学生成绩管理的必要性开发一个学生成绩管理系统,采用计算机对学生成绩进行管理,进一步提高了办学效益和现代化水平.为广大教师和学生提高工作效率,实现学生成绩信息管理工作流程的系统化,规范化和自动化.现在我国的大中专院校的学生成绩档案管理水平普遍都不是很高,有的还停留在全用纸介质基础上,这种管理方式已不能适应时代的发展,社会的需求,因为它浪费了大量的人力物力,也存在着许多不足的因素.在今天信息时代这种传统的管理方法必然会被计算机为基础的信息管理系统所代替.一个高效的学生成绩管理系统可以存储历届的学生成绩档案,不需要大量的人力,只需要几名专门录入员即可操作系统,节省大量人力,可以迅速查到所需信息,高效,安全,学生在能方便的查看自己的成绩.三.课程设计内容⑴问题描述:一个有N个学生的班级,每个学生有M门课程。该系统实现对班级成绩的录入、显示、修改、排序、保存等操作的管理。..⑵功能要求:①、本系统采用一个结构体数组,每个数据的结构应当包括:学号、姓名、M门课程名称。②、本系统显示这样的菜单:请选择系统功能项:a、成绩录入b、成绩显示c、成绩保存d、成绩排序e、成绩修改(要求先输入密码)f、成绩统计Ⅰ、显示每门课程成绩最高的学生的基本信息Ⅱ、显示每门课程的平均成绩g、退出系统③、执行一个具体的功能之后,程序将重新显示菜单。④、将学生成绩保存到文件中。⑶算法提示:①、数据结构:结构体类型数组。②、数据库结构:下表构成该系统的基本数据库。姓名学号课程名称1课程名称2●●●●●●charCharfloatfloat⑷测试数据:学生人数N=10课程门数M=4课程名:数学、语文、英语、政治⑸其它该系统有兴趣的同学可以在实现上述基本功能后,完善系统的其它功能。四.课程设计要求及分组安排。1.课程设计要求..1).设计正确,方案合理。2).界面友好,使用方便。3).程序精炼,结构清晰。4).设计报告5000字以上,含程序设计说明、用户使用说明,系统的功能框图、流程图、源程序清单等。5).上机演示。6).每个学生在规定的时间内独自完成相关课题的C源程序编写,调整和运行。源程序及编译生成各文件均保存在软盘中;7).实际操作过程中遇到的问题及解决方法:设计总结及心得体会.8).按任务书的要求,按附录的要求编写《课程设计报告》(Word文档格式)。并用A4的复印纸打印并装订。2.分组及安排所选题目(共8题)根据学生学号顺序选课题号,四个人一道题,相邻四个学号的同学选同一道题,32号以后的同学按学号每人选一题。如你的学号为15,则所选题目号为:第四题。3.成绩评定程序设计方案是否合理;程序设计是否正确;调试结果;设计说明书的质量高低;答辩时回答问题情况;课程设计周表现情况;总评成绩记入“课程设计成绩评分表”。五.进度安排第一周星期四:课题讲解,查阅资料。第二周星期一:总体设计,详细设计。星期二:编程,上机调试,修改程序。星期三:上机调试,完善程序。星期四:上机调试,完善程序。星期五:答辩。星期六—星期天:撰写课程设计报告。..第二章:系统需求分析1.程序的功能:对一个有N个学生的班级,每个学生有M门课程。该系统实现对班级成绩的录入、显示、修改、排序、保存等操作的管理。本系统采用一个包含N个结构的数组,每个数据结构应当包括:学号、姓名、M个课程名称。2.输入输出要求:在菜单选项中1-7,选择功能项,进行对应选项的函数调用.输入1,输入学生的基本信息存入磁盘文件中;输入2,输出已存盘的学生信息;输入3,输出用户所要选择科目的提问,输入科目后输出该科目一排好的学生成绩;输入4,修改功能,输入密码.错误输出是否继续输入密码.正确则逐个输出是否想要修改学生信息;输入5,输出三项功能的介绍,输入你的选择后输出实现的结果;每执行一个具体的程序后都要重新显示菜单。..第三章:系统概要设计1.程序的模块组成第一个模块:先定义好一些必要的全局变量以及调用的函数和结构体数组。第二个模块:设计一个菜单函数menu();实现能供用户选择功能项。第三个模块:用enter()函数实现成绩的输入。第四个模块:用save()函数实现成绩的保存。第五个模块:用print()函数实现成绩输出。第六个模块:用cort()函数实现成绩排序功能。第七个模块:用modify()函数实现成绩修改功能。第八个模块:用count()函数实现成绩统计功能。2.学生信息结构数组structstu{charname[20];intnum;intscore[M];};3.各个程序的功能介绍1:为便于用户使用,先定义一个常数N表示人数,学生信息的结构体数组,以及调用功能项的函数。2:在menu()函数中,用switch来选择要执行的功能项用do…while实现每种具体功能后能返回菜单。3:Enter()函数,用scanf依次输入学生信息,在输入多门成绩成绩时,用for循环来实现,结尾调用save()函数保存。4:Print()函数中为使界面美观对学生成绩用%5d输出,且用换行实现,学生信息整齐排列。5:Save()函数使用文件保存。6:Cort()函数先定义choice1,输出想要排序的科目的序号,用选择排序法实现函数学生成绩的排序。7:Modify()函数,先定义好一个密码以及flag=0;如果输入的密码错误则flag=1,用do..while实现是否重新输入密码,密码准确后调用modi()函数,实现修改功能。8:Count()函数用menu1函数实现一个菜单功能。用switch实现,用户选择想执行的功能,从而调用Show1()Show2()Show3();..第四章:系统详细设计1.总流程图开始Main()enter()print()save()sort()modify()运行程序count()ChoiceChoice函数123456退出程序7..2.统计函数流程图开始调用menu1函数输入choice1choice1调用show1函数调用show2函数输入选择的科目J=0I=0I=i+1INs[n].score[i]s[n+1].score[i]Temp=s[i].score[n]s[n].score[i]=s[n+1].score[i]S[i+1].score{n]=tempJ=j+1I=0;sum=0I=i+1INSum=sum+s[i].score[j]Sum=sum+s[i].score[j]输出排序成绩输出平均成绩返回函数123结束结束..第五章:测试1.系统调试1:在enter()函数中对学生成绩的输入用scanf(“%d”,s);当输入一门成绩后就会跳回,使接下来的程序无法运行,改为for(j=1;j=M;j++)scanf(“%d”,&s[i].score[j]);将错误解决.2:在enter函数中,输入姓名用scanf(“%s”,&s[i].name);错误,在scanf函数中的输入项如果是字符数组名代表该数组的起始地址.则应改为scanf(“%d”,s[i].name);3:在运行print()函数时,第四门课显示出来的分数并非输入项:错误,在定义时将j=1,应改为j=0。4:学生成绩定义为浮点型,但与scanf连接不起来。是由于所使用的系统不支持该项操作。5:在count()函数中,show3();输出的人数比实际的多一人,因为b++:在循环结束之后会自增一次,则比实际的大一。2.结果分析1:为了使调试程序简便,先定义班级的人数N为3人,编译连接后,显示出菜单桌面,先输入学生成绩保存起来.2:选择2.在用循环输出学生的基本信息的最后加printf(“\n”);,则输出学生的基本信息是每行显示一位同学的信息.3:选择5.修改函数中用getchar()来覆盖原有的,则就可输出修改的信息.4:选择6.用一个选择菜单intmenu1(){intchoice1;printf(\n*******\n);printf(1:xianshimeikechengjizuigaodexueshengxinxi\n);printf(2:xianshimeikepingjunchengji\n);printf(3:xianshichaogoupingjunchengjiderenshu\n);printf(4:quit\n);printf(********\n);}选择1.输入选择的科目用标记法找出成绩最高的的学生则输出其基本信息.选择2.用for循环,先求出了每门的总成绩再除以人数的到平均成绩用一个数组接收.再用循环则的到结果.选择3.先定义了一个数组b[M].用循环如果出现超过平均成绩的人就自增一次,接收到b[M]中,用循环输出b[M]则得到每门超过平均成绩的人数...5:在modify()函数中,当输入一个错误的密码时会出现死循环,因为跳出的位置错误了第六章:该系统使用说明1.运行时进入主界面,系统根据输入的数字选项来调用相应的函数。主要实现“功能选

1 / 24
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功