《《现代软件工程与实践》课程论文模版》由会员分享,可在线阅读,更多相关《《现代软件工程与实践》课程论文模版(8页珍藏版)》请在金锄头文库上搜索。
1、.学号 成绩 不要忘记了填写学号。课程论文现代软件工程与实践题 目这里的题目是自己选的设计题目,不是本课程的题目。: 学院(系): 信息工程学院 专业班级: 专业班 学生姓名: 指导教师: 魏洪涛 年 月 日.摘 要摘要标题格式:居中,黑体,小二,2倍行间距,段前段后1.5行距。简要介绍所选题的目的、意义、要求,说明主要的设计思路、功能、运行结果。摘要的格式同正文内容一样:宋体,小四,1.25倍行距。目 录格式同摘要一样。摘 要1目 录11 前言(或“绪论”)11.1 设计任务11.1.1 需求说明11.2 设计内容12 程序要求13 算法分析14 流程图(或框图、模块图)35 程序源代码36
2、 调试及运行结果47 体会48 参考文献41 前言(或“绪论”)章标题格式:前面序号用阿拉伯数字,数字与标题之间空一个空格,两端对齐,黑体,小二,2倍行间距,段前段后1.5行距。1.1 设计任务小节标题格式:序号用章的加点再加节的阿拉伯数字表示,序号与标题间空一个空格,两端对齐,宋体,小三,2倍行间距,段前段后0.5行。1.1.1 需求说明最小的节标题格式:序号使用3个阿拉伯数字,中间用点号分隔,与标题间空一个空格;宋体加黑,小四号字,2倍行距,段前段后0.5行距。通过一个学期的学习,我认为要学好C语言程序这门课程,不仅要认真阅读课本知识,更重要的是要通过上机实践才能增强和巩固我的知识。特别是
3、作为高职生,更要注重实践这一环节,只有这样我们才能成为合格的计算机人材。其目录为:正文格式:段首空两个汉字,宋体,小四,1.25倍行距。1.2 设计内容(1)程序要求 (2)算法分析 (3)流程图 (4)源程序 (5)调试及运行结果(6)体会2 程序要求学生成绩管理是高等学校教务管理的重要组成部分,其内容较多,为了简化计论,要求设计的管理系统能够完成以下六种功能:(1) 学生注册登记;(2) 登记学生成绩;(3) 修改学生成绩;(4) 打印一个班级学生的单科成绩;(5) 求出每个学生一学期中各科的平均成绩;(6) 打印某一课程成绩处于指定分数段内的学生名单。3 算法分析1 学生成绩管理软件的数
4、据结构学生成绩一般都是以班级为单位进行管理的,一个班级用一个结点来表示。考虑到插入和删除的方便,这些以班级为单位的结点用链表方式组成一个主目录。每个结点有四个域:(1) 班级代号;(2) 课程情况;(3) 学生情况;(4) 班级顺序链。课程情况应能反映出大专生所学过的全部课程。因课程是逐年增多的,所以采用链表结构以便能不断插入新的课程。该班学过的课程构成一个课程链表,所以班级结点中的课程情况用课程链表表示。学生情况主要反映学生的学号,姓名,每学期学生的成绩情况。因为学号总是顺序排列的,所以选用一个结构体数组作为反映学生情况的登陆记表。该 数组的下标值接上班级结点中的班级号就是学号。例如,设每班
5、学生数不超过40个人,班级号为9612,某学生在登记表中相应分量的下标值为26,则该学生的学号为961226。另外,学生成绩管理要分6个学期,所以在学生登记表中,开设6个指针域,每个指针指向该生某学期某门课程学成绩的结点。各结点结构如下所示:(1) 主目录中班级的结点为:班级号 课程链 班级顺序链 学生登记表(2) 程链表中的结点:课程代号 学期号 二叉树链 课程顺序链(3) 分数链表中的结点为:左链 学号 课程代号 成绩分数顺序 右链为了便于登记和查询学生的成绩,选择二叉排序来存放学生的成绩。每个班级的每门课程对应一棵二叉树。通过主目录中班级结点的课程链找到指定的课程结点,再通过课程结点中的
6、二叉树指针指向该门课程的成绩二叉排序树。另外通过主目录中班级结点的学生登记表中的学期指针,指向该学生本学期某门课程的分数结点,并以分数结点的分安数顺序链勾链该生各门课程的成绩。在登记成绩和查询分数时,都要用到课程代号。课程 代和课程名称是一一对应的。为了简化程序,课程名称和代号对照表设计为一个向量,向量的下标值就作为课程代号,而向量中的元素就是课程名称,这样可以省去代号域。1 各函数的功能和实现学生成绩管理的相关功能由对应的函数来实现。(1) 学生注册登记学生入学后,首先应是注册登记。注册时应先检查该学生所在班级是否已经登入主目录,未登入则若调用新结点后登陆入主目录。然后将新调入的班级结点中对
7、应域赋初值,最后再读入学生的学号和姓名并一一填入学生登记表。这样就完成了一个班级的注册和登记工作。(2)登记学生成绩学生注册后才可以登记成绩,所以先要检查这个班级是否已经注册,班级中是否有这个学生。在确认有此学生后,登记该生成绩。这时需完成两个操作。一个查询课程代号,另一个是将成绩填入二叉树。这两个操作分别用两个函数来实现: 查询课程代号; 插入二叉排序树。有了这两个函数,登记学生成绩的工作可以很方便地完成。首先查处课程代号,调用课程结点,填入课程代号和学期号;再在二叉树链域中置初值为NULL,将课程结点插入为课程链表的头结点。接着读入每个学生的学号和成绩,每个学生的每门课程都生成一分数结点插
8、入到相应课程的二叉树中。同时,还要将该分数结点链入该生这学期各科成绩的分数链表中。学生登记表中的学期指针域中存放该分数链表的头结点地址。(3)修改学生成绩若登记的学生成绩有错误,则调用修改学生成绩的函数便可以加以修改。修改时从主目录出发,查到班级,再从学生登记表中查对学号和姓名,再在与学期匹配的学期指针域中取得该生的学生链表的头指针,然后搜索分数链表,查到指定课程的分数结点,就可修改成绩。(4)打印一个班级学生的单科成绩由于学生成绩是用二叉树排序树来存储的,所以采用中序遍历的方法就可以按次序打印出学姓名和成绩。在打印了程序中,从主目录开始查到班级号,就可以从课程结点的二叉树链域中取得成绩二叉排
9、序树的头指针;然后调用中序遍历了程序就可进行打印,同时可求出平均成绩和各个分数段的人数。(1) 求出每个学生一学期中各科的平均成绩此了程序从主目录查对班级号开始,通过学生登记表中每个学生的学期指针取得各自的分数链表的头指针。顺着分数链就可求出该生本学期各科的平均成绩。(2)打印某一课程成绩处于指定分数段内的学生名单对二叉树序树进行中序扁历,但扁历时应判断当前成绩是否处于分数段内而决定是否打印。4 流程图(或框图、模块图)5 程序源代码如果程序较大、源代码较多,就不要将所有的代码都贴出来!只需将重点的类、函数、算法的代码贴出来即可,但是,每段代码前面要有说明。include#include#in
10、clude#include#include#define CR 13#define ESC 27#define UP 72#define DOWN 80#include#include#define CRNUM 200#define STNUM 40#define TERMS 6程序的格式:“Times New Roman”字体,五号,单倍行距。注意程序的缩进格式!6 调试及运行结果7 总结经过一个星期的上机实践学习,使我对C语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,通过实践,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再有对C语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对C语言中经常出现的错误也不了解,通过实践,使我在这几个方面的认识有所提高。通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习C语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。8 参考文献1 作者1,作者2.参考文献标题.期刊、会议或出版社名,时间.2 美Cay S.Horstmann.程峰等译. Java2核心技术. 机械工业出版社,2003-06.