首页 班级成绩管理系统C语言课程设计

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

举报
开通vip

班级成绩管理系统C语言课程设计班级成绩管理系统C语言课程设计 课 程 设 计 报 告 课程名称 C语言程序设计 课题名称 班级成绩管理系统 专 业 机械设计制造及其自动化 班 级 0983班 学 号 200913090334 姓 名 指导教师 王颖 2010年6月30日 湖南工程学院 课 程 设 计 任 务 书 课程名称 C语言程序设计 课 题 班级成绩管理系统 专业班级 机械设计0983 学生姓名 学 号 200913090334 指导老师 王颖 审 批 任务书下达日期 年 月 日 任务完成日期 年 月 日 目录 ...

班级成绩管理系统C语言课程设计
班级成绩管理系统C语言课程设计 课 程 设 计 报 告 课程名称 C语言程序设计 课题名称 班级成绩管理系统 专 业 机械设计制造及其自动化 班 级 0983班 学 号 200913090334 姓 名 指导教师 王颖 2010年6月30日 湖南 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 学院 课 程 设 计 任 务 关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf 课程名称 C语言程序设计 课 题 班级成绩管理系统 专业班级 机械设计0983 学生姓名 学 号 200913090334 指导老师 王颖 审 批 任务书下达日期 年 月 日 任务完成日期 年 月 日 目录 第一章 绪论-------------------------------------------------------- 第二章 需求分析-------------------------------------------------- 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 ?????? char Char float float ?测试数据: 学生人数N=10 课程门数M=4 课程名:数学、语文、英语、政治 ?其它 该系统有兴趣的同学可以在实现上述基本功能后,完善系统的其它功 能。 四.课程设计要求及分组安排。 1. 课程设计要求 1)(设计正确, 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 合理。 2)(界面友好,使用方便。 3)(程序精炼,结构清晰。 4)(设计报告5000字以上,含程序设计说明、用户使用说明,系统的功能框图、流程图、源程序清单等。 5)(上机演示。 6)(每个学生在规定的时间内独自完成相关课题的C源程序编写,调整和运行。源程序及编译生成各文件均保存在软盘中; 7)(实际操作过程中遇到的问题及解决方法:设计总结及心得体会. 8)(按任务书的要求,按附录的要求编写《课程设计报告》(Word文档格式)。并用A4的复印纸打印并装订。 2.分组及安排 所选题目(共8题)根据学生学号顺序选课题号,四个人一道题,相邻四个学号的同学选同一道题,32号以后的同学按学号每人选一题。如你的学号为15,则所选题目号为:第四题。 3(成绩评定 程序设计方案是否合理;程序设计是否正确;调试结果;设计说明书的质量高低; 答辩 答辩ppt下载中国建筑转正答辩ppt下载民事答辩状范文下载毕业答辩毕业答辩模板 时回答问题情况;课程设计周表现情况;总评成绩记入“课程设计成绩评分表”。 五. 进度安排 第 一 周 星期四 :课题讲解,查阅资料。 第 二 周 星期一 :总体设计,详细设计。 星期二 :编程,上机调试,修改程序。 星期三:上机调试,完善程序。 星期四:上机调试,完善程序。 星期五:答辩。 星期六—星期天:撰写课程设计报告。 第二章:系统需求分析 1(程序的功能: 对一个有N个学生的班级,每个学生有M门课程。该系统实现对班级成绩的录入、显示、修改、排序、保存等操作的管理。本系统采用一个包含N个结构的数组,每个数据结构应当包括:学号、姓名、M个课程名称。 2. 输入输出要求: 在菜单选项中1-7,选择功能项,进行对应选项的函数调用. 输入1,输入学生的基本信息存入磁盘文件中; 输入2,输出已存盘的学生信息; 输入3,输出用户所要选择科目的提问,输入科目后输出该科目一排好的学生成绩; 输入4,修改功能,输入密码.错误输出是否继续输入密码.正确则逐个输出是否想要修改学生信息; 输入5,输出三项功能的介绍,输入你的选择后输出实现的结果; 每执行一个具体的程序后都要重新显示菜单。 第三章:系统概要设计 1(程序的模块组成 第一个模块:先定义好一些必要的全局变量以及调用的函数和结构体数组。 第二个模块:设计一个菜单函数menu();实现能供用户选择功能项。 第三个模块:用enter()函数实现成绩的输入。 第四个模块:用save()函数实现成绩的保存。 第五个模块:用print()函数实现成绩输出。 第六个模块:用cort()函数实现成绩排序功能。 第七个模块:用modify()函数实现成绩修改功能。 第八个模块:用count()函数实现成绩统计功能。 2.学生信息结构数组 struct stu { char name[20]; int num; int score[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() Choice函数 7 退出程序 Choice 1 2 3 4 5 6 enter() print() save() sort() modify () count() 运行程序 2.统计函数流程图 开始 调用menu1函数 输入choice1 3 choice1 返回函数 1 2 调用show2函调用show1函数 数 输入选择J=0 的科目 I=0 J=j+1 I=0;sum=0 I=i+1 I=i+1 Is[n+结束 Sum=su1].score[ m+s[i].si] Sum=sum+s[i].sccore[j] ore[j] Temp=s[i].score[ n] s[n].score[i]=s[n+1].scor 输出平均成绩 e[i] 结束 S[i+1].score{n]=tem p 第五章:测试 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.用一个选择菜单 int menu1() { int choice1; printf("\n*******\n"); printf("1:xian shi mei ke cheng ji zui gao de xue sheng xin xi\n"); printf("2:xian shi mei ke ping jun cheng ji\n"); printf("3:xian shi chao gou ping jun cheng ji de ren shu\n"); printf("4:quit\n"); printf("********\n"); } 选择<1>.输入选择的科目用标记法找出成绩最高的的学生则输出其基本信息. 选择<2>.用for循环,先求出了每门的总成绩再除以人数的到平均成绩用一个数组接收.再用循环则的到结果. 选择<3>.先定义了一个数组b[M].用循环如果出现超过平均成绩的人就自增一次,接收到b[M]中,用循环输出b[M]则得到每门超过平均成绩的人数. 5:在modify( )函数中,当输入一个错误的密码时会出现死循环,因为跳出的 位置错误了 第六章:该系统使用说明 1(运行时进入主界面,系统根据输入的数字选项来调用相应的函数。主要实现“功能选择”的界面,在这个界面里有显示系统的七大功能,根据每个功能前面的序号进行选择。以下为该介面; 2.当录入完成输入显示学生成绩功能时,运行结果如下图: 3. 当输入输入成绩统计功能时,运行结果如下图: 3.成绩修改时需要输入密码才能进行,密码错误时不能进行该操作,只有输入正确 的密码才能运行,运行结果如下图: 第七章:总结 不经一番寒彻骨,哪得梅花扑鼻香。 一周的C语言课程设计已接近尾声了,现在回想起来真是五味俱全,从开 始的懵懂无知到现在做出一本挺有厚度的资料,我不但实践了课本的知识,还编出小程序,虽然很多人帮了我的忙,仍旧感觉自己对C语言有了深入的了解,还是有所成长,有所收获,在实践中,自己编程常会犯错误,并总结一些克服缺点的方法。深刻体会到程序设计中最重要的一部分不是编写源程序,而是调试过程。只有经过调试程序,我们才能掌握正确的语法知识及把问题的解决方法用程序语言来表达。 在这段时间里,我门匆匆忙忙为了它准备了很多,其中不免有叹息声,但是总的来说让我么学到了很多,也懂得了很多,不仅在知识方面,还在有人的生活态度,目标上。这次的C语言课程设计充分展示了C的魅力,用一些小小的实现合成一个系统从而融入到生活中解决实际问题。同时也教会了我应站在用户的角度去设计程序。在此次设计过程中必不可少的出现了 很多问题,整体规划,模块与模块之间的调用与划分,标识符的使用。单词的拼写错误,结构体数组的使用,正确的使用循环的限制条件„.。 这些问题大多是因为平时上课很少听讲的原因,以至于很多概念混淆不清 。这次的课程设计让我看到自己对C语言研究地少之又少。这次的班级成绩管理系统仍旧存在着不足。 记得开始课设的第一天,我糊里糊涂地在机房呆了一个上午,对老师要求做的课程设计束手无策,上网搜了几个,但觉得没点意思,最后还是没有用。但相对于别人的做的系统,我的好像简单多了。但后来还是不得不去看书,因为很多东西还牛毛都不知道。比如,做这个课程设计时候,最好使用链表,而链表我们还没有深入去熟悉它,在说这个课程设计牵涉到前面我们学过的所有内容,如,一些基本函数的运用,函数的调用及指针,结构体。内容多而复杂,如果没有对教材有个很好的了解掌握,是不可能篇好这个程序的。我还在把书本重新温习了一遍,对照程序一一翻书,试图找到一中解释来说明程序当中一些函数的作用和结构。 接下来的一段时间里对这段程序进行了修改,经过东凑西凑,拼拼剪剪,终于可以在电脑上运行了,但是它的功能不是很完善,需要进一步完善。后来怀着疑问去询问老师才发现其实很多问题都想比较简单的,比如在运行程序时发现无论我怎么输入成绩,第四门课的成绩都与我输入的分数不同,自己也尝试用很多方法去解决,最终不了了之。同学看过以后告诉我是我在定义的时候把初始值定义错了。在修该以后,再次运行便没看见以前的错误了。后来有用这种方法把后面的两个警告解决了一个。 在这个过程中,也试图自己独立完成这个课程,偶尔发现书本上第11章节里面,有介绍链表的使用,而且书本上关于这个课程的一些基本函数功能在本章节都有说明,比如,链表的创建,节点的插入,删除,一些基本信息的修改都有。 最终完成的课程的设计,马马虎虎的,完成的,但是还是受益匪浅。其中老 师与同学的教导让我刻苦铭心。不管其结果怎么样,但至少这个过程,让我们明白了,懂得了很多。虽然有点挫折很艰辛在里面,但是那都是短暂的,美丽的,它教会了我们不经过自己的努力,是达不到预期的结果的,不经过自己的实践操作,是体验不到其中的美妙的。不仅如此,还给了我们一个警告,对待学习不可马马虎虎,否则完成不了应有的任务,得不到理想的结果,半途而废是失败的首要原因,不要什么事情都觉得满不在乎,踏踏实实的学习,踏踏实实的工作,拥有积极乐观的态度去应对一切挫折,最终会让你走想成功的前沿。因为:“胜利永远是属于永不放弃的人~ 附录 1. 参考文献 《C程序设计(第三版)》 谭浩强 著 清华大学出版社 《C语言程序设计实用指南》 谭浩强 著 清华大学出版社 《C语言大学实用教程学习指导》 苏小红 著 电子工业出版社 2. 源代码 #include /*I/O函数*/ #include /*字符串函数*/ #define M 4 /*课程数*/ #define NUM 3 /*人数*/ #define NULL 0 #include #include int avar[M]; struct stu { char name[20]; int num; int score[M]; }; void enter(struct stu s[],int n); /*进入*/ void print(struct stu s[],int n); /*输入文件*/ void save(struct stu s[],int n); /*保存文件*/ void sort(struct stu s[],int n); /*排序*/ void modify(struct stu s[],int n); /*修改*/ void count(struct stu s[],int n); /*统计*/ int menu(); void main() { void clrscr(); struct stu student[NUM]; for( ; ; ) switch(menu()) { case 1:enter(student,NUM);break; case 2:print(student,NUM);break; case 3:save(student,NUM);break; case 4:sort(student,NUM);break; case 5:modify(student,NUM);break; case 6:count(student,NUM);break; case 7:return; } } int menu() { int choice; printf("\n**************************级成绩管理***************************\n"); printf(" 1 成绩录入\n"); printf(" 2 成绩显示\n"); printf(" 3 成绩保存\n"); printf(" 4 成绩排序\n"); printf(" 5 成绩修改\n"); printf(" 6 成绩统计\n"); printf(" 7 退出系统\n"); printf(" 学生人数级 NUM 课程 数学0 语文1 英语2 政治3\n"); printf("***************************************************************\n"); do { printf("\nchoice1-7:"); scanf("%d",&choice); } while(choice<1||choice>7); return choice; } void enter(struct stu s[],int n) //成绩录入 { char c; int i=0; int j; do { printf("please enter the message:\n"); getchar(); printf("enter name:\n"); scanf("%s",s[i].name); printf("enter num:\n"); scanf("%d",&s[i].num); printf("enter score:\n"); for(j=0;js[j].score[k]) { temp=s[min].score[k]; s[min].score[k]=s[j].score[k]; s[j].score[k]=temp; } } printf("\n The sorted numbers:\n"); for(i=0;i3); return choice1; } void show1(struct stu a[],int n1) { int k,i,j,c=0; printf("please enter the subject num:"); scanf("%d",&k); for(i=0;i=n1) printf("\n list No %d student\n",c[i].num); else { printf("modify(y/n)?\n"); ch=getchar();getchar(); if(ch=='y'||ch=='Y') { printf("enter num\n"); scanf("%d",&c[i].num); getchar(); } printf("modify name(y/n)?\n"); // ch=getchar();getchar(); if(ch=='y'||ch=='Y') { printf("enter name:\n"); scanf("%s",c[i].name); getchar(); } printf("modify record(y/n)?\n"); ch=getchar();getchar(); if(ch=='y'||ch=='Y') { printf("enter record:\n"); for(j=0;j
本文档为【班级成绩管理系统C语言课程设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_963767
暂无简介~
格式:doc
大小:117KB
软件:Word
页数:25
分类:互联网
上传时间:2017-10-31
浏览量:561