小学数学学习系统(C语言课程设计报告,有源代码)

上传人:命****币 文档编号:122004141 上传时间:2020-02-29 格式:DOC 页数:36 大小:477.50KB
返回 下载 相关 举报
小学数学学习系统(C语言课程设计报告,有源代码)_第1页
第1页 / 共36页
小学数学学习系统(C语言课程设计报告,有源代码)_第2页
第2页 / 共36页
小学数学学习系统(C语言课程设计报告,有源代码)_第3页
第3页 / 共36页
小学数学学习系统(C语言课程设计报告,有源代码)_第4页
第4页 / 共36页
小学数学学习系统(C语言课程设计报告,有源代码)_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《小学数学学习系统(C语言课程设计报告,有源代码)》由会员分享,可在线阅读,更多相关《小学数学学习系统(C语言课程设计报告,有源代码)(36页珍藏版)》请在金锄头文库上搜索。

1、课程设计报告 35 课课 程程 设设 计计 报报 告告 课程设计名称 C 语言课程设计语言课程设计 课程设计题目 小学数学学习系统 课程设计报告 35 目目 录录 第第 1 章章 概要设计概要设计 3 1 1 题目的内容与要求 3 1 2 总体结构 3 第第 2 章章 详细设计详细设计 4 2 1 数据结构设计 4 2 2 功能设计 4 2 2 1 学生信息存储模块 4 2 2 2 菜单选择模块 5 第第 3 章章 调试分析调试分析 10 第第 4 章章 使用说明使用说明 11 参考文献参考文献 19 附附 录 源代码 录 源代码 21 沈阳航空航天大学课程设计报告 第 2 章 详细设计 35

2、 小学数学学习系统 菜 单 选 择 模 块 试 题 测 试 模 块 得 分 与 排 名 模 块 学 生 信 息 存 储 模 块 第 1 章 概要设计 1 1 题目的内容与要求题目的内容与要求 内容 1 具有随机出题功能 且可以选择难度等级 不要混合运算功能 2 自动评分功能 当用户电答题后能给出用户的分值 3 查看正确答案 4 错题重做功能 要求 1 用户登录 2 程序采用文本菜单界面 1 2 总体结构总体结构 本程序主要分为 5 个模块 功能模块图见图功能模块图见图 1 1 1 学生信息存储模块 2 菜单选择模块 3 试题测试模块 4 得分与排名模块 图图 1 1 沈阳航空航天大学课程设计报

3、告 第 2 章 详细设计 35 第 2 章 详细设计 2 1 数据结构设计数据结构设计 首先定义结构体数组存储学生信息 注册 录入学生个人信息 将学生信息储存在 TXT 文档中 用指针写入文件 用 while 循环语句开始写入测试等级难度 保存正确结果 计算正确率 最后查看排名 2 2 功能设计功能设计 2 2 1 学生信息存储模块学生信息存储模块 main 函数实现程序的菜单操作 根据用户选择的不同选项调用不同的函数 实 现 注册 输入学号 选择难度答题 返回主菜单 等功能 具体情况流 程图如图 2 1 所示 算法 1 在屏幕上输出 请注册 选项 2 接受用户输入 N Y N Y N Y 图

4、图 2 1 开 始 打开 studentmessage 打开 TestResult 文件 打开 failedResult 文件 输出 输入 姓名学号 结 束 文件打开失败 沈阳航空航天大学课程设计报告 第 2 章 详细设计 35 2 2 2 菜单选择菜单选择模块模块 N Y 图图 2 2 开 始 1 开始测试 2 查看排名 3 错题重做 4 查看结果 5 结束测试 定义 choose time 0 输出 选择功能 输入 选择 如超出范围 请重新选择 Choose 1 输入当前时间 读入且清屏 Choose Func2 1 2 沈阳航空航天大学课程设计报告 第 2 章 详细设计 35 N N Y

5、 N Y 图图 2 3 12 Choose 2 清 屏 Sort by chengji Choose Fun2 Choose 3 Choose 4 清 屏 Rework choose Func2 清 屏 File copy test aver 清 屏 Show result Choose func2 结 束 沈阳航空航天大学课程设计报告 第 2 章 详细设计 35 2 2 3 试题测试模块试题测试模块 图图 2 4 开 始 打开 TestResult 输入 num1 num2 num3num4 m n count 1 count2 0 average 输出 加法测试 被加数 加数 结 果 选择

6、难度 1 简单 2 一般 3 困难 输出 打开文件 失败 读入数字且赋值于 m 超出范围请重新选择 根据 m 运算的难度 及算式的位 数 1 2 沈阳航空航天大学课程设计报告 第 2 章 详细设计 35 图图 2 5 2 2 4 得分与排名模块得分与排名模块 写入信息写入信息 1 结果正确 读入结果 Count2 count2 1 Average count1 count2 输出正确 错误 正确 率分别为 count1 count2 averag e 结 束 2 Average count1 count2 打开文件 关闭文件 开 始 沈阳航空航天大学课程设计报告 第 2 章 详细设计 35 是

7、是 否否 图图 2 6 打开文件 写入结构 体数组 s j s j 1 交换位置 s i 沈阳航空航天大学课程设计报告 第 3 章 调试分析 35 第 3 章 调试分析 在上机调试过程中遇到许多问题 1 引用库函数的头文件写成 include stdio 2 变量 int 类型未先定义后使用 仔细思考总结 查阅教材解决 3 将学生信息输入后答题 但发现无法进行下一步功能 解决办法 按 F10 键进行单步调试 首先发现指向文件数据的指针没有数据 然后 对文件直接进行数据加入 发现其他功能能够实现 然后对指向文 件数据的指针进行修改 发现无论怎样修改数据都无法进入到文件 于是对数据输入函数进行修改

8、 发现犯了一个比较低级的错误 scanf 输入数据时忘记 菜单 项 调用 Savemessage 进行注册和保存信息 如图 2 2 开始测试 开始测试 注册后 显示主菜单 ChooseFunc1 如图 选择 1 进入开始测试模块 此时引入时间 定义全局变量 hour1 和 min1 scanf d d 手动输入这两个数 如图 之后出现 ChooseFunc2 菜单功能选择函数 如图 这里的五个选项用 while 循环使超出功能范围的不能实现 重新选择选项 沈阳航空航天大学课程设计报告 第 4 章 使用说明 35 再用 switch 语句选择执行功能 case1 程序如下 switch choo

9、se case 1 system cls printf 加法测试 输入要测试的题目数 5 10 20 50 100 scanf d while thnum5 scanf d Addition thnum ChooseFunc2 break system cls 为系统清屏 其他的选项也是如此 下面以加法为例说明一下运 算程序 加法源程序如下 void Addition int number FILE fp fp2 fp3 if fp fopen TestResult txt a NULL printf 打开文件失败 n exit 0 if fp2 fopen failedResult txt

10、a NULL printf 打开文件失败 n exit 0 if fp3 fopen rightResult txt a NULL printf 打开文件失败 n exit 0 int num1 num2 num3 num4 m n count1 0 count2 0 float average srand time 0 fprintf fp 加法测试 n fprintf fp 被加数 加数 你的结果 是否正确 n 沈阳航空航天大学课程设计报告 第 4 章 使用说明 35 printf n printf 选择难度 n printf 1 简单 n printf 2 一般 n printf 3 困

11、难 n printf n printf 请选择难度 1 2 3 scanf d while m3 printf 超出功能范围 请重新选择 1 2 3 scanf d system cls if m 1 n 10 if m 2 n 100 else if m 3 n 1000 for int i 0 i number i if m 1 num1 rand n num2 rand n if m 2 num1 10 rand n 10 num2 10 rand n 10 if m 3 num1 100 rand n 100 num2 100 rand n 100 num3 num1 num2 pri

12、ntf d d num1 num2 scanf d if num3 num4 fprintf fp d d d n num1 num2 num4 count1 else fprintf fp d d d n num1 num2 num4 count2 fprintf fp3 d d d n num1 num2 num3 fprintf fp2 d d n num1 num2 沈阳航空航天大学课程设计报告 第 4 章 使用说明 35 fclose fp2 fclose fp3 average float count1 float number fprintf fp 正确 d 道 错误 d 道 正

13、确率为 f n n count1 count2 average A A average 100 c c 1 fclose fp 定义三个文件指针分别指向三个文件 打开文件开始记录数据 number 为 题目数形参 srand time 0 初始化随机数 如果没有此语句 则每次运行程 序时的随机数是一样的 fprintf 是向指定的文件中输入 然后开始选择难易程 度 同上 先确定可选范围 用随机函数 num1 rand n num2 rand n num3 num1 num2 产生两个随 机数分别给加数和被加数 num3 储存的是正确答案 为了使 1 2 3 与难易联系 起来 使用 if m 1

14、 n 10 if m 2 n 100 else if m 3 n 1000 来实 现转换 当 m 为 1 时 将 n 10 带入 num1 rand n 中 将产生一位数的随机数 即简单题 同理 当 m 为 2 时 num1 10 rand n 10 num2 10 rand n 10 rand n 10 的随机数的取值范围是 0 89 加上 10 后取值范围为 10 99 所以将产生两位数的随机数 即一般题 当 m 为 3 时 num1 100 rand n 100 num2 100 rand n 100 同样 rand n 100 的取值范围为 0 899 加上 100 后为 100 99

15、9 所以将产生三位数的随机数 即困难题 此时出题完毕 沈阳航空航天大学课程设计报告 第 4 章 使用说明 35 将输入的数与正确答案相比较 如果正确的话 则将该题存入文件 rightResult txt 中 错误的话 则将该题存入文件 failedResult txt 中 用以 用户查看和错题重做模块 变量 count1 记录正确题目的个数 变量 count2 记录 错误题目的个数 然后将这两个文件关闭 再算出平均值 并将上面的值放入文 件 TestResult txt 中 关闭文件 A 和 c 为全局变量 为后面的排名做准备 特 别注意在除法中 除数不能为零 所以另外加个 for 循环 fo

16、r num2 0 num2 rand n 使分母不出现零 返回主菜单时 会输 入结束时间 之后会计算做题时间 3 3 查看排名模块 查看排名模块 主菜单中选 2 调用 sortbychengji 函数 程序清单 void sortbychengji FILE fp5 int i j m n N 1 student 0 avscore A c fp5 fopen nrecord txt a fprintf fp5 s s f n student 0 name student 0 num student 0 avscore fclose fp5 沈阳航空航天大学课程设计报告 第 4 章 使用说明 35 fp5 fopen nrecord txt rb for i 0 feof fp5 i fscanf fp5 s s f n student i name student i num fclose fp5 m i struct Student temp for i 0 i m i n 0 for j 0 j m 1 j if student j avscore student j 1 avs

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 教学课件 > 初中课件

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