版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 实 训 报 告实训名称: “学生成绩管理系统”设计 时间: 2009年 06月15日至 2009年06月 19日学生实训任务书一、题目“学生成绩管理系统”设计二、学生信息专业 *技术 学号 * 姓名 * 三、用户需求及约束条件1、用C语言实现基于Dos操作系统的“学生成绩管理系统”。2、系统启动进入后,弹出“学生成绩管理系统”的用户界面,用户通过界面选择成绩管理系统的各种功能,包括“退出”功能。(5分)3、用户界面可以用鼠标和键盘操作。(5分+5分)4、用户界面可以是图形或者文本模式(但成绩评定会因此受影响)。(10分或5分)5、用户界面尽可能美观、适宜。(5分)6、“学生成绩管理系统”具有
2、以下功能: 1)录入学生成绩(信息有:班级、姓名、学号、五门课程成绩);(10分)2)计算学生五门功课的平均成绩并存档。(5分)下面的功能必须是第2)项功能完成以后才能进行。3)输出学生的信息和对应的原始成绩以及平均成绩;(10分)4)按平均成绩进行排序,输出排序后的学生信息以及对应的课程成绩和平均成绩。(10分)5)对成绩修改,分别有两种模式,一种是按学号查找后进行修改;另一种是按姓名查找后进行修改;修改后重新排序学生的顺序,并输出学生信息和对应课程成绩和平均成绩。(10分)6)增补遗漏的学生以及对应的信息和对应的课程成绩,并计算出平均成绩,增补以后重新排序学生顺序,并输出学生信息和对应课程
3、成绩和平均成绩。(10分)7)把学生信息和对应的课程成绩和平均成绩存入到文件中。(5分)8)输出文件中的内容。(5分)9)试着从文件中导入数据到成绩管理系统中,然后进行管理。(5分)四、设计要求、技术参数及设计规格1、学生自己设计一张原始成绩表,放在 Excel表中;2、设计的系统能够运行,提交源程序、目标文件和可执行文件;3、提交实训报告,实训报告中列写:1)软件需求分析;2)软件规格说明和设计要求;3)对数据的管理方案;4)“学生成绩管理系统”设计的思路和整体框架;5)各功能或者模块实现的思路(或者用带注释的程序代替)并交待模块之间的接口关系;6)“学生成绩管理系统”设计的结果(可以用一些
4、屏幕拷贝的图来补充说明)。7)装订顺序: 封面、简单目录、任务书、实训进度日历、实训报告正文、实训感想、附件4、程序设计环境为 Turbo C+3.0五、考核形式、考核时间、考核指标及成绩评定l 实训成绩由下面构成:实训纪律、实训态度和平时表现占30%;实训结果占40%;实训报告占30%。l 考核形式:1)老师每日对学生的考察、评估和考核;2)最后对实训项目完成的质量进行考核和验收。完 成 期 限:2009年06月19日指导教师签章: 专业负责人签章: 教学院长签章 09年 06月 10日实训进度日历天/日期任务描述通过标准2009年6月15日上午:1)对涉及的知识点进行复习,归纳。)熟悉系统
5、功能,写出需求分析报告,完成整体框架方案设计,完成模块划分,选择数据结构。下午:1)完成界面设计方案。通过图表来表达平面布局,选择合适的技术实现方案。2)学习和复习界面设计需要的技术。3)晚自习继续对涉及的知识点进行浏览和回顾。方案通过;数据结构通过;设计的整体框架方案通过;设计的界面方案通过。2009年6月16日上午:1) 定义个主要变量,定义主函数,完成主菜单的编码。2) 完成求平均值的功能的编码。下午:1) 完成查询菜单的编码。2) 完成查询子菜单1的编码。3) 调试保存要求数据传递接口正常,main函数能运行。2009年6月17日上午:1)回顾之前的程序,完成修改菜单的编码。2)完成修
6、改子菜单2,3的编码。3)完成添加功能的编码。下午:1)完成文件的输入输出功能的编码。2)调试保存。各子函数调试通过,能被main函数成功调用,其子功能能实现。2009年6月18日上午:1)完成排序功能的编码(费了很大的功夫)。下午:1) 整合各函数,使主函数成功调用。2) 调试保存。各子函数调试通过,能被main函数成功调用,其子功能能实现。2009年6月19日上午:1)回顾任务书,对程序查漏补缺。2)设计视觉效果,菜单标志,实现系统的全面优化。3)输出系统中的成绩到文件中保存;打印输出文件中的内容;从文件中导入数据到成绩管理系统中;下午:1)完成实训报告并且验收设计的项目。系统能正确运行,
7、界面友好);各功能能够实现,性能良好操作方便。 实训报告一、 需求分析 1、用C语言实现基于Dos操作系统的“学生成绩管理系统”。2、系统启动进入后,弹出“学生成绩管理系统”的用户界面,用户通过界面选择成绩管理系统的主菜单,通过主菜单的各选项用户可以方便直观的选择希 望的操作,选定后进入相应界面再次执行相应的操作。3、用户界面可以用鼠标和键盘操作。4、用户界面可以是图形或者文本模式。5、用户界面尽可能美观、适宜。6、“学生成绩管理系统”具有以下功能:(1)录入学生成绩(信息有:班级、姓名、学号、五门课程成绩); (2)计算学生五门功课的平均成绩并存档。(3)输出学生的信息和对应的原始成绩以及平
8、均成绩; (4)按平均成绩进行排序,排序后输出学生信息以及对应的课程成绩和平均成绩。(5)对成绩修改,有两种模式,一种是按学号查找后进行修改;另一种是按姓名查找后进行修改;修改后重新排序学生的顺序,并输出学生信息和对应课程成绩和平均成绩。(6)增补遗漏的学生以及对应的信息和对应的课程成绩,并计算出平均成绩,增补以后重新排序学生顺序,并输出学生信息和对应课程成绩和平均成绩。(7)把学生信息和对应的课程成绩和平均成绩存入到文件中。(8)输出文件中的内容。(9)试着从文件中导入数据到成绩管理系统中,然后进行管理。 二、 规格说明1、系统用户界面尽量居中、美观a) 界面颜色要和谐搭配;b) 表格框架要
9、尽量美观;c) 有一定数量的菜单标志,具有整体感;d) 有载入延迟画面;e) 要有清屏函数,使界面整洁。2、具有人机交互功能;f) 菜单简洁、清晰,选择方便;g) 最好实现鼠标键盘双重操作;h) 具有文件存储功能。3、通过菜单选择功能;i) 用户不用自己输口令来完成指定操作;j) 每个菜单后的链接要包含用户要求的所有功能。4、只能由菜单退出系统;5、操作信息提示(界面友好);k) 每步操作要有提示语,方便用户进行合理选择;l) 数据的操作有最后确认提示,防止意外操作。6、拦截一些误操作错误;7、按原始成绩格式输出。三、 数据管理方案1、学生的信息采用结构体变量数据类型,以方便包含所有信息 St
10、ruct student /*定义结构体变量*/char no11; /* 学号为字符型*/ char name15; /*姓名为字符型*/ char class10; /*班级为字符型*/int score5; /*整形数组记录学生五门成绩*/struct stu *next; /*结构体指针类型连接链表中各节*/;2、退出函数exit( ),需要include3、看程序运行结果用getch( )函数4、清屏函数:clrscr( )5、数据结构结构体 整型 班级 整型 学号 字符数组 姓名 整形数组 5科成绩 浮点数 平均成绩6、链表实现数据的输入、查询、删除等功能。7、用链表储存大量的数据
11、。8、用save函数存储数据。四、 系统设计1、主函数 main()利用无限次循环for(;)和switch()实现各函数的调用,系统根据输入的数字选项来调用相应的函数。2、初始化函数 STUDENT *init()这是一个无参函数,里面只有一个语句,它的作用是使链表初始化,使head的值为NULL。比如:没有这个函数的话,在你没有输入任何数据的情况下,去执行显示功能的时候会显示一些乱码!3、菜单选择函数 int menu-select();这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的九大功能,根据每个功能前面的序号进行选择,中间还显示系统当前的时间。等执行完每一个函
12、数功能后,按任一键回到主界面也要通过这个函数来实现!4、输入记录函数 STUDENT *create()这是一个无参函数,用来执行第学生成绩记录的输入,当学生为0时停止输入,函数结束后,带回一个指向链表头的指针head。算法:先声明一个首节点head,并将head-next设为NULL。每输入一个数据就声明一个新节点p,把p-next设为NULL,并且链接到之前列表的尾端。5、显示记录函数 void print(STUDENT *h)这是一个不返回值的有参函数,形参为“链表头的指针”,负责对全部学生成绩记录的输出,不足之处就是不能对学生成绩进行分页显示。算法:先将p结点的指针指向第一个结点,将
13、p结点(即第一个结点)的数据输出。然后再将p结点的指针指向p指针的的指针(即下一结点),将p结点(即第一结点)的数据输出。重复执行此步聚直到p指针指向NULL为止。6、查找记录函数 void search(STUDENT *h)这是一个不返回值的有参函数,形参为“链表头的指针”,实现按学号对某个学生进行查找,并显示所查找到的记录。算法:采用线性查找法往下一个节点查找。输入所要查找的学生的学号s,设一个指针变量p,先指向第一个结点,当strcmp(p-name,s) & p != NULL时,使p后移一个结点,如果p!=NULL,输出p所指的结点。7、删除记录函数 STUDENT *delete
14、(STUDENT *h)这是一个有参函数,形参为“链表头的指针”,先输入要删除的学生记录的学号,找到后显示该学生信息,等确认后便可按“Y”进行删除。算法:从p指向的第一个结点开始,检查该结点中的num值是否等于输入的要求删除的那个学号。如果相等就将该结点删除,如不相等,就将p后移一个结点,再如此进行下去,直到遇到表尾为止。8、排序函数 STUDENT *sort(STUDENT *h)这是一个有参函数,形参为“链表头的指针”,按学生成绩的平均分高低进行排序,还可以显示名次。9、插入函数 STUDENT *insert(STUDENT *h)这是一个有参函数,形参有两个,一个是“链表头的指针”,
15、一个是“待插入指针”,按照原来成绩平均分的高低进行插入,插入后会重新进行排序,并返回。算法:先将学生的成绩按平均分由高分到低分进行排序,再插入一个新生的结点,要求按平均分的高低顺序插入。先用指针变量p0指向待插入的结点,p1指向第一个结点。如果p0-averageaverage,则待插入的结点不应插在p1所指的结点之前。此时将p1后移,并使p2指向刚才p1所指的结点。重复以上的步骤,直到p0-average=p1-average为止。这时将p0指向的结点插到p1所指结点之前。但是如果p1所指的已是表尾结点,则p1就不应后移了。如果p0-average比所有结点的average都小,则应将p0所
16、指的结点插到链表末尾。如果插入的位置既不在第一个结点之前,又不在表尾结点之后,则将p0的值赋给p2-,使p2-next指向待插入的结点,然后将p1的值赋给p0-next,使得p0-next指向p1指向的变量。如果插入位置为第一个结点之前,则将p0赋给head,将p1赋给p0-next。如果要插到表尾之后,应将p0赋给p1-next,NULL赋给p0-next。最后再调用排序的函数,将学生成绩重新排序.10、保存数据到文件函数 void save(STUDENT *h)这是一个不返回值的有参函数,形参为“链表头的指针”,可以把学生记录保存在电脑上由自己任意命名的二进制文件。11、从文件读数据函数
17、 STUDENT *load()这是一个不返回值的有参函数,形参为“链表头的指针”,根据输入的文件地址进行读取。五、 系统实现1、系统实现基本框架开始界面菜单输入输出排序输出计算平均值修改成绩增补排序输出排序输出退出2、系统实现图解 1)菜单界面的实现 通过菜单选择函数menu_select实现“功能选择”的界面 2) 输入数据定义create ()函数来实现数据的输入3) 删除记录用函数 STUDENT *delete(STUDENT *h),输入学生对应的学号进行删除信息4)查找学生信息一种是按学号查找,另一种是按姓名查找,用函数search(STUDENT*h)来实现这种是按学号查找这种
18、是按学号查找5)保存文件保存数据到文件函数 void save(STUDENT *h)6)从文件读数据根据输入的文件地址进行读取7)求平均值通过函数void computer(STUDENT *h)计算出成绩和平均成绩;8)插入数据到文件用插入函数 STUDENT *insert(STUDENT *h)实现9)排序按学号或按平均成绩 通过函数 STUDENT *sort(STUDENT *h)实现,按学生成绩的平均分降序进行排序,还可以显示名次。10)最终数据显示用函数void total(STUDENT *h)实现实训感想 经过近一个星期的C语言课程设计,感觉自己收获不少!首先是:链表本来就没有弄的太熟,但这个课程设计里面主要都是用链表,因为要达到这样的功能,使用链表相当方便,但不容易理解,所以在这方面我很了很多的时间看课本和
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024健身房环境卫生维护合同
- 导热油蒸汽锅炉安全运行与节能考核试卷
- 2024年个人对公司租赁汽车合同
- 2024年云计算数据中心运营合作合同
- 2024年互联网金融服务平台建设与运营合同
- 2024年临时工聘用合同样本
- 五险一金基础知识讲解课件
- 2024年卫星发射与服务项目合同
- 2024不锈钢水箱购入合同模板
- 2024年双方关于房屋买卖的合同(含房产详情)
- 液化气站人员劳动合同范本
- 医疗安全典型案例警示教育
- 幼儿园清算审计报告
- 常见土源性寄生虫演示文稿
- itop运维综合管理平台使用手册要点
- 河北张家口市商业银行2023年微贷客户经理招聘(60人)考试参考题库含答案详解
- 了解学前儿童科学领域核心经验
- 养老机构人力资源管理-养老院人力资源规划
- 健康课大班《良好的坐姿》教案7
- 幼儿园师德师风考核表实用文档
- 2023年职业技能-外汇业务考试历年真题甄选版带答案-1
评论
0/150
提交评论