课程设计任务书 一、 设计题目 (一)学生成绩排名
(二)根据条件进行学生成绩排名
(三)链表的操作(链表的建立,访问,删除链表指定结点, 增加结点)
(四)学生成绩文件管理
(五)一个综合系统(学生成绩管理系统) 二、 主要内容 (一)学生成绩排名
先采用选择法,将学生成绩从高到低进行排序,再输入一个学生的成绩,将此成绩按照排序规律插入已排好序的学生成绩数组,最后将排好序的成绩单进行反序存放。
(二) 根据条件进行学生成绩排名
在函数中进行 10个学生成绩从高到低排名, 再改进函数, 进行 n个学生成绩从高到低排名, 排名方式根据函数的style参数进行,
如style为‘a'按升序排,style为 ' d ' 按降序排( a:ascending 升,d:descending 降)。
编写多个不同函数,使之能实现不同的排序算法(3种以上),再编写一个通用输出函数,(要求用函数指针做参数)能分别打印不同排序算法的结果。
(三)链表的操作(链表的建立,访问,删除链表指定结点,增加结点) 建立一个动态链表,将学生数据(学号,成绩)存入链表结构中,实现链表的访问(求学生成绩的平均分,找到最高分,最低分,将其数据输出)。删除指定学号的学生数据,对学生数据进行排序,分别在链表头部,中间,末尾插入学生数据。
(四) 学生成绩文件管理
定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩,输出单门课成绩最高的学生的学号、姓名、以及该门课程的成绩,输出三门课程的平均分数最高的学生的学号、姓名及其平均分,将10个学生的相关数据,存入文件中,再从文件中读出,按照平均分数从高到低进行排序,分别将结果输出到屏幕上和另一文件中,再从文件中读取第 1 ,3 , 5 ,7, 9个学生的数据。
(五)学生成绩管理系统设计:
数据库的数据项主要数据包括:学号、姓名、年级、专业、成绩1、成绩2、成绩3、平均成绩、总成绩。
要求具有以下功能: (1)添加、删除任意个记录。 (2)修改任意个记录。 (3)显示、保存记录。
(4)排序功能:打开学生数据库,计算每个学生的平均成绩和总成绩,用冒泡法或选择排序法将平均成绩和总成绩排序后生成两个新文件(从大到小),存盘并显示这两个文件的全部记录。
(5)查询功能:打开总成绩排序文件,用折半查找法统计出给定分数的人数并显示。
三、 具体要求
围绕课程设计的目的和意义,基本要求如下:
、认真阅读《C语言课程设计》指导书,明确课程设计的目的、1 意义和要求;
2、快速总结C程序设计语言的精髓,如:函数的概念、函数的设计和函数的调用;
3、快速熟悉Tuber C 或C++的上机环境。能熟练进行高级编辑操作(特别是字块操作);熟悉步进式、断点跟踪的程序调试方法,提高工作效率。
4、根据“课程设计题目”,采用结构化的程序设计思想,确定系统的总体设计方案、确\定时间进度。如果是多人共一题,则要首先完成小组内的人员分工及安排,不允许重题现象。
5(学习并了解良好的程序设计风格。按质、按量、并按时间完成课程设计的任务。
6(提供可运行的课程设计系统,参加上机面试答辩。
本次课程设计的重点是:学会设计并编写函数,掌握好各函数之间的调用关系;利用文件操作函数,建立数据库并完成对数据库的各种操作;掌握几种典型算法的应用(如:冒泡法、选择排序法和折半查找法)。同时锻炼学生根据题目进行分析、设计、编码、调试程序和书写必要文档的综合处理能力,从实践中学习并体会程序设计的结构化思想和设计方法。
四、 进度安排
依照教学计划,课程设计时间为3周。按照软件工程的思想,软件系统的分析设计至关重要,并要充分重视书写“文档”。避免甚至杜绝“拿到题目就编码”的现象。建议将时间分为三个阶段: 第一阶段,根据题目要求,拿出系统的总体设计方案:即构思各程序模块的算法,并画出相应的N-S图,同时编写相应的文档; 第二阶段,根据N-S图编写程序代码并单独调试,再将调试通过的各个子模块进行集成调试;
第三阶段,归纳文档资料,按要求填写在《课程设计说明书》上,并参加答辩。
三个阶段时间分配的大概比例是: 35:45:20。 五、 完成后应上交的材料
1(课程设计的题目、系统的总功能和各子模块的功能; 2(题目的设计思想(或算法)简述; 3(主要程序的框图(要求用N-S图);
4(源程序代码(要求在关键的位置有注释,从而增加程序的可读性); 5(课程设计的总结报告,主要包括以下内容: (1)课程设计中遇到的主要问题和解决方法;
2)你的创新和得意之处; (
(3)设计中存在的不足及改进的设想; (4)本次课程设计的感想和心得体会。
以上完成的源程序及相关文档,填写在《课程设计说明书》上,要求干净整洁,符合课程设计的要求和规范。
六、 总评成绩
指导教师 签名日期 年 月 日 系 主 任 审核日期 年 月 日 目 录
一、设计任务的主要算法分析?????????????????1 1.1主要算法具体分析 ??????????????????2
二、程序的流程图??????????????????????3 2(5学生成绩管理系统的N-S图??????????????8
1. 系统总流程图模块???????????????? 8 2. 录入功能模块 ??????????????????9 3. 删除功能模块 ????????????????10 4. 修改功能模块??????????????????11 5. 文件保存功能模块 ??????????????12
6. 排序功能模块 ???????????????13 7. 查询功能模块 ?????????????????14 8. 浏览功能模块 ???????????????14
三、各个模块的源代码 ???????????????????15 3(1学生成绩排名
???????????????????15 3(2根据条件进行学生成绩排名??????????????17 3(3链表的操作?????????????????????22 (4学生成绩文件管理??????????????????32 3
3(5学生成绩管理系统??????????????????39 A. 口令模块?????????????????? 39 B菜单模块?????????????????? 39 C.录入功能模块?????????????????? 41 D.删除功能模块??????????????????? 52 E.修改功能模块??????????????????? 50
F.文件保存模块?????????????????? 43 G.排序功能模块
??????????????????? 48 H.查询功能模块??????????????????? 45 I.浏览功能模块??????????????????? 44
????????????????????54 四、程序运行效果图
4.1 用户登陆画面 ??????????????????54 4.2 菜单显示画面
?????????????????? 55 4.3 录入功能图示 ??????????????????56 4.4 删除功能图示 ??????????????????56 4.5 修改功能图示 ??????????????????56 4.6文件保存图示 ???????????????????57 4.7排序功能图示???????????????????58 4.8查询功能图示???????????????????58 4.9浏览功能图示???????????????????59
五、设计心得 ??????????????????????60 5.1 课程设计中遇到的主要问题和解决方法 ???????60 5.2 本程序的创新和得意之处 ?????????????60 5.3 设计中