C++课程设计报告样本.doc
资料内容仅供您学习参考,如有不当之处,请联系改正或者删除。程序设计课程设计报告专业计算机科学与技术学生姓名沈晓慧班级Z计算机142学号指导教师李先锋完成日期 1月13日信息工程学院学生成绩管理系统设计一、 设计目的1、 巩固并加深对C+语言程序设计知识的理解; 2、 掌握和提高C+语言编程和程序调试的基本技能; 3、 进一步理解和运用结构化程序设计的思想和方法; 4、 提高运用C+语言解决实际问题的能力; 5、 初步掌握开发小型实用软件的基本方法; 6、 掌握书写程序设计开发文档的能力( 书写课程设计实验报告) 。二、 设计内容1、 问题描述学生信息包括: 学号、 姓名、 性别、 年龄、 班级等信息。小学生除了包括学生所有信息外, 还包括英语、 数学和语文成绩。中学生除了包括小学生所有信息外, 还包括地理、 历史成绩。大学生除了包括学生所有信息外, 还包括专业、 英语、 程序设计和高等数学等课程。设计一程序能够对学生成绩进行管理, 应用到继承、 抽象类、 虚函数、 虚基类、 多态和文件的输入/输出等内容。2、 功能要求( 1) 添加功能: 程序能够添加不同学生的记录, 提供选择界面供用户选择所要添加的类别, 要求学号要唯一, 如果添加了重复学号的记录时, 则提示数据添加重复并取消添加。( 2) 查询功能: 可根据学号、 姓名等信息对已添加的学生记录进行查询, 如果未找到, 给出相应的提示信息, 如果找到, 则显示相应的记录信息。( 3) 显示功能: 可显示当前系统中所有学生的记录, 每条记录占据一行。( 4) 编辑功能: 可根据查询结果对相应的记录进行修改, 修改时注意学号的唯一性。( 5) 删除功能: 主要实现对已添加的学生记录进行删除。如果当前系统中没有相应的记录, 则提示”记录为空! ”并返回操作。( 6) 统计功能: 能根据多种参数进行统计。能统计学生人数、 总分、 单科的平均分等。( 7) 保存功能: 可将当前系统中各类记录存入文件中, 存入方式任意。( 8) 读取功能: 可将保存在文件中的信息读入到当前系统中, 供用户进行使用。( 9) 排序功能: 可按总分和单科成绩排名次。3、 流程设计系统经过调用方法来完成模块功能的实现, 比如使用如下自定义的方法: 其input();show();statistic();section();search();sort();update();quicksort();fileout();方法实现输入信息、 显示信息、 成绩统计、 各科排序、 查询记录、 文件输出等功能。而Main()函数用于调用这些方法。功能模块分析图: 4、 程序设计本程序设计基本三步骤: ( 1) 创立一个结构体student,包含三个属性: ( 2) 分别定义功能方法, 并在调用之前声明: ( 3) 在主函数内逻辑调用方法本程序的疑难点主要是文件写入读出流的基本使用: 主函数中, 菜单功能的选择, 使用条件选择语句if()else if else进行逻辑判断, 也能够使用switchcase5、 运行结果具体测试调试过程如下: 主界面如图2-1: 如图2-1程序运行最初并没有具体的文本信息, 因此只能经过文档写入之后才能读取。键盘输入N或者n, 学生大概信息( 学生人数、 学期、 课程数、 具体课程名) 如下图如图2-2: 如图2-2按任意键进行详细录入如下图2-3: 如图2-3(1) 输入基本信息如图2-4: 如图2-4如图2-5(2) 显示成绩信息如图2-6: 如图2-6(3) 成绩统计分析如图2-7: 如图2-7(4) 统计各科各分数段成绩如图2-8: 如图2-8(5) 查找某个学生的各科成绩信息如图2-9经过输入姓名或者学号匹配如图2-9(6) 由高到低显示成绩如图2-10: 如图2-10更新学生成绩a.经过姓名修改基本信息如图2-14: 如图2-11b.更新学生成绩如图2-12: 如图2-12(7) 保存学生与成绩信息如图2-13: 如图2-13输出的文本如图2-14: 如图2-14文本最终保存名格式是basic_保存名.txt(8) 结束退出系统三、 设计小结一周的C+语言课程设计实训马上就结束了, 我的收获是很大的。经过课程设计这段时间的练手,让我对C+的编写能力有了很大程度的提高,经过程序设计过程中所遇到的困难棘手的问题以及绞尽脑汁的思考,翻阅资料,更大程度地提高自身的编程能力,改进了我之前对部份C+语法知识的误解。这次课程设计, 我巩固了所学过的知识, 能用C+语言熟练的运用顺序、 选择、 循环三大结构在整个程序的编写中, 调试占了很大地时间。要想写好C+语言的程序, 必须认真对待代码的每一个细节, 还必须熟练的掌握控制台的错误提醒, 这对程序的调试是非常重要的。经过这次实际动手能力的培养, 我进一步熟悉了C+语言的结构和使用方法, 基本达到了能独立阅读, 编译和调试一定规模的C+语言程序的水平。另外, 我觉得学习C+有一个比较大的好处, 就是能够了解到在电脑中每一个方法的来龙去脉。与同学们交流的过程中, 了解了程序的多种解决方法, 知道了不同编写方法有不同的特点。总结C+语言实训的几个重要作用: 1加深对课堂讲授内容的理解 课堂上要讲授许多关于C+语言的语法规则, 听起来十分枯燥无味, 也不容易记住, 死记硬背是不可取的。然而要使用C+语言这个工具解决实际问题, 又必须掌握它。经过多次上机练习, 对于语法知识有了感性的认识, 加深对它的理解, 在理解的基础上就会自然而然地掌握C+语言的语法规定。对于一些内容自己认为在课堂上听懂了, 但上机实践中会发现原来理解的偏差。 学习C+语言不能停留在学习它的语法规则, 而是利用学到的知识编写C+语言程序, 解决实际问题。即把C+语言作为工具, 描述解决实际问题的步骤, 由计算机帮助我们解题。只有经过上机才能检验自己是否掌握C+语言、 自己编写的程序是否能够正确地解题。 自己编好程序上机调试运行时, 可能有很多你想不到的情况发生, 经过解决这些问题, 能够逐步提高自己对C+语言的理解和程序开发能力。 2熟悉程序开发环境、 学习计算机系统的操作方法 一个C+语言程序从编辑、 编译、 连接到运行, 都要在一定的外部操作环境下才能进行。所谓"环境"就是所用的计算机系统硬件、 软件条件, 只有学会使用这些环境, 才能进行程序开发工作。经过上机实验, 熟练地掌握C+语言开发环境, 为以后真正编写计算机程序解决实际问题打下基础。同时, 在今后遇到其它开发环境时就会触类旁通, 很快掌握新系统的使用。 3学习上机调试程序 完成程序的编写, 决不意味着万事大吉。你认为万无一失的程序, 实际上机运行时可能不断出现麻烦。如编译程序检测出一大堆错误。有时程序本身不存在语法错误, 也能够顺利运行, 可是运行结果显然是错误的。开发环境所提供的编译系统无法发现这种程序逻辑错误, 只能靠自己的上机经验分析判断错误所在。 经过这次为数不多的几天计算机实践学习, 我们更好的了解了一些关于C+语言的知识, 理解巩固了我们C+语言的理论知识。 C+语言这门课程对于我们应用电子专业的同学也相当重要, 我们会再将来继续学习并熟悉这门课程。参考文献1 C+程序设计教程( 修订版) , 钱能, 清华大学出版社, 7月2 C+面向对象程序设计实验和课程设计教程, 游洪跃, 清华大学出版社, 4月3visual C+从入门到精通 明日科技 编著4C+编程思想( 美) 埃克尔 编著 刘宗田 译