C语言程序设计-成绩管理系统.docx_第1页
C语言程序设计-成绩管理系统.docx_第2页
C语言程序设计-成绩管理系统.docx_第3页
C语言程序设计-成绩管理系统.docx_第4页
C语言程序设计-成绩管理系统.docx_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计报告 题 目: 学生成绩管理系统 姓 名: 学 院: 专 业: 班 级: 3班 学 号: 1562510301 指导教师: 周小芹 2016年3月4日目 录一 设计目的.1二 问题分析及需求定义.1三 概要设计.1四 总体设计(功能模块图).2五 详细设计(各功能模块的具体实现算法).10六 调试分析(包含各模块的测试用例,测试结果).16七 总结.20八 答辩记录.21一 设计目的1. 进一步强化上机动手能力,在理论和实践的基础上巩固C语言程序设计课程学习的内容,掌握工程化软件设计的基本方法。2. 学会将知识应用于实践,提高分析和解决问题的能力,增强分析和解决问题的能力,为后续的各门信息技术课程学习打下坚实的基础。二 课程设计的问题分析及需求定义 1.功能需求1. 密码登录;2. 通过键盘输入学生信息,包括学生信息及各门成绩;3. 将输入的信息保存到指定文件中;4. 从文件中读取学生信息;5. 显示全部学生信息;6. 删除及添加学生信息;7. 按成绩总分进行降序排序;8. 通过学号或者姓名查找学生信息;9. 统计学生信息,统计最高分及其学生人数;10. 退出系统;3. 数据需求准备若干关于学生成绩的数据,包括学号、姓名、数学、英语、c语言三门课的成绩,例如:1562510301 王雨晴 90 85 951562510335 周勇 80 88 95三 概要设计1 各个模块详细的功能描述。1. 密码登录:进入系统前需输入密码口令,管理员密码为“abcde”,学生密码为“12345”;12. 输入信息:输入学生信息,包括:学号、姓名、成绩;3. 显示信息:显示输入的信息或者是经过处理的信息;4. 查找信息:查找学生信息,可以按照学号查找或是按姓名查找;5. 修改信息:修改学生的任何信息;6. 删除信息:删除学生的任何信息;7. 排序信息:将输入的学生信息排序,按照总分成绩排序;8. 统计信息:统计出所有信息中的最高分成绩的学生信息及学生人数。 四 总体设计主菜单输入密码查询记录输出记录统计记录更新记录显示信息录入记录用文件输出按学号查询排序用键盘输出删除信息增加信息按姓名查询输出到屏幕输出到文件修改信息2结束2、键盘键入模块:链表是否存在数据依次输入学生成绩信息是否提示无资料可查返回3、录入文件信息模块:3文件是否存在数据将文件里的学生成绩录入链表并算出平均分和总分是否文件内容为空返回提示录入成功3、信息查找模快4链表是否为空输出提示:1、按学号2、按姓名否是提示无文件可查选择12输入学号输入姓名指针指向所输学号指针指向所输姓名是否找到是输出查询结果否有提示没有找到返回4、信息修改模块:链表中是否有信息是否提示输入要修改的学号或姓名是否找到否是指针指向学号或姓名写入新数据并给相应变量提示资料已修改完毕提示无资料可修改提示没有该学生返回55、成绩删除程序6链表中是否有信息是否提示输入要删除的学号或姓名是否找到否是指针指向学号或姓名删除该学生信息提示删除成功提示无资料可删除提示没有该学生返回6、各门成绩总分统计程序7提示无数据否是依次比较总分得出最大值依次比较数学成绩得出最大值依次比较英语成绩得出最大值依次比较C语言成绩得出最大值输出比较结果返回链表是否有数据7、平均分排序程序链表是否存在不存在数据否是依次比较平均分大小用指针排序输出比较结果返回8、C语言成绩分段程序8链表是否存在不存在数据否是判断成绩所在区域并累计人数输出分层结果返回9、成绩保存程序链表是否有数据是否提示无数据用指针录入链表信息到文件中提示保存完成返回10、成绩显示程序链表是否有数据是否提示文件打开错误依次显示学生成绩返回9五 详细设计学生数据以链表方式储存(1) 函数Lnode *input(Lnode *head)函数功能:从键盘中键入学生信息,并以该信息作为结点建立单链表。(2) 函数Lnode *Read(Lnode *head)函数功能:从文件中录入学生信息。1000000(3) 函数void Query(Lnode *head)函数功能:查找学生信息,可分别以学号或者姓名查找。11(4) 函数Lnode *Editinfor(Lnode *head)函数功能:修改学生信息。12(5) 函数void Delet(Lnode *head)函数功能:根据学号删除该学生信息。13(6) 函数void Scoreone(Lnode *head)函数功能:统计各门成绩以及总分最高分(7) 函数Lnode *sort1(Lnode *head) 函数功能:按照平均分降序排序。14(8) 函数void Save(Lnode *head)函数功能:保存信息至文件information.txt中,并计算出平均分。(9) 函数Lnode *output(Lnode *head)函数功能:显示所有学生信息。15六 调试分析主页面1、 键入学生信息162、文件录入学生信息3、查找学生信息174、修改学生信息5、删除学生信息186、统计学生信息7、排序学生信息8、统计C语言分段199、保存学生信息10、显示学生信息纠错20解决方法:添加头文件#include缺少定义七 感想在制作本次课题中遇到了许多困哪,需要独自克服并解决。在调试的过程中,有些错误不知道应该怎么改正,还有刚开始文件无法读取并打开,在借助一些查询工具和同学的帮助下让我了解了问题的所在,是没有将一些函数放在开头从而使系统无法识别读取。从编写代码到调试并没有想象中的那么简单,一开始调试出现了许多错误,然而并不能很快地找出错误所在,这令我十分焦急。但是焦急并没有用,在这时就需要我们静下心来仔细分析每一行代码,找出到底是哪里出现了错误,是程序错误,函数定义错误,还是犯了些低级错误比如英中错误,缺少分号,以及拼写错误。从一开始的毫无头绪到后来的初步成型,这其中不知道经过了多少的调试和修改,这个过程有苦也有甜,是面对一堆error和warning的不知所措,是反复查看代码而找不到问题的焦头烂额,也是文件打开的欣喜和成功运行的愉悦。在这两周的程序设计过程中让我学习了很多,其中不仅是学习上的基础知识的巩固,加深了对链表以及文件处理的理解,而且也提高了自己的实际动手能力和独立思考能力,使我在遇到棘手问题是能够静下心来查找问题所在。八 答辩记录1、 为什么用宏定义#define FP “information.txt”?答:宏定义即全局变量,宏定义主要用于大程序的,用FP来定义文本文件“internation.txt”可以做到当修改文本文件时不用一个一个修改,修改一处即全都修改,比较方便。2、 解释函数void Delete(Lnode *head)中head的意义。答:函数void Delect中的参数Lnode *head指的是文件的一个学生信息链表的头指针。3、 解释%d和%s这两个格式符的不同。答:%d指的是一个整型,而%s指的是一个字符串。4、 解释指针如何实现排序。答:首先定义指针p,p1,p2,p3,定义链表n,m,若学生信息链表为空则返回0,若不为空则继续,将链表的后继结点指向head链表的头指针,指针p指向m,将指针p指向head链表的最后一个结点,并把链表m赋给最后一个结点的后继结点。然后执行冒泡排序:将指针p3指向链表m,指针p1指向p3的后继结点,p2指向p1的后继结点,若p1的平均分小于p2的平均分,则交换p1和p2即将平均分小的向后移,然后将p3指向p2,将p2指向p1的后继结点;若p1的平均分大于p2的平均分,则将p3指向p1,p1指向p2,p2指向p2的下一个结点,即p3,p1,p2,整体后移一个结点,然后依次交换,当p2指向为空时p向前移动一个结点,然后开始第二次循环,将链表head最后一个结店以前的最小平均分移动到最后一个结点,直到p指针p指向head的头指针,则结束循环,将指针p移动到head的最后一个结点,并将指针p的后继结点指向空集,结束返回head链表,完成对学生信平均分的排序。21古今名言敏而好学,不耻下问孔子业精于勤,荒于嬉;行成于思,毁于随韩愈兴于诗,立于礼,成于乐孔子己所不欲,勿施于人孔子读书破万卷,下笔如有神杜甫读书有三到,谓心到,眼到,口到朱熹立身以立学为先,立学以读书为本欧阳修读万卷书,行万里路刘彝黑发不知勤学早,白首方悔读书迟颜真卿书卷多情似故人,晨昏忧乐每相亲于谦书犹药也,善读之可以医愚刘向莫等闲,白了少年头,空悲切岳飞发奋识遍天下字,立志读尽人间书苏轼鸟欲高飞先振翅,人求上进先读书李苦禅立志宜思真品格,读书须尽苦功夫阮元非淡泊无以明志,非宁静

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论