收藏 分享(赏)

学生成绩管理系统千行代码c语言课程设计.doc

上传人:无敌 文档编号:641009 上传时间:2018-04-16 格式:DOC 页数:49 大小:402.50KB
下载 相关 举报
学生成绩管理系统千行代码c语言课程设计.doc_第1页
第1页 / 共49页
学生成绩管理系统千行代码c语言课程设计.doc_第2页
第2页 / 共49页
学生成绩管理系统千行代码c语言课程设计.doc_第3页
第3页 / 共49页
学生成绩管理系统千行代码c语言课程设计.doc_第4页
第4页 / 共49页
学生成绩管理系统千行代码c语言课程设计.doc_第5页
第5页 / 共49页
点击查看更多>>
资源描述

1、内蒙古科技大学本科生课程设计说明书题 目:C 语言课程设计 学生成绩管理系统学生姓名:边峰学 号:1467159114专 业:软件工程班 级:1 班指导教师:周李涌日 期:2015 年 1 月 1 日内蒙古科技大学课程设计说明书I内蒙古科技大学课程设计任务书课程名称 C 语言课程设计设计题目 学生成绩管理系统指导教师 周李涌 时间 2015.1.1-2015.1.7一、教学要求1. 巩固和加深学生对 C 语言课程的基本知识的理解和掌握2. 掌握 C 语言编程和程序调试的基本技能3. 利用 C 语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用 C 语言解决实际问题的能力二

2、、设计资料及参数每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。某班学生成绩管理,包括以下功能: 从键盘输入包括学号、姓名、各门课程成绩(不少于 5 门),并将其保存在磁盘文件里 打开文件后,计算每个人的总分和平均分,排序并保存 具有单项查询或多项查询的功能(即按照给定的关键字,如姓名找出满足条件的纪录) 具有插入、删除和修改功能 具有输出文件数据信息的功能三、设计要求及成果1. 分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多 3 人)协作完成一个题目)2. 写出详细设计说明(至少包括功能实现分析和模块流程图)3. 编写程序代码,调试程序使其能正确

3、运行(代码书写要规范,标示符要见名知意,要有必要的注释,每人至少 500 行代码,不包括注释和花括号)4. 设计完成的软件要便于操作和使用5. 设计完成后提交课程设计报告(请严格按照模板进行排版)四、进度安排第一天 选择课程设计题目,分析课题的要求第二天 编程第三天 编程及调试第四天 写课程设计报告第五天 提交课程设计报告(打印稿及电子稿)五、评分标准1. 根据平时上机考勤、表现和进度,教师将每天点名和检查2. 根据课程设计完成情况,必须有可运行的软件。3. 根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。六、建议参考资料1 C 语言程序设计 ,谭浩强,清华大学出版社2 C

4、语言程序设计课程设计 ,刘振安,机械工业出版社内蒙古科技大学课程设计说明书II目 录内蒙古科技大学课程设计任务书 I目 录 II第一章 需求分析 31.1 引言 31.2 任务概述 31.3 数据描述 31.4 功能需求 41.5 性能需求 41.6 运行需求 51.7 任务计划 5第二章 概要设计 62.1 总体设计 62.2 数据类型设计(或数据结构设计) 62.3 接口设计 72.4 运行界面设计 7第三章 详细设计 83.1 输入模块设计 83.2 输出模块设计 103.3 查找模块设计 113.4 排序模块设计 143.5 保存及读取模块设计 16第四章 测试分析 174.1 测试程

5、序执行情况 174.2 出现的问题和解决的方法 20第五章 课程设计总结 21附录:程序代码 21参考文献 46内蒙古科技大学课程设计说明书3第一章 需求分析1.1 引言此报告完整呈现了我开发“学生成绩管理系统”的整个软件过程,包括需求分析阶段,软件设计与实现阶段和测试阶段。在需求分析阶段,明确所要开发的软件应具有的功能、性能与界面,使系统使用人员及系统开发人员能清楚地了解用户的需求,并在此基础上进一步提出概要设计说明书和完成后续设计与开发工作。在软件设计与实现阶段,进一步细化软件设计阶段得出的软件总体概貌,把它加工成在程序细节上非常接近于源程序的软件表示,然后着手于实践。最后在测试阶段检验了

6、我们的软件的实用性,发现了许多不足。这个报告即是对最后软件的总体描述1.2 任务概述学生成绩管理系统:包括以下功能: 从键盘输入包括学号、姓名、各门课程成绩(不少于 5 门),并将其保存在磁盘文件里 打开文件后,计算每个人的总分和平均分,排序并保存 具有单项查询或多项查询的功能(即按照给定的关键字,如姓名找出满足条件的纪录) 具有插入、删除和修改功能 具有输出文件数据信息的功能1.3 数据描述数据是关于学生的资料:包括 学号、姓名、5 门功课的成绩、总分、平均分。内蒙古科技大学课程设计说明书41.4 功能需求为实现学生成绩管理系统,该程序有以下功能:1. 输入学生成绩。以插入节点的形式将输入的

7、学生资料按总分降序插入链表中。2. 删除学生成绩。用学号进行查找,查找到后直接删除。3. 查询学生成绩。三种查找方式,1.姓名 2.学号 3.分数 。1.2.为精确查找,3 为范围查找,输入成绩后,查找出所有高于该成绩的学生并输出。4. 修改学生成绩。按学号查找学生,查找后可以修改学生的所有信息,包括学号。修改成绩后自动对总分、平均分更新。5. 排序学生成绩。排序学生成绩有三种排序方案:1.学号升序。2.总分升序。3.总分降序6. 保存学生成绩。将学生成绩保存到 student 文件内,以便下次运行程序时读入数据。7. 科目设置。对五门科目的名称进行设置。8. 程序密码设置。程序首次运行时,设

8、置密码。密码保存在 mima.txt 文件内。以后每次运行程序都需要输入密码。9. 程序密码修改。在进入程序主界面后,可以对程序密码进行修改。修改密码会覆盖原有的 mima.txt,将新的密码保存在该文件内。10. 程序字体颜色。为了程序的美观性,在主菜单内设置了颜色功能。可以修改程序的颜色。有 9 种颜色可供选择。1.5 性能需求本程序采用动态内存申请的方式,储存学生成绩资料,尽可能的节省了所占内存空间,并且在程序结束时释放所有内存。1.6 运行需求在输入学号是学号数值大小不大于长整型的数值范围。姓名不超过 5 个中文字符、11 个英文字符。内蒙古科技大学课程设计说明书5学生成绩不超过宏定义

9、的 maxscore 100 不小于 minscore 0.本程序在运行时,要求有 student 文件储存学生资料,mima.txt 文件储存程序密码,kemu.txt 文件储存科目名称。在文件不存在时,程序会自行创建这些文件以供使用。1.7 任务计划设计一个学生成绩管理系统,来管理学生成绩。包括以下功能: 从键盘输入包括学号、姓名、各门课程成绩(不少于 5 门),并将其保存在磁盘文件里 打开文件后,计算每个人的总分和平均分,排序并保存 具有单项查询或多项查询的功能(即按照给定的关键字,如姓名找出满足条件的纪录) 具有插入、删除和修改功能 具有输出文件数据信息的功能内蒙古科技大学课程设计说明

10、书6第二章 概要设计2.1 总体设计2.2 数据类型设计(或数据结构设计)typedef struct studentlong xuehao;char name12;int chengjiN;int zongfen;float pingjun;闪烁欢迎语错三次密码输入 结束程序正确从文件倒入数据主菜单1.学生资料输入2.学生资料删除3.查询学生资料4.修改学生资料5.显示学生资料6.统计学生资料7.排序学生资料8.程序密码修改9.科目设置10.学生资料保存11.字体颜色设置0.结束程序内蒙古科技大学课程设计说明书7struct student*next; NODE;2.3 接口设计 void

11、huanyingyu(); /LED 灯闪烁欢迎语void mytime(); /输出问候语句+时间void mima(char mi,char mi1); /密码函数void caidan(); /输出主菜单NODE* daoru (NODE *l,char kemu 20); /已存在信息导入void jieshu(NODE* l); /模块 0 结束程序NODE* InsertNode(NODE *head,char kemu 20,int count);/模块 1 插入学生资料 (总分排序)NODE* DeleteNode(NODE* head); /模块 2 删除学生资料void F

12、IND (NODE *head,char kemu N20 ); /模块 3 查询学生资料void xiugai(NODE *head,char kemu N20 ); /模块 4 修改学生资料void DisplyNode(NODE *head,char kemu 20); /模块 5 显示学生资料void Tongji(NODE* l,char kemu20); /模块 6 统计学生资料NODE* paixv(NODE *head); /模块 7 排列学生资料void mimaxiugai(char* mi1); /模块 8 密码修改void kemushezhi(char kemu20,

13、int k); /模块 9 科目设置void Save(NODE* l); /模块 10 学生资料保存void yanse(); /模块 11 颜色设置2.4 运行界面设计内蒙古科技大学课程设计说明书8是否第二章 详细设计3.1 输入模块设计1. 流程图2.模块代码:/* 函数功能:菜单功能 1 输入学生信息 以总分降序插入链表*/NODE *InsertNode(NODE *head,char kemu 20,int count)int j,i;int sum,xuehao;NODE *pr = head-next, *p = head, *temp = NULL,*q = head-nex

14、t;p = (NODE *)malloc(sizeof(NODE);/* 让 p 指向待插入节点 */if (p = NULL) /* 若为新建节点申请内存失败,则退出程序 */printf(“No enough memory!n“);exit(0);p-next = NULL; /* 为待插入节点的指针域赋值为空指针 */printf(“请输入第%d 位学生资料:“,count);printf(“请输入学号:(输入 0 返回)“);scanf(“%ld“,xuehao=p-xuehao;if(p-xuehao=0)free(p);申请内存,建立节点输入学号学号是否雷同继续输入其他信息将该节点

15、插入链表求总分、平均分若学号为0返回主菜单内蒙古科技大学课程设计说明书9return head;elsewhile (xuehao != q-xuehao if (xuehao = q-xuehao)printf(“您输入的学好对应学生信息已存在,请检查是否错误后重新输入!n“);free(p);return head;printf(“请输入姓名:“);scanf(“%s“,p-name);for(j=0; jname,kemuj);scanf(“%d“,if(p-chengjijmaxscore|p-chengjijzongfen = sum;p-pingjun= (float)sum/N;

16、system(“pause“);if (head = NULL) /* 若原链表为空表 */head = p; /* 待插入节点作为头节点 */else/* 若未找到待插入节点的位置且未到表尾,则继续找 */while (pr-zongfen p-zongfen /* 在 temp 中保存当前节点的指针 */pr = pr-next;/* pr 指向当前节点的下一节点 */printf(“程序运行到此“);if (pr-zongfen zongfen)if (pr = head-next) /* 若在头节点前插入新节点 */p-next = head-next;/* 将新节点的指针域指向原链表的头节点 */head-next= p; /* 让 head 指向新节点 */else /* 若在链表中间插入新节点 */pr = temp;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 中等教育 > 高中教育

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报