1、 1 本科生课程论文封面本科生课程论文封面 课 程 名 称 C 语言课程设计 教 师 姓 名 本科生姓名 本科生学号 本科生专业 所 在 院 系 类别: 日期: 2013 年 12 月 31 日 2 课程设计评语课程设计评语 对课程论文的评语: 平时成绩: 课程论文成绩: 总 成 绩: 评阅人签名: 注:1、无评阅人签名成绩无效; 2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效; 3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。 3 目目 录录 课程设计评语2 目 录 3 1课程论文题目 . 错误错误!未定义书签。未定义书签。 2程序设计思路 . 错误错误!未定义书签。未定义书签。 3功
2、能模块图 . 错误错误!未定义书签。未定义书签。 4数据结构设计 . 错误错误!未定义书签。未定义书签。 5算法设计 错误错误!未定义书签。未定义书签。 6程序代码 . 10 7程序运行结果 18 8编程中遇到的困难及解决方法 22 9总结心得及良好建议 22 10致谢. 23 4 一、一、课程论文题目:学生成绩管理系统课程论文题目:学生成绩管理系统 1:题目要求 请设计学生成绩管理系统 ,实现学生信息的录入,显示,查找,添加,保 存,删除,插入等功能模块。要求功能选择用菜单实现,数据输入和结果输出要 求有文件存放。 原始数据文件格式: 学号 姓名 英语 C 语言 高等数学 平均成绩 01 张
3、三 75 85 80 80 02 李四 2:需求分析 根据题目要求,由于学生信息总是存放在文件中,所以应提供文件的输入, 输出等操作;在程序中需要浏览学生的信息,应提供显示,查找,排序等操作; 另外还应提供键盘式选择菜单实现功能选择。 3:总体设计 根据上面的需求分析,可以将这个系统的设计分为:数据输入模块、数据显示 模块、数据查找模块、数据插入模块、成绩排序模块和成绩保存模块等。 二、二、程序设计思路程序设计思路 这次是初次要自主设计一个程序系统。 系统要求实现学生信息的录入、显示、查找、添加以及成绩排序等功能。对于几 个功能,可分别设置 7 个部分。根据需求分析,可以将这个系统分为以下模块
4、:输入 模块,录入模块,修改模块,保存模块,查询功能模块,删除功能模块,以及排序模 块. 1、用户输入模块 在此模块中用户根据自己的需求输入数字 17 中的任意一个数字,实现相 应的功能。 2、信息录入功能模块 此模块可以让用户输入每个学生的信息:学号、姓名、英语成绩、C 语言 成绩、高等数学成绩、平均成绩。用户可以连续输入学生的信息,或者删除或 者查询,也可以保存当前已录入的信息。 3、修改学生成绩模块 用户可以根据实际情况的变化修改已录入的学生成绩的信息, 跟实际同步。 4、文件保存模块 用户可以在确定已录入的信息无误之后将学生的信息存为一个数据文件。 已保存的信息可以再文件中查看也可以在
5、程序中进行查看。 用户输入的学生信 息可以随时保存。 5、查询功能模块 5 在此模块里, 用户可以根据提示输入所想要查询的学生的学号以查询学生的 信息。 6、删除功能模块、 在此模块里,用户可以根据自己的需求选择想要删除的学生信息,选择之 后程序会再次确认,以防误删。 7、排序功能模块 在此模块中,程序会将用户已录入的信息按平均成绩由低到高进行排序。 三、三、功能模块图功能模块图: 四、四、数据结构设计数据结构设计 struct xueshengchengji /*声明学生成绩数据结构体*/ 开始 x 值 1 值 2 值 7 值 6 值 5 值 4 值 3 查询模块 修改 退出 排序模块 保存
6、模块 删除模块 添加模块 用户输入并 将值保存至 x x 结束 6 char xuehao10; /*学生学号*/ char name10; /*学生姓名*/ float cyuyan; /*c 语言成绩*/ float math; /*高数成绩*/ float english; /*英语成绩*/ float average; /*平均成绩*/ ; struct xueshengchengji chengji100,*p=chengji; /*声明记录学生成绩情况的 100 个 元素的结构体数组*/ 五、算法设计五、算法设计 1、添加模块 void add() printf (“t 请输入学生学号:“); fflush(stdin); /*清除键