1、 课程设计报告课程设计报告 (本科)(本科) 课程: 数据结构 学号: 姓名: 班级: 2013 级计算机科学与技术(嵌入式) 教师: 时间: 2014.12.12014.12.30 计算机科学与技术系 1 设计名称: 成绩分析问题 设计内容、目的与要求: 1.设计内容:录入并保存一个班级学生多门课程的成绩,并对成绩进行分析。 2.目的与要求: a)通过键盘输入各学生的多门课程的成绩,建立相应的文件 input.dat。 b)对文件 input.dat 中的数据进行处理,要求具有如下功能:按各门课程成绩 排序,并生成相应的文件输出;计算每个人的平均成绩,按平均成绩排序,并生 成文件;求出各门课
2、程的平均成绩、最高分、最低分、不及格人数、6069 分人 数、7079 分人数、8089 分人数、90 分以上人数;根据姓名或学号查询某人的 各门课成绩。 c)使用 Visual C+ 6.0 控制台应用程序开发,界面美观。 计划与进度安排: 计划: 1.首先明确设计要求和理论知识,了解题目的大致思路。 2.上网或者去图书馆搜集资料,对题目进行编写。 3.对程序进行调试和修改,并分析运行结果。 进度安排: 1.12 月 1 日-12 月 10 日:程徐从图书馆借阅了有关数据结构方面的书,研究所 给条件,分析该系统应该达到的目标;章燕芳复习结构体,数组等相关知识,江 淑芬上网搜索类似题目的解题思
3、想。 2.12 月 11 日-12 月 20 日:大家共同讨论算法思路,编写程序并进行上机调试程 序,并分析该程序实现的功能。 , 3.12 月 21 日-12 月 25 日:大家根据运行的结果,完善程序,填写课程设计报告 册,准备验收。 2 设计过程、步骤: 设计过程: 1. 程序结构的分析: 2. 函数功能的描述: subject()函数:选择某个学科,分析与他有关的所有数据。例如本题的各科的平 均成绩、最高分、最低分等 studentave()函数:求每个学的平均成绩并且按平均成绩排序。 nosearch()函数:按学号查找某个学生。 namesearch()函数:按姓名查找某个学生。
4、cunchu()函数:把数据存到 C 盘 RJ 下的 input.dat 中。 duqu()函数:从 C 盘 RJ 下的 input.dat 中读取数据。 步骤: 首先定义 student 结构体,再定义结构体成员,其中字符型数组 name20和 no10分别来存实验数据中的姓名和学号,另外定义整型变量 math、english、 computer 分别存储各科成绩。 再定义存储函数 cunchu()和读取函数 duqu()这两个函数分别通过运用文件存储 函数 fwrite 和文件读取函数 fread 来实现将数据存入指定路径,以及从指定路 径读取数据,并显示在显示屏上。通过构造函数 subj
5、ect()来实现对各科成绩 的分析,studentave()来对个人成绩进行分析,nosearch()和 namesearch()来 实现按条件查找不同的学生信息。 最后在主函数中输入实验数据,并通过调用各个函数来实现实验要求。 main 函数 分析某个学 科 分析个人平 均成绩 按条件查找 存储和读取 数据 cunchu()函 数 duqu() 函数 nosearch() 函数 namesearch ()函数 subject()函 数 studentave() 函数 3 结果与分析: 1. 选择运行后出现如下界面: 2. 输入 1 即为对数学成绩的分析 4 3. 输入 2 即为对英语成绩的分
6、析: 4. 输入 3 即为对计算机成绩的分析: 5 5. 个人平均成绩的分析: 6. 输入要找的学号和姓名之后: 7.输入不存在的学号的分析: 6 设计体会与建议: 程徐:接近一个月的课程设计在紧张而忙碌的氛围中度过了。在这段时间里, 我不但对课本上的知识有了更深刻的理解,还学到了平时课堂上学不到的知识, 使我对计算机有了更深刻的认识。首先,我掌握了成绩分析程序的判断和设计, 使自己的主动学习能力得到提高。 虽然在刚开始设计程序的过程中没有太多的思 路,但是通过图书馆,上网查阅资料也是自己得到了解决问题的办法。在调试程 序的过程中尽管存在一些错误,但是通过翻阅课本,熟识课本上的相关知识,使 得设计方案中发现的问题得到解决并成功实现系统所需要的功能, 那种成就感使 我忘记了这些天的辛苦。我学到了很多知识,熟识了很多程序代码,也认识到自 己的基础知识不是很丰富。 时间虽短, 我却收获丰富, 不单单是对于知识的收获, 还夹杂着同学们互帮互助的精神和合作的精神。总之,这次课程设计给了我们一 次应用自己所学知识的机会,使我们对数据结构这门课程有了更深刻的认识。对 于我们而言