学生成绩管理系统千行代码C语言课程设计报告书

上传人:ni****g 文档编号:482862877 上传时间:2023-04-24 格式:DOC 页数:51 大小:399KB
返回 下载 相关 举报
学生成绩管理系统千行代码C语言课程设计报告书_第1页
第1页 / 共51页
学生成绩管理系统千行代码C语言课程设计报告书_第2页
第2页 / 共51页
学生成绩管理系统千行代码C语言课程设计报告书_第3页
第3页 / 共51页
学生成绩管理系统千行代码C语言课程设计报告书_第4页
第4页 / 共51页
学生成绩管理系统千行代码C语言课程设计报告书_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《学生成绩管理系统千行代码C语言课程设计报告书》由会员分享,可在线阅读,更多相关《学生成绩管理系统千行代码C语言课程设计报告书(51页珍藏版)》请在金锄头文库上搜索。

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

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

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

4、引言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测试程序执行情况174.2出现的问题和解决的方法20第五章课程设计总结21附录:程序代码21参考文献46第一章 需求分析1.1 引言此报告完整呈现了我开发“学生成绩管理系统”的整个软件过程,包括需求分析阶段,软件设计与实现阶段和测试阶段。

5、在需求分析阶段,明确所要开发的软件应具有的功能、性能与界面,使系统使用人员与系统开发人员能清楚地了解用户的需求,并在此基础上进一步提出概要设计说明书和完成后续设计与开发工作。在软件设计与实现阶段,进一步细化软件设计阶段得出的软件总体概貌,把它加工成在程序细节上非常接近于源程序的软件表示,然后着手于实践。最后在测试阶段检验了我们的软件的实用性,发现了许多不足。这个报告即是对最后软件的总体描述1.2 任务概述学生成绩管理系统:包括以下功能:v 从键盘输入包括学号、各门课程成绩(不少于5门),并将其保存在磁盘文件里v 打开文件后,计算每个人的总分和平均分,排序并保存v 具有单项查询或多项查询的功能(

6、即按照给定的关键字,如找出满足条件的纪录)v 具有插入、删除和修改功能v 具有输出文件数据信息的功能1.3 数据描述数据是关于学生的资料:包括 学号、5门功课的成绩、总分、平均分。1.4 功能需求为实现学生成绩管理系统,该程序有以下功能:1. 输入学生成绩。以插入节点的形式将输入的学生资料按总分降序插入链表中。2. 删除学生成绩。用学号进行查找,查找到后直接删除。3. 查询学生成绩。三种查找方式,1. 2.学号 3.分数 。1.2.为精确查找,3为围查找,输入成绩后,查找出所有高于该成绩的学生并输出。4. 修改学生成绩。按学号查找学生,查找后可以修改学生的所有信息,包括学号。修改成绩后自动对总

7、分、平均分更新。5. 排序学生成绩。排序学生成绩有三种排序方案:1.学号升序。2.总分升序。3.总分降序6. 保存学生成绩。将学生成绩保存到student 文件,以便下次运行程序时读入数据。7. 科目设置。对五门科目的名称进行设置。8. 程序密码设置。程序首次运行时,设置密码。密码保存在mima.txt文件。以后每次运行程序都需要输入密码。9. 程序密码修改。在进入程序主界面后,可以对程序密码进行修改。修改密码会覆盖原有的mima.txt,将新的密码保存在该文件。10. 程序字体颜色。为了程序的美观性,在主菜单设置了颜色功能。可以修改程序的颜色。有9种颜色可供选择。1.5 性能需求本程序采用动

8、态存申请的方式,储存学生成绩资料,尽可能的节省了所占存空间,并且在程序结束时释放所有存。1.6 运行需求在输入学号是学号数值大小不大于长整型的数值围。不超过5个中文字符、11个英文字符。学生成绩不超过宏定义的maxscore 100 不小于 minscore 0.本程序在运行时,要求有student文件储存学生资料,mima.txt文件储存程序密码,kemu.txt文件储存科目名称。在文件不存在时,程序会自行创建这些文件以供使用。1.7 任务计划设计一个学生成绩管理系统,来管理学生成绩。包括以下功能:v 从键盘输入包括学号、各门课程成绩(不少于5门),并将其保存在磁盘文件里v 打开文件后,计算

9、每个人的总分和平均分,排序并保存v 具有单项查询或多项查询的功能(即按照给定的关键字,如找出满足条件的纪录)v 具有插入、删除和修改功能v 具有输出文件数据信息的功能第二章 概要设计2.1 总体设计闪烁欢迎语错三次密码输入结束程序正确从文件倒入数据主菜单0.结束程序11.字体颜色设置10.学生资料保存9.科目设置8.程序密码修改7.排序学生资料6.统计学生资料5.显示学生资料4.修改学生资料3.查询学生资料2.学生资料删除1.学生资料输入2.2 数据类型设计(或数据结构设计)typedef struct student long xuehao; char name12; int chengji

10、N; int zongfen; float pingjun; struct student*next; NODE;2.3 接口设计void 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)

11、;/模块1 插入学生资料 (总分排序)NODE* DeleteNode(NODE* head); /模块2 删除学生资料void FIND (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

12、mimaxiugai(char* mi1); /模块8 密码修改void kemushezhi(char kemu20,int k); /模块9 科目设置void Save(NODE* l); /模块10 学生资料保存void yanse(); /模块11 颜色设置2.4 运行界面设计第二章 详细设计3.1 输入模块设计1. 流程图申请内存,建立节点输入学号是学号是否雷同若学号为0否继续输入其他信息求总分、平均分将该节点插入链表返回主菜单2.模块代码:/* 函数功能:菜单功能1 输入学生信息 以总分降序插入链表*/NODE *InsertNode(NODE *head,char kemu 20

13、,int count) int j,i; int sum,xuehao; NODE *pr = head-next, *p = head, *temp = NULL,*q = head-next; 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,&p-xuehao); xuehao=p-xuehao; if(p-xuehao=0) free(p); return head; else while (xuehao != q-xuehao &

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 模板/表格 > 财务表格

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号