您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 薪酬管理 > 小学数学学习系统(C语言课程设计报告,有源代码)
课程设计报告-35-课程设计报告课程设计名称:C语言课程设计课程设计题目:小学数学学习系统课程设计报告-35-目录第1章概要设计..........................................................................................................31.1题目的内容与要求.................................................................................................31.2总体结构.................................................................................................................3第2章详细设计..........................................................................................................42.1数据结构设计.........................................................................................................42.2功能设计................................................................................................................42.2.1学生信息存储模块............................................................................................42.2.2菜单选择模块....................................................................................................5第3章调试分析........................................................................................................10第4章使用说明.........................................................................................................11参考文献........................................................................................................................19附录(源代码)......................................................................................................21沈阳航空航天大学课程设计报告错误!未指定书签。第2章详细设计-35-小学数学学习系统菜单选择模块试题测试模块得分与排名模块学生信息存储模块第1章概要设计1.1题目的内容与要求内容:1.具有随机出题功能,且可以选择难度等级,不要混合运算功能;2.自动评分功能,当用户电答题后能给出用户的分值;3.查看正确答案;4.错题重做功能。要求:1、用户登录;2、程序采用文本菜单界面。1.2总体结构本程序主要分为5个模块(功能模块图见图1.1):1.学生信息存储模块,2.菜单选择模块,3.试题测试模块,4.得分与排名模块图1.1沈阳航空航天大学课程设计报告错误!未指定书签。第2章详细设计-35-第2章详细设计2.1数据结构设计首先定义结构体数组存储学生信息,注册,录入学生个人信息,将学生信息储存在TXT文档中,用指针写入文件,用while循环语句开始写入测试等级难度,保存正确结果,计算正确率,最后查看排名。2.2功能设计2.2.1学生信息存储模块main函数实现程序的菜单操作。根据用户选择的不同选项调用不同的函数,实现“注册”、“输入学号”、“选择难度答题”、“返回主菜单”等功能。具体情况流程图如图2.1所示:算法1在屏幕上输出“请注册”选项;2接受用户输入NYNYNY图2.1开始打开studentmessage打开TestResult文件打开failedResult文件输出“输入:姓名学号”结束文件打开失败!沈阳航空航天大学课程设计报告错误!未指定书签。第2章详细设计-35-2.2.2菜单选择模块NY图2.2开始1.开始测试;2.查看排名;3.错题重做;4.查看结果;5.结束测试。定义choose.time=0输出:“选择功能”输入:“选择”如超出范围,请重新选择Choose=1输入当前时间,读入且清屏ChooseFunc212沈阳航空航天大学课程设计报告错误!未指定书签。第2章详细设计-35-NNYNY图2.312Choose=2清屏SortbychengjiChooseFun2Choose=3Choose=4清屏ReworkchooseFunc2清屏Filecopytestaver清屏ShowresultChoosefunc2结束沈阳航空航天大学课程设计报告错误!未指定书签。第2章详细设计-35-2.2.3试题测试模块图2.4开始打开TestResult输入num1,num2,num3num4,m,n,count1=count2=0.average输出“加法测试”,“被加数+加数=结果”,“选择难度”,“1.简单2.一般3.困难”输出“打开文件失败”读入数字且赋值于m超出范围请重新选择!根据m运算的难度,及算式的位数。12沈阳航空航天大学课程设计报告错误!未指定书签。第2章详细设计-35-图2.52.2.4得分与排名模块写入信息1结果正确读入结果Count2=count2+1;Average=count1/count2;输出正确,错误,正确率分别为:count1,count2,average结束2Average=count1/count2;打开文件关闭文件开始沈阳航空航天大学课程设计报告错误!未指定书签。第2章详细设计-35-是否图2.6打开文件写入结构体数组s[j]s[j+1]交换位置s[i]沈阳航空航天大学课程设计报告错误!未指定书签。第3章调试分析-35-第3章调试分析在上机调试过程中遇到许多问题:1.引用库函数的头文件写成“#include“stdio””;2.变量int类型未先定义后使用;仔细思考总结,查阅教材解决;3.将学生信息输入后答题,但发现无法进行下一步功能;解决办法:按F10键进行单步调试,首先发现指向文件数据的指针没有数据,然后对文件直接进行数据加入,发现其他功能能够实现,然后对指向文件数据的指针进行修改,发现无论怎样修改数据都无法进入到文件,于是对数据输入函数进行修改,发现犯了一个比较低级的错误,scanf(“”)输入数据时忘记“&”符号,造成数据无法输入;4.使用随机数函数,但是调试过程中出现“rand()未定义”,无法产生随机数;解决办法:查找书籍,发现是未使用“rand()”函数的头文件,调用“#includestdio.h”后,随机函数问题得以解决;沈阳航空航天大学课程设计报告错误!未指定书签。第4章使用说明-35-第4章使用说明(1).注册。先用Judge()函数创建studentmessage.txt文件,直接运行cicaidan();菜单项。调用Savemessage();进行注册和保存信息。如图:(2).开始测试。注册后,显示主菜单ChooseFunc1(),如图:选择1进入开始测试模块,此时引入时间,定义全局变量hour1和min1,scanf(%d,%d,&hour1,&min1);手动输入这两个数。如图:之后出现ChooseFunc2()菜单功能选择函数,如图:这里的五个选项用while循环使超出功能范围的不能实现,重新选择选项。沈阳航空航天大学课程设计报告错误!未指定书签。第4章使用说明-35-再用switch语句选择执行功能,case1程序如下:switch(choose){case1:system(cls);printf(加法测试:输入要测试的题目数(5/10/20/50/100):);scanf(%d,&thnum);while(thnum5||thnum5&&thnum10||thnum10&&thnum20||thnum20&&thnum50||thnum50&&thnum100||thnum100){printf(超出功能范围,请重新选择(5/10/20/50/100):);scanf(%d,&thnum);}Addition(thnum);ChooseFunc2();break;}system(cls);为系统清屏。其他的选项也是如此。下面以加法为例说明一下运算程序。加法源程序如下:voidAddition(intnumber){FILE*fp,*fp2,*fp3;if((fp=fopen(TestResult.txt,a))==NULL){printf(打开文件失败\n);exit(0);}if((fp2=fopen(failedResult.txt,a))==NULL){printf(打开文件失败\n);exit(0);}if((fp3=fopen(rightResult.txt,a))==NULL){printf(打开文件失败\n);exit(0);}intnum1,num2,num3,num4,m,n,count1=0,count2=0;floataverage;srand(time(0));fprintf(fp,加法测试:\n);fprintf(fp,被加数+加数=你的结果是否正确\n);printf(------------------------------------------\n);沈阳航空航天大学课程设计报告错误!未指定书签。第4章使用说明-35-printf(---------------选择难度------------------\n);printf(-------------1.简单----------------------\n);printf(-------------2.一般----------------------\n);printf(-------------3.困难----------------------\n);printf(------------------------------------------\n);printf(请选择难度(1/2/3):);scanf(%d,&m);while(m1||m3){printf(超出功能范围,请重新选择(1/2/3):);scanf(%d,&m);}system(cls);{if(m==1)n=10;if(m==2)n=100;elseif(m==3)n=1000;}for(inti=0;inumber;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;printf(%d+%d=,num1,num2);scanf(%d,&num4);if(n
本文标题:小学数学学习系统(C语言课程设计报告,有源代码)
链接地址:https://www.777doc.com/doc-2471921 .html