




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、六安职业技术学院课程设计报告课程名称C+课程设计系 别信息工程系所在专业计算机应用技术所在班级计算机1001系统名称学生成绩管理系统组 长卢明燃小组成员乐志勇、武 昆、符传坚 倪林华、孙红霞、吴 梅指导教师吴 涛成 绩教师签字2011年12月 日课程设计时间:2011年12月5日至2011年12月9日目 录第一章 课程设计概述11.1 课程设计的目的11.2 课程设计的要求11.2.1 课程设计的能力要求11.2.2 系统实现要求11.2.3 选题要求21.3 课程设计时间安排2第二章 系统的需求分析与设计32.1系统需求分析3系统分析(需求分析)3系统性能要求4系统的功能分析42.2系统总体
2、设计42.2.1 编辑功能的子目录功能4统计功能的子目录功能52.3 功能需求分析5学生信息录入模块5学生信息查找模块6学生信息显示模块6第三章 系统模块功能介绍73.1 功能模块7登录界面7增加学生成绩模块7显示学生成绩模块8排序统计成绩模块8查找学生成绩模块9删除学生成绩模块10修改学生信息模块10第四章 课程设计总结12致 谢14参考文献16附 录17第一章 课程设计概述1.1 课程设计的目的C+课程设计是计算机应用技术专业的重要实践性环节之一,是学生学习该课程后的一次全面综合训练。通过本课程设计的实践,更进一步总结C+课程学习中的的数据类型、程序结构、数组、函数、指针、结构体等基本概念
3、,掌握其使用方法。掌握面向对象程序设计中有关类、对象、继承、重载、多态性、输入输出流类体系、文件操作的基本概念,初步学会用类与对象这种面向对象的程序设计方法编写应用程序。培养使用面向对象的程序设计方法编写计算机程序的能力。同时,也锻炼学生的团队分工、协作能力,让同学们在实践的过程中,提高发现问题、分析问题、解决问题的能力。学会团结互助,共同合作,培养良好的团队精神。1.2 课程设计的要求 1.2.1 课程设计的能力要求本课程设计通过实现一个学生成绩管理系统,进一步熟悉C+中类的概念、类的封装的实现方式。了解系统开发的需求分析、类层次设计、模块分解、编码测试、模块组装与整体调试的全过程,加深对C
4、+的理解与Visual C+环境的使用;逐步熟悉程序设计的方法,并养成良好的编程习惯。程序设计是一门实践性很强的课程,必须十分重视实践环节。许多实际的知识不是靠听课和看书学到的,而是通过长时间的实践积累的。1.2.2 系统实现要求 设计的学生成绩管理系统应至少包含一下内容:1、学生信息的管理;2、学生成绩的统计;3、学生信息查询;4、系统的退出;我们小组在此基础上,也增加其他功能模块如:学生信息修改、学生信息删除、学生信息排列等。1.2.3 选题要求课程设计题目的选择除给定的题目外,学生也可以自拟题目,但要在征的指导教师的同意后,方可开题。1.3 课程设计时间安排 本课程设计时间为2011年1
5、2月5日至2011年12月9日止,为期一周,现将具体时间安排如表1-1所示。 表1-1 课程设计时间安排日 期任 务星期一开题、查找文献资料星期二整理、分析相关资料星期三编程实现星期四编程实现星期五验收、撰写实习报告第二章 系统的需求分析与设计2.1系统需求分析学生成绩管理系统(以下简称“系统”)可以用来管理规模较大的成绩信息,对学生的成绩信息进行维护和统计。系统的目标用户为老师或其他需要统计各种信息的人员。系统可以极大的减少用户的工作量,为用户节省更多的时间,让用户在几秒钟内获得各种统计信息,在第一时间对学生成绩有全面的了解。系统给用户提供了简单而实用的功能。如图2-1所示图2-1 学生成绩
6、管理系统流程图系统使用菜单式的用户界面,给用户以直观的使用体验。用户只要根据系统提示,通过键盘输入相应信息就可以使用系统,操作简单,不需要任何经验知识就可以轻松上手。2.1.1系统分析(需求分析)根据课程设计题目的要求,以及我们小组成员的讨论,最终确定此程序有以下功能:1) 能够实现学生学号、姓名、成绩的录入;2) 能够实现对学生信息的浏览、查找、删除;3) 能够实现对学生信息按学号顺序显示,成绩排名;4) 能够对各科成绩统计情况输出。2.1.2系统性能要求根据学生成绩管理系统的标准,以及考虑到用户的需求,所以我们在编写系统程序时注意其实用性如下:1) 系统安全、可靠;2) 功能齐全;3) 操
7、作方便;4) 易于维护和扩充。2.1.3系统的功能分析:1、资料维护:系统维护包括对各个学生姓名、成绩、学号的录入操作,对数据表中的信息进行浏览。2、成绩查询:可以对学生成绩进行详细查询。3、排列显示:包括统计学生排名成绩等。2.2系统总体设计系统功能分为两大部分:编辑和统计。增加学生成绩、显示学生成绩、排序统计成绩、查找学生成绩、删除学生成绩、修改学生信息。2.2.1 编辑功能的子目录功能编辑功能可以对数据和信息进行维护,其子目录下有以下几个功能:(1) 增加学生成绩信息通过键盘输入增加学生成绩信息,。通过键盘建立最初的信息了,建立后就可以保存成文件形式,方便以后使用。(2)修改学生成绩信息
8、修改学生成绩信息:通过用户提供的学生姓名或学号,检索到该学生,然后进行修改,可以修改姓名、年龄、各科成绩等。(3)删除学生成绩信息删除某学生的单科成绩。(例如,当某学生中期退课后,就可以用此功能将该课程成绩删除)删除某一个学生。将该学生的全部信息删除,该学生的数据将不再出现在数据库中。2.2.2统计功能的子目录功能(1)显示学生成绩信息:可以指定任意科目,并按该科目成绩由高到低将学生信息输出到屏幕。(2)排列学生成绩信息:按照学分绩优高到低的顺序,将学生信息输出到屏幕。(3)查找学生成绩信息:按照学号由小到大的顺序将学生信息输出到屏幕。2.3 功能需求分析 简易学生成绩管理系统主要有六大模块:
9、学生信息(如学号、姓名、各科成绩、年龄等)的录入文件中;查找学生成绩信息;显示学生成绩信息;修改学生成绩信息;删除学生成绩信息;排列学生成绩信息。学生信息录入模块 主要功能是录入学生的信息,具体操作是:先打开程序的主界面,输入密码,然后选择数字1,即可录入数据,程序依次输出:学生姓名、学生学号、学生的出生年份以及各科成绩等,确认后按任意键退出。学生信息查找模块 主要功能是查找用户所需要的学生信息,直接选择数字4,便可根据学生的姓名、学号可以查询到相关成绩,2.3.3学生信息显示模块 主要功能是显示学生的相关信息,直接选择数字2,便可显示相关学生的信息(包括学号、姓名、年龄以及各科成绩)第三章
10、系统模块功能介绍3.1 功能模块“学生成绩管理系统”包括六个模块:增加学生成绩、显示学生成绩、排序统计成绩、查找学生成绩、删除学生成绩、修改学生信息。这六个模块既相互联系又相互独立。3.1.1登录界面 用户输入正确的密码成功登陆后,出现登录界面如图3-1所示。图3-1 登录界面3.1.2增加学生成绩模块主要功能用来对学生的成绩进行收集和对年龄和学号的收集,以便于统计信息及增加学生成绩信息界面的可观度。老师可以通过填写表格的形式,输入成绩等相关信息,系统可以自动避免重复信息。 如图3-2所示。图3-2增加学生成绩3.1.3显示学生成绩模块主要功能便于大家对成绩 出生年份、学号进行查询处理。显示学
11、生成绩信息界面 如图3-3所示。图3-3显示学生成绩3.1.4排序统计成绩模块主要功能用来对学生的成绩进行排序,使教师了解学生的近期学习状况排列系统成绩信息界面,如图3-4所示。图3-4排序统计成绩3.1.5查找学生成绩模块主要功能用来对学生的成绩方便快捷的进行查询,可以通过学号和姓名进行查询。查找学生成绩信息界面如图3-5所示。图3-5查找学生成绩3.1.6删除学生成绩模块主要功能用来对学生的成绩进行删除,老师可以对数据进行删除,系统能够通过老师给出的条件查找出要删除信息,并提示是否确定删除,删除后该信息将从数据库消失。删除学生成绩信息界面如图3-6所示。图3-6删除学生成绩3.1.7修改学
12、生信息模块主要功能用来对学生的一些信息进行修改。老师可以对数据库中的一些信息进行修改,系统能够通过老师给出的条件查找出所要修改的信息。修改后自动保存,并自动查找是否是重复信息。修改学生信息模块界面如图3-7所示。图3-7修改学生信息第四章 课程设计总结本次课程时间从2011年12月5日至2010年12月9日,为期一周,按照教学计划和学院的安排,在本班教室进行了10级计算机应用技术专业C+语言程序设计课程设计的实训周。C+语言程序设计的课程设计,使学生能将学到的C+语言程序设计思想用到具体的工作和学习中,加深对类与对象的理解,是将计算机课程与实际问题相联接的关键步骤。通过课程设计,能够提高学生分
13、析问题、解决问题,从而运用所学知识解决实际问题的能力,因而必须给予足够的重视。整个课程设计分为分组、编程及调试、程序测试及检查、提交课程设计报告四个阶段来完成。1、分组及准备阶段:此阶段将学生分成若干小组,每小组选择好设计模块,然后由学生自主进行问题分析和相关资料查询,通过问题分析、概要设计、详细设计、用户界面设计、编码、测试等一系列过程,培养学生动手实践、协作开发项目的能力,为后续专业技能的训练提供基础;2、编程及程序调试阶段:此阶段学生集中上机进行,对于学生出现的问题,老师及时帮助学生解决,取得了很好的效果。同时为了保证每位同学的课程设计效果,每次课堂都会点名,并纳入学生的平时成绩,该成绩
14、占总成绩的30%;3、程序测试及检查阶段:此阶段由老师对每位学生的设计结果作测试和检查,并根据测试及检查结果评定学生成绩,此成绩占课程设计总成绩的40%。检查的方法以学生答辩的方式进行,针对学生的课设提问有针对性的问题,根据回答问题的情况和课程设计的复杂度给定成绩;由于学生成绩管理系统的功能十分强大,程序的编写也十分的复杂,所以我们七个人一组,每人完成一部分程序.程序的编写是一项困难的任务,完成此程序必需运用书中的大部分知识,而且要有清晰的思路,有较强的语言组织能力.由于七人各完成一部分,所以最后七部分程序要能衔接得十分完整,所以七个人要在编写自己的程序的基础上考虑其他人的程序结构.编写程序就
15、是一项十分困难的事,所以一定要细心,不能有一丝的马虎,否则会前功尽弃.三是程序的检查和系统的调用.程序写完后并不能保证它一定能运行,所以要对它进行调试,发现其中的弊端,并作出相应的修改,以完善程序,使其逻辑性,运算能力都符合题目要求,使学生成绩管理系统的运行能力达到课程的目的.这也体现了我们7个人的团队合作能力!课程设计中体现出新时代大学生思维,理论方法结合实际应用能力的进步,也证明我系课程实践环节的点滴进步。主要有以下几点特色:1.本课程设计采取分组合作模式,这样可以增加同学们的协同能力,为以后融入单位合作工作模式打下良好的基础。此外课程设计的选题模式采取抽签模式这样以来加强了随机性,增加量
16、趣味性;2.本课程设计的选课题库更加贴近于我们的生活,激发学生观察生活,体验生活的能力。让同学有所想,有所做,同时增加量软件的应用性能;3本课程设计在一定的持续时间内,有明确的任务书,实行任务到人制度。使同学有事可做,也充分体验了“赶工期”的生活;4.本课程设计在撰写实践报告环节上,更是高标准、严要求。老师专门找出时间为同学讲解报告的书写细节,并且为同学制作模板以供参考。为日后撰写毕业设计报告等打下良好的基础。我希望在下一次课程设计中我们会有更大的进步,我也会努力改进存在的问题,使我们的课程设计更具有特色。通过本次的C+课程设计,让我们学会了把书本上的知识应用到了实际中来。虽然在这一周中有过挫
17、折和坎坷,有的问题一直到了最后才被解决,但是我认为这未必就不是好事,这样能锻炼我们的意志,磨练我们的耐心,失败是成功之母,这话一点都没错,没有失败就没有成功。让我们没有失去信心的是关怀我们的老师,当我们有了问题和疑问,老师就很耐心的给予讲解,让我们有了一个良好的学习氛围。经过为期一周的紧张的上机编程学习,每位同学的设计题目都达到了理想的效果,使学生对数据结构课程所学的知识有了更深入的理解和掌握,巩固了理论教学所学到的知识,扩展了学生编程思想,取得了预期的效果。由于水平有限及所学知识无限,在课程设计中难免有不少错误和不足之处,还请老师批评指正。致 谢C+课程设计是对我们对这一个学期所学知识运用能
18、力的一次全面的考核,也是对我们进行基本功的训练,培养我们综合运用所学知识独立地分析问题和解决问题的能力,为以后撰写毕业论文和工作打下良好的基础。在本次设计中,我得到吴涛老师的悉心指导,另外也是和本设计小组其他设计人员的大力支持才得以完成。紧张而又辛苦的一周课程设计结束啦。在我们快要完成老师给我们下达任务的时候,我们设计小组仿佛经历一次翻山越岭,登上了高山之巅,顿时心旷神怡,眼前豁然开朗。课程设计是我们专业课程知识综合应用的实践训练,这是我们迈向社会、从事职业工作前一个必不可少的过程。“千里之行始于足下”,通过这次毕业设计我们深深体会到这句千古名言的真正含义。我们今天认真的进行课程设计,学会脚踏
19、实地的迈开这一步,就是为了明天能稳健地在社会大潮中奔跑打下坚实的基础。说实话,课程设计真的是有点累。然而,当我们着手清理自己的设计资料,检查程序,得出的这个程序,仔细回味这一周的心路历程,一种少有的成功喜悦即刻使我们的倦意顿消。虽然这是我们刚学会走完的第一步,是我们人生中的小胜利,然而它令我感受到自己成熟了许多。我清楚的意识到做课程设计不是一件容易的事,但是我们更多的是一种收获。通过此次课程设计我们深刻的感悟到:做设计是苦活但要细心;实践动手做比空想强:合作精神的强大的;老师是很好的资源,要想他挖掘。成败决定于细节。老子说:“天下难事,必做于易;天下大事,必做于细”;我们做课程设计也需要这种精
20、神,千里之堤毁于蚁穴,蚂蚁的巢穴都将会导致千里的河堤崩溃,一点的不足也会使种鸽程序运行不出来。实践是检验真理的唯一标准,只有经得起实践检验的想法,意识才是正确的。俗语有所:众人拾柴火焰高。我们做课程设计也需要发挥团队的精神的作用。队员之间互相合作,发挥相互的特长这样会令程序设计工作顺利完成而省很多时间和精力,达到事半功倍的效果。今天的企业管理强调的时团队精神,不是个人主义,我们通过这次课程设计深刻了解到这一点,我们同学之间也得到很好的交流。老师是一本活书、是最好的利用资源,我们要不断在他身上进行“开采”,获取自己的宝贵的知识。老师不会是都帮我们亲手的去做好,他主要做的工作的引导指引我们、启发我
21、们。以他的话说就是:授之以鱼不如授之以渔,亲手帮你做好一次,那下次遇到同样的问题,你们还是不会解决,那不是等于不教。我们要学会独立思考,提高自己的学习能力。本次课程设计能够顺利完成,首先我要感谢我们C+老师吴老师,他不但教会我们专业方面的知识,在本次课程设计中给与我们大力支持和帮助的,每有问题,老师总是耐心的解答,使我能够充满热情的投入到课程设计中去;还要感谢我们这个团队的同学们,是我们7个人的齐心协力才完成此次课程设计。最后还要感谢相关资料的编著者和给予我们支持的社会各界人士,感谢您们为我们提供一个良好的环境,使本次课程设计圆满完成。参考文献【1】郑莉,董渊,张瑞丰等编著.c+语言程序设计(
22、第3版).北京:清华大学出版社,2009.【2】关治.陈景良.数值计算.北京:清华大学出版社,1993【3】洪永清,黄德才,吕丽民.面向对象建模与设计.北京:人民邮电出版社,1998【4】邵维忠,杨芙清.面向对象的系统分析.北京:清华大学出版社,1998【5】谭浩强.C程序设计.北京:清华大学出版社,1991【6】张国峰.C+语言及其程序设计教程.北京:电子工业出版社,1997【7】侯捷.STL源码剖析.武汉:华中科技大学出版社,2002【8】三味创作室.Visual C+ 6.0 应用与提高.北京:科学出版社,1999【9】和克智.C+程序设计(第2版).西安:西安交通大学出版社,1999【
23、10】徐士良.C常用算法程序集.北京:清华大学出版社,1995【11】附 录源程序代码# include # include # include # include int code();/登录密码using namespace std;/ Student类class Studentpublic:char name20;char Id20;int Date; /学生出生日期int Age; /学生年龄int Cnum; /C+课程得分int Mnum; /数学课程得分int Enum; /英语课程得分int sum; /总分 Student * Next;void Input()coutnam
24、e;coutId; coutDate;coutCnum;coutMnum;coutEnum;sum=Cnum+Mnum+Enum;Age=2011-Date;void ReadFile(istream & in)innameIdDateAgeCnumMnumEnumsum;void Show()cout姓名:nameendl学号:Idendl出生日期:Dateendl年龄:AgeendlC+:Cnumendl数学:Mnumendl外语:Enumendl总成绩:sumendlendlNext;p!=End;p=p-Next)p-Show();coutInput(); End-Next=new S
25、tudent; End=End-Next; cout添加成功!endl; coutNext!=End;p=p-Next)if(!strcmp(p-Next-name,name)ai=p;i+;if(i=0)return 0;else ai=End;return i;Student *FindID(char * Id)for(Student * p=Head;p-Next!=End;p=p-Next)if(!strcmp(p-Next-Id,Id)return p;return NULL;int code()int i=0,j=0; int c; char name15,cod15; coutn
26、n;while(j3)couttt管理员:;cin.getline(name,sizeof(name);/coutendl= 0)if (c = b)coutb b;i = i - 1; elsecout*;codi = c; c = getch();if(c != b)i = i + 1;codi = 0;coutendlendltt;if(strcmp(name, 1)=0)&(strcmp(cod, 111)=0)|(strcmp(name,2)=0)&(strcmp(cod,222)=0)cout登陆成功!nn;j=4;break;else if(strcmp(name, *)=0)|
27、(strcmp(name, *)=0)cout登陆失败!密码错误!nn;else coutNext=new Student; End=Head-Next; in.open(sort.txt); if(!in)couttt这是一个新系统,无学生信息。请先输入。ReadFile(in);if(End-name0=0)break;End-Next=new Student; End=End-Next;in.close();couttt读取学生信息成功!Next!=End;)temp=Head-Next;Head-Next=Head-Next-Next;delete temp;delete Head,E
28、nd;/菜单void Studentmessage:ShowMenu() cout 六安职业技术学院学生成绩管理系统 endl; cout endl; cout 1.增加学生成绩 endl; cout 2.显示学生成绩 endl; cout 3.排序统计成绩 endl; cout 4.查找学生成绩 endl; cout 5.删除学生成绩 endl; cout 6.修改学生信息 endl; cout 0.安全退出系统 endl;coutnttntt请选择:;void Studentmessage:Find()char name20 ,Id10; int x,k; Student * p=NULL
29、,*a6; coutntt*n; couttt 1.按学生的姓名查找 ntt 2.按学生学号查找 ; coutx; switch(x)case 1:coutname;if(k=FindItem(name,a)for(int i=0;ai!=End;i+)ai-Next-Show();cout输入任意字符!继续;getch();elsecouttt没有找到该姓名的学生!nendl;cout输入任意字符!继续;getch();break;case 2:coutId;if(p=FindID(Id)p-Next-Show();cout输入任意字符!继续;getch();elsecouttt没有找到该学
30、号的学生!nendl;cout输入任意字符!继续;getch();break;/修改信息void Studentmessage:ModifyItem() char name20;int k=0,te,t,x; Student * p=NULL,* a6; coutntt*n; couttt 1.按学生的姓名查找 ntt 2.按学生学号查找 ; coutx; switch(x)case 1:coutname;/找到单个学生直接删除if(te=FindItem(name,a)if(te=1)a0-Next-Input();cout修改成功!endl;cout输入任意字符!继续;getch();el
31、secouttt找到多个学生的信息!endl;/找到多个学生选择删除for(int i=0;ai!=End;i+)cout第i+1Next-Show();coutt;at-1-Next-Input();cout修改成功!endl;cout输入任意字符!继续;getch();elsecouttt没有找到!endl;cout输入任意字符!继续;getch(); break;case 2:coutId;if(p=FindID(Id)p-Next-Input();cout修改成功!endl;cout输入任意字符!继续;getch();elsecouttt没有找到!endl;cout输入任意字符!继续;
32、getch(); break;/删除信息void Studentmessage:RemoveItem() char name20;int k=0,te,x,t;Student * p=NULL,*temp=NULL,*a6; coutntt*n; couttt 1.按学生的姓名删除 ntt 2.按学生学号删除 ; coutx; switch(x)case 1:coutname;if(te=FindItem(name,a)if(te=1) /找到单个学生直接删除temp=a0-Next;a0-Next=a0-Next-Next; delete temp;couttt删除成功!endl;cout输
33、入任意字符!继续;getch();elsecouttt找到多个学生的信息!endl;/找到多个学生选择删除for(int i=0;ai!=End;i+)cout第i+1个:Next-Show();coutt;temp=at-1-Next;at-1-Next=at-1-Next-Next; delete temp;couttt删除成功!endl;cout输入任意字符!继续;getch();elsecouttt没有找到该学生!nendl;cout输入任意字符!继续;getch();break;case 2:coutId;if(p=FindID(Id)temp=p-Next;p-Next=p-Next-Next; delete temp;couttt删除成功!endl;cout输入任意字符!继续;getch();elsecouttt没有找到该学生!nendl;coutNext;p!=End;p=p-Next)n+;return n;/对当前链表进行排序void Studentmessage:Sort() cout
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司员工安全教育培训题及答案
- (2025)企业合同法律风险防范培训试题及参考答案
- 智慧政务面试题目及答案
- 教师工作计划个人初中(5篇)
- AIoT技术市场前景展望
- 2025年钻探招聘考试题目及答案
- 食物等级考试题及答案
- 2025年考研数学二真题及答案
- 2025年山西省政府采购评审专家考试题库附含答案
- 2025年山东药品食品职业学院辅导员招聘考试笔试备考题库及答案
- 《液压与气动》课件(共十三章)
- 养老机构服务等级评定操作手册
- 中资企业在非洲的安全风险应对策略与启示
- 2025年山东高等学校教师资格考试(综合)历年参考题库含答案详解(5套)
- 劳动课洗衣服课件
- 2025年小学生“学宪法讲宪法”活动知识竞赛题库含答案
- 村卫生室医疗安全管理
- 云南省曲靖市2025年八年级下学期语文期末考试卷及答案
- 2025至2030中国汽车金融行业市场深度分析及竞争格局与发展前景展望报告
- 白酒生产技术课件
- 动物咬伤的现场急救处理
评论
0/150
提交评论