小学数学测试系统C课程设计报告与源程序代码
C语言课程设计报告-小学算术运算测试
![C语言课程设计报告-小学算术运算测试](https://img.taocdn.com/s3/m/2e46ad16a8114431b90dd853.png)
河南理工大学课程设计报告20013—2014学年第一学期课程名称数据结构课程设计设计题目《小学算术运算测试》学生姓名学号专业班级计算机科学与技术指导教师2014 年 1 月8日目录1.设计任务书 (2)1.1 题目与要求 (2)1.2 本程序涉及的知识点 (2)2.功能设计 (2)2.1算法设计 (2)2.2部分模块流程图 (2)3. 程序代码设计 (4)3.1输入函数 (4)3.2输出函数 (5)4.C程序设计总结 (6)5.致谢 (6)参考文献 (6)1、设计任务书1.1、题目与要求我计划编写小学算术运算测试程序。
要求完成10以内的加减运算。
能根据用户输入的想要练习的题目数自行出题。
用户输入答案后可以判断正误,并能给出算对及算错的题目数,最后计算出分数。
同时,对于用户算错的题目会发出报警声,提示用户注意,同时给出正确结果。
做完一次测试后用户可决定是否继续进行下一次测试。
1.2、本程序涉及的知识点变量的定义、输入和输出函数、产生随机数函数、if语句、goto语句、转意字符的使用等等。
2、功能设计2.1、算法设计1、本程序实现的功能要求:利用if语句完成所示的主菜单。
2、进入第一步出现如下信息:开始测试?(输入y开始,输入n推出)选择y后,进入第二步。
用户输入要练习的题数。
第三步:输出算术式子用户输入结果进行测试。
第四步:输出测试结果屏幕显示出本次测试的基本情况。
2.2、部分模块流程图3、程序代码设计3.1、输入函数1)函数原形:scanf(“%d”,&*)2) 功能: scanf()函数利用取地址符号&完成对程序中某个变量的赋值,进而程序中判断循环的功能。
3)变量及类型:int a,b,m: 整型形参变量,接收main()传过来的随机数字。
int i,num:循环控制变量。
int c,d,f,n,num,j,s,t: 整型形参变量。
其中j 具有自加功能;d,f,num,t:需要用户赋值;c,n,s:系统自动赋值。
小学算术运算C语言课程设计报告
![小学算术运算C语言课程设计报告](https://img.taocdn.com/s3/m/f9d3e2d20912a216157929a6.png)
C语言课程设计报告题目:小学算术运算测试设计者:XXXX专业班级:13级通信2班学号:XXXX指导教师: XXXX2014年6 月14 日河南理工大学计算机学院目录1 题目与要求………………………………………………1.1 问题提出………………………………………………………1.2 本系统涉及的知识点…………………………………………1.3 功能要求………………………………………………………2 功能设计…………………………………………………2.1 算法设计………………………………………………………2.2 部分模块流程图………………………………………………3 程序代码设计……………………………………………………4 C程序设计总结……………………………………………………5 结束语………………………………………………………………参考文献………………………………………………………………附录……………………………………………………………………1 题目与要求1.1 问题提出本人计划制作一个可供小学数学运算程序:10以内加减法,能根据输入题数出题,判断做题是否正确。
正确的给鼓励,错误的发出警报,并给出正确答案,最后计算分数。
1.2 本系统涉及的知识点循环、函数、结构1.3 功能要求1、能根据输入要测试的题目数,输出相应数目的试题。
2、能判断正误,错误的报警,并给出正确答案。
3、能计算出得分。
2 功能设计2.1 算法设计1、本程序实现的功能要求:利用for循环和switch完成的主菜单。
2、进入第一步出现如下信息:用户输入要练习的题数。
第二步:输出算术式子用户输入结果进行测试。
第三步:输出测试结果屏幕显示出本次测试的基本情况。
2.2 部分模块流程图3 程序代码设计输入模块1)函数原形:switch(op)2)功能:利用结构体完成10以内的加减法的出题。
3)变量及类型:int a:整形变量,存放产生10以内的随机数。
int number:整形变量,用来统计错误的题数。
c语言课程设计——小学数学出题系统
![c语言课程设计——小学数学出题系统](https://img.taocdn.com/s3/m/93c8a5b7d4d8d15abf234e04.png)
通信工程C语言强化训练实验报告学号:姓名:提交日期:成绩:评语:教师签字:小学数学出题系统1、强化训练目的a)C语言基本知识的巩固和综合运用。
基本数据类型、基本控制结构、数组、指针、函数、结构体和共用体。
b)C语言高级编程。
链表基本操作、文件的基本操作、图形和声音制作。
c)程序的结构化设计。
d)编辑、设置、编译、调试、执行。
e)C语言结合实际问题的综合设计。
2、设计题目功能为小学生教学服务,能够根据小学生的需要随机抽出两位数的数学运算题,可根据需要进行加减乘除运算。
由学生在电脑上答题,并对其判断正误和记分。
3、设计题目要求两位数四则云算的出题功能答案判断正误功能分数累积功能:4、程序流程图5、主要代码#include <stdio.h>#include <stdlib.h>int main(){int k,n,m,i,s,j;n=5;float score=0;int a,b;int answers[1000]={0},user_answer[1000]={0};a=0;b=0;printf("*****************小学数学出题系统*******************\n"); printf(" 指导老师: \n");printf(" 完成学生: \n");printf(" 完成时间:年月日 \n");printf(" thank you\n\n");printf("请输入题目数(1-1000)");scanf("%d",&k);if (k<1||k>1000){ printf("\n超出允许范围\n");printf("请再次输入题目数\n");scanf("%d",&k);}printf("请选择出题方式:0.加法 1.减法 2.乘法 3.除法 4.随机\n"); scanf("%d",&m);printf("\n********************开始答题************************\n");for (i=0;i<k;i++){a=rand()%100;b=rand()%100;if(m==4)n=rand()%4;if (m==0||n==0) {printf("\n第%d题:%d+%d=",i+1,a,b); scanf("%d",&user_answer[i]);answers[i]=a+b;}if (m==1||n==1){if (a>b){printf("\n第%d题:%d-%d=",i+1,a,b); scanf("%d",&user_answer[i]);answers[i]=a-b;}else{printf("\n第%d题:%d-%d=",i+1,b,a);scanf("%d",&user_answer[i]);answers[i]=b-a;}}if (m==2||n==2){printf("\n第%d题:%d*%d=",i+1,a,b); scanf("%d",&user_answer[i]);answers[i]=a*b;}if (m==3||n==3){if(a!=0&&b!=0){s=a*b;printf("\n第%d题:%d/%d=",i+1,s,a); scanf("%d",&user_answer[i]);answers[i]=s/a;}else{ doa=rand()%100;while(a!=0&&b!=0);b=rand()%100;s=a*b;printf("\n第%d题:%d/%d=",i+1,s,a);scanf("%d",&user_answer[i]);answers[i]=s/a;}}}printf("结果和正确答案:\n");for (i=0;i<k;i++) {if (user_answer[i]==answers[i]){printf("%d:正确 %d\n",i+1,answers[i]);score++;}elseprintf("%d:错误 %d\n",i+1,answers[i]);}score=100*score/k;printf("\n总得分(百分制):%f\n",score);if (score<60) printf("很遗憾!你的分数不及格,继续努力\n");else printf("恭喜!你的成绩合格\n");printf("*****************************************************\n"); }6、运行程序示例第一个图反应执行加法的结果第二个图反应执行减法的结果第三个图反应执行乘法的结果第四个图反应执行除法的结果第五个图反应执行随机的结果7、强化训练心得体会本程序在刚开始调试时有许多错误,出现过不能运行、不能随机出现四则运算、不会输出正确结果、选择乘法却出现减法等等问题。
小学生数学测试软件-C语言课程设计
![小学生数学测试软件-C语言课程设计](https://img.taocdn.com/s3/m/71f526acda38376baf1faef3.png)
C语言课程设计设计期限2013 年 6 月17 开始|至2013 年 6 月20 结束系别信息管理与信息系统专业班级学生姓名学号指导教师]主要内容有:[问题描述],小学生数学测试软件的编写[基本设计要求],~1) 可选择题型(+,-,*,/);2) 可选择每次答题的个数;3) 随机生成两个数进行运算;4) 每次在输入答案后应判断对错,若答案错误,应给出正确答案;5) 给出统计结果。
注:根据课程设计的基本要求,针对几点进行了改进,大体改进如下,具体改进详见程序。
1)可选择类型有加、减、乘、混合运算;2)可选择每次答题的个数;3)》4)随机生成两个或三个数进行运算;5)每次在输入答案后应判断对错,若答案错误,应给出正确答案;6)给出统计结果,包括正确的个数和分数;7)根据分数的情况给出不同的建议[系统分析],程序中包括头文件#include<>、#include<>、#include<>、#include<>包函的函数。
定义子函数int style()来选择测试类型,定义子函数void jia(),void jian(),void cheng(),void hun()分别进行加、减、乘、混合运算。
定义子函数void xiao()用于成绩在80-100之间时生成两个笑脸,子函数void wu()用于成绩在60-80之间时生成两个表情,子函数void ku()用于成绩少于60时生成两个哭脸。
上述三个子函数的使用目的在于使软件在使用时增加使用者的兴趣。
《·[流程图] ,#include<>int style();void xiao();void wu();void ku();void jia();void jian();、void cheng();void hun();void main(){for( ; ; ){switch(style()){)case 1:jia();break;case 2:jian();break;case 3:cheng();;break;case 4:hun();break;case 5:printf("欢迎再次使用,再见\n");exit(0);}$}}void xiao(){int x1,x2;char diamond1[][30]={{' ',' ','*',' ',' ',' ',' ',' ',' ',' ','*',' ',' ',' ',' ',' ',' ',' ',' ','*',' ',' ',' ',' ',' ',' ',' ','*',' ',' '},{'*',' ',' ',' ','*',' ',' ',' ','*',' ',' ',' ','*',' ',' ',' ',' ','*',' ',' ',' ','*',' ',' ',' ','*',' ',' ',' ','*'},{' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},({' ',' ',' ',' ','*',' ',' ',' ','*',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','*',' ',' ',' ','*',' ',' ',' ',' '},{' ',' ',' ',' ',' ',' ','*',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','*',' ',' ',' ',' ',' ',' '}};for(x1=0;x1<5;x1++){for(x2=0;x2<30;x2++)printf("%c",diamond1[x1][x2]);printf("\n");}¥}void wu(){int g1,g2;char diamond2[][30]={{' ',' ','*',' ',' ',' ',' ',' ',' ',' ','*',' ',' ',' ',' ',' ',' ',' ',' ','*',' ',' ',' ',' ',' ',' ',' ','*',' ',' '},{'*',' ',' ',' ','*',' ',' ',' ','*',' ',' ',' ','*',' ',' ',' ',' ','*',' ',' ',' ','*',' ',' ',' ','*',' ',' ',' ','*'},{' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},{' ','*',' ','*',' ',' ',' ',' ',' ','*',' ','*',' ',' ',' ',' ',' ',' ','*',' ','*',' ',' ',' ',' ',' ','*',' ','*',' '}};—for(g1=0;g1<4;g1++)printf("%c",diamond2[g1][g2]);printf("\n");}void ku(){int r1,r2;char diamond3[][18]={{'*','*',' ',' ',' ','*','*',' ',' ',' ',' ','*','*',' ',' ',' ','*','*'},、{' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},{' ',' ',' ','*',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','*',' ',' ',' '},{' ','*',' ',' ',' ','*',' ',' ',' ',' ',' ',' ','*',' ',' ',' ','*',' '}};for(r1=0;r1<4;r1++){for(r2=0;r2<18;r2++)printf("%c",diamond3[r1][r2]);printf("\n");}—}int style(){int num;printf("\n");printf(" -*-*-*-*-*目录-*-*-*-*-*-\n");printf(" 选择加法题请按1\n");printf(" 选择减法题请按2\n");^printf(" 选择乘法题请按3\n");printf(" 选择混合题请按4\n");printf(" 选择退出请按5\n");printf(" -*-*-*-*-*-*-*-*-*-*-*-*-\n");printf(" -*-*-请选择测试题类型,输入数字:");scanf("%d",&num);if(num>0&&num<6)return(num);[elseprintf(" -*-*-输入错误,请重新输入!\n");}void jia(){int a1,b1,ans1,zhen1,i1,k1,m1,n1,he;int q1;printf("\n");¥printf("-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-");printf("\n");printf("1.简单2.适中3.复杂请选择题目的难易程度:");scanf("%d",&n1);for( ; ; ){int right1=0,score1=0;m1=(int)(pow(10,n1));¥printf("请输入你想做的题目数量:");scanf("%d",&k1);printf("\n");printf("-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-");printf("\n");for(i1=0;i1<k1;i1++){srand(time(0));:a1=rand()%m1;b1=rand()%m1;if(a1%3==0){zhen1=a1+b1;printf(" %d. %d+%d=() 你的答案是:",i1+1,a1,b1);}if(a1%3==1)){he=a1+b1;zhen1=a1;printf(" %d. ()+%d=%d 你的答案是:",i1+1,b1,he);}if(a1%3==2){he=a1+b1;~zhen1=b1;printf(" %d. %d+()=%d 你的答案是:",i1+1,a1,he);}scanf("%d",&ans1);if(ans1==zhen1){printf("恭喜你,回答正确!\n");right1++;…}elseprintf("很遗憾,回答错误!正确答案是%d,别灰心,继续努力!\n",zhen1);printf("-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-");printf("\n");}score1=(100*right1)/k1;printf("你答对了%d道题!\n",right1);.if (score1>=80&&score1<=100){printf("你考了%d分,很不错,再接再厉哟!\n",score1);xiao();n1++;if(n1==4)break;else¥{printf("你想挑战更高难度的题目吗是请按1,不是请按2:");scanf("%d",&q1);if(q1==2)break;}}if(score1>=60&&score1<80)|{printf("你考了%d分,还不错,但不是特别理想,继续努力!\n",score1);wu();if(n1=3){printf("你想再来几题吗是请按1,不是请按2:");scanf("%d",&q1);if(q1==2)-break;}else{printf("你想挑战更高难度吗是请按1,不是请按2:");scanf("%d",&q1);if(q1==1)n1++;—elsebreak;}}if(score1<60){printf("你只考了%d分,成绩不理想,别灰心,继续努力!\n",score1);ku();…if(n1!=3){printf("你想再来几题吗是请按1,不是请按2:");scanf("%d",&q1);if(q1==2)break;}}$}}void jian(){int a2,b2,ans2,zhen2,i2,k2,m2,n2,cha;int q2;printf("\n");printf("-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-");—printf("\n");printf("1.简单2.适中3.复杂请选择题目的难易程度:");scanf("%d",&n2);for( ; ; ){int right2=0,score2=0;m2=(int)(pow(10,n2));printf("请输入你想做的题目数量:");·scanf("%d",&k2);printf("\n");printf("-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-");printf("\n");for(i2=0;i2<k2;i2++){srand(time(0));a2=rand()%m2;—b2=rand()%m2;if(a2%3==0){zhen2=a2-b2;printf(" %d. %d-%d=() 你的答案是:",i2+1,a2,b2);}if(a2%3==1){|cha=a2-b2;zhen2=a2;printf(" %d. ()-%d=%d 你的答案是:",i2+1,b2,cha);}if(a2%3==2){cha=a2-b2;zhen2=b2;?printf(" %d. %d-()=%d 你的答案是:",i2+1,a2,cha);}scanf("%d",&ans2);if(ans2==zhen2){printf("恭喜你,回答正确!\n");right2++;}…elseprintf("很遗憾,回答错误!正确答案是%d,别灰心,继续努力!\n",zhen2);printf("-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-");printf("\n");}score2=(100*right2)/k2;printf("你答对了%d道题!\n",right2);if (score2>=80&&score2<=100)){printf("你考了%d分,很不错,再接再厉哟!\n",score2);xiao();n2++;if(n2==4)break;else{。
C课程设计:小学生测验程序
![C课程设计:小学生测验程序](https://img.taocdn.com/s3/m/ccb7f9c32cc58bd63186bde0.png)
C课程设计:小学生测验程序面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。
功能要求:(1)电脑随机出10道题,每题10分,程序结束时显示学生得分;(2)确保算式没有超出1~2年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出0~50的范围,负数更是不允许的;(3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;(4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;(5)总成绩90以上显示“SMART”,80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下“TRY AGAIN”。
题目3 运动会比赛计分系统要求:初始化输入:N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数各项目名次取法有如下几种:取前5名:第一名得分7分,第二名得分5,第三名得分3,第四名得分2,第五名得分1;取前3名:第一名得分5,第二名得分3,第三名得分2;功能要求:(1)系统以菜单方式工作(2)由程序提醒用户填写比赛结果,输入各项目获奖运动员信息。
(3)所有信息记录完毕后,用户可以查询各个学校的比赛成绩(4)查看参赛学校信息和比赛项目信息等。
#include<stdio.h>#include<time.h>#include<stdlib.h>main(){int i,j,a,b,c,score[10],trueV alue,sum=0;srand((unsigned)time(NULL));for(i=0;i<10;i++){for(a=rand()%51,b=rand()%51;a+b>50 || a+b<0 || a-b>50 || a-b<0; a=rand()%51,b=rand()%51)/*表示运算数的范围不超过50*/c=rand()%3;for(j=0;j<3;j++){ /*表示输入答案的3次机会*/if(c==1){printf("%d:%d+%d=",i+1,a,b);trueValue=a+b;scanf("%d",&score[i]);if(score[i]!=trueValue){printf("答案错误,请重新输入.\n");score[i]=0;}else{if(j==0){score[i]=10;}else if(j==1){score[i]=7;}else{score[i]=5;}break;}}else{printf("%d:%d-%d=",i+1,a,b);trueValue=a-b;scanf("%d",&score[i]);if(score[i]!=trueValue){printf("答案错误,请重新输入.\n");score[i]=0;}else{if(j==0){score[i]=10;}else if(j==1){score[i]=7;}else{score[i]=5;}break;}}}if(score[i]==0){printf("正确答案是:%d\n",trueValue);}sum=sum+score[i];}printf("你的成绩是:%d\n",sum); if(sum>90){printf("SMART.\n");}else if(sum>=80){printf("GOOD.\n");}else if(sum>=70){printf("OK.\n");}else if(sum>=60){printf("PASS.\n");}else{printf("TRY AGAIN\n");}return 0;}。
c语言课程设计报告及其源代码
![c语言课程设计报告及其源代码](https://img.taocdn.com/s3/m/9a4bfa126137ee06eef9181d.png)
西安郵電學院C语言课程设计报告书系部名称通信工程系学生姓名王子源专业名称通信工程专业班级通工0901班学号03091001指导教师衡霞2010年06月07日至时间2010年06月18日实验题目学生宿舍管理系统一、实验目的通过进行计算机实践,更加系统地理解和掌握C语言的基本概念、语言特点和编程技巧。
利用系统提供的标准函数和自定义函数进行程序设计,培养利用C语言设计综合程序的能力。
二、实验内容在熟练掌握C语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。
进一步掌握各种函数的应用。
三、需求分析本学生信息管理系统包含输入记录,显示记录,按房间号排序并显示,按学号排序并显示,插入一条记录按学号排序并显示,按姓名查找,删除一条记录,查找并显示一个记录,查找并修改一个记录,从文件中读入数据,循环写入数据等功能.需求分析:输入记录(Input)显示记录(Display)按房间号排序并显示(Sort_by_roomnum)按学号排序并显示(Sort_by_num)插入一条记录按学号排序并显示(Insert_a_record)按姓名查找,删除一条记录(Delete_a_record)查找并显示一个记录(Query_a_record)查找并修改一个记录(Change_a_record)从文件中读入数据(AddfromText)循环写入数据(WritetoText)四.概要设计1.系统分析功能模块图:总目录以及下属的各个模块,这样可以使得程序的书写脉络清晰流畅。
程序结构图2、模块功能说明(1)输入记录模块(Input):用于输入学生的各项信息(2)显示记录模块(Display):按照输入的顺序显示出每个学生的各项信息(3)按房间号排序并显示模块(Sort_by_roomnum):按照房间号顺序显示每个学生信息(4)按学号排序并显示模块(Sort_by_num):按照学号顺序显示每个学生信息(5)插入一条记录按学号排序并显示模块(Insert_a_record):插入一条记录并按学号显示出所有记录。
小学数学学习系统(C语言课程设计报告,有源代码)
![小学数学学习系统(C语言课程设计报告,有源代码)](https://img.taocdn.com/s3/m/e871d40adaef5ef7bb0d3c1e.png)
课程设计报告课程设计名称:C语言课程设计课程设计题目:小学数学学习系统目录第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)第1章概要设计1.1题目的内容与要求内容:1.具有随机出题功能,且可以选择难度等级,不要混合运算功能;2.自动评分功能,当用户电答题后能给出用户的分值;3.查看正确答案;4.错题重做功能。
要求:1、用户登录;2、程序采用文本菜单界面。
1.2总体结构本程序主要分为5个模块(功能模块图见图1.1):1.学生信息存储模块,2.菜单选择模块,3.试题测试模块,4.得分与排名模块图1.1第2章详细设计2.1数据结构设计首先定义结构体数组存储学生信息,注册,录入学生个人信息,将学生信息储存在TXT 文档中,用指针写入文件,用while循环语句开始写入测试等级难度,保存正确结果,计算正确率,最后查看排名。
2.2 功能设计2.2.1 学生信息存储模块main函数实现程序的菜单操作。
根据用户选择的不同选项调用不同的函数,实现“注册”、“输入学号”、“选择难度答题”、“返回主菜单”等功能。
具体情况流程图如图2.1所示:算法1在屏幕上输出“请注册”选项;2接受用户输入2.2.2图 2.2图2.32.2.3图 2.4图 2.5 2.2.4 得分与排名模块图 2.6第3章调试分析在上机调试过程中遇到许多问题:1.引用库函数的头文件写成“#include “stdio””;2.变量int类型未先定义后使用;仔细思考总结,查阅教材解决;3.将学生信息输入后答题,但发现无法进行下一步功能;解决办法:按F10键进行单步调试,首先发现指向文件数据的指针没有数据,然后对文件直接进行数据加入,发现其他功能能够实现,然后对指向文件数据的指针进行修改,发现无论怎样修改数据都无法进入到文件,于是对数据输入函数进行修改,发现犯了一个比较低级的错误,scanf (“”)输入数据时忘记“&”符号,造成数据无法输入;4.使用随机数函数,但是调试过程中出现“rand()未定义”,无法产生随机数;解决办法:查找书籍,发现是未使用“rand()”函数的头文件,调用“#include<stdio.h>”后,随机函数问题得以解决;第4章使用说明(1).注册。
C语言课程设计举例--小学生算术自测
![C语言课程设计举例--小学生算术自测](https://img.taocdn.com/s3/m/89c724cbba0d4a7302763a61.png)
printf("%d-%d=",a,b);
scanf("%d",&c);
if (a-b==c) printf("right!\n");
else printf("error!\n");
break;
case3: goto end;
(2)作三位或三位以上的整数除法运算练习
(3)返回主菜单
请选择(1,2,3):
2.接收子菜单选择项
如果选择项的值为1,随机出一道两位整数的除法练习题,根据小学生的回答,输出表示“正确”或“错误”的提示信息,然后再显示子菜单。
如果选择项的值为2,随机出一道三位或三位以上的整数除法练习题,根据小学生的回答,输出表示“计算正确”或“计算错误”的提示信息,然后再显示子菜单。
(略)
(2)软件配置
操作系统:windows2000;
C语言编译系统:WIN-TC。
3.系统结构
(1)系统结构图
小学生算术练习管理系统的系统结构图如下所示,总共由7个模块组成,其中一个是总控模块,另外七个是分别实现不同功能的子模块:
(2)模块说明书
A.小学生算术练习管理系统总控模块的模块说明书
模块名称:小学生算术练习管理系统总控模块
输入:主菜单选择项
输出:
处理:
1.按以下格式显示主菜单和提示小学生选择:
小学生算术练习管理系统
(1)加法运算练习
(2)减法运算练习
(3)乘法运算练习
(4)除法运算练习
(5)四则混合运算练习
(6)模拟考试练习
(7)结束练习,退出本系统
请选择(1,2,3,4,5,6,7):
c++实验设计 小学数学测试软件
![c++实验设计 小学数学测试软件](https://img.taocdn.com/s3/m/484ec8abc77da26925c5b09b.png)
河南城建学院《c程序设计》课程设计报告书设计题目:小学生数学测试软件指导老师:张芳芳沈云琴崔雪冰学生学号:083215242学生姓名:同组人员:时间:2015年12月25日目录第1章选题 (2)1.1 题目背景 (2)1.2课程设计目的及要求 (2)(1)提高和加强自己的计算机应用与软件开发能力,使自己由初学者向专业的程序员过渡。
(2)1.3系统实现的具体分工 (3)1.3.1标题 (3)1.3.2小学生数学测试软件的编写要求: (3)1.4开发环境 (4)第2章设计内容 (5)2.1实现功能 (5)2.2 概要设计(涉及类的框图) (6)2.3 界面设计 (7)第3章系统实现 (8)3.1 涉及知识点 (8)3.2 系统运行(主要运行界面抓图) (8)3.3 源程序清单(关键代码) (12)第4章结束语 (16)参考文献 (19)第1章选题1.1 题目背景科技的飞速发展将会给传统教育模式带来革命性的变革,多媒体设备已经引进各个学校,新型的教学模式不仅各教师带来了方便,更不用老是在充当“粉笔吸尘器”。
同时教师可以应用多媒体的先进技术制作优美的教学软件,又能很好地把握教学节奏,给学生带来不一样的学习环境,学习兴趣也会大大提高,智能化、网络化、信息化的教学软件应用势在必行。
1.2课程设计目的及要求(1)提高和加强自己的计算机应用与软件开发能力,使自己由初学者向专业的程序员过渡。
(2)培养自己独立分析问题、解决问题、查阅资料以及自学能力,以适应计算机产业日新月异发展的形势,综合运用所学知识,解决实际问题,全面提高学生的程序设计能力和开发能力。
(3)学习和掌握C++面向对象程序设计方法以及上机调试技巧,为今后学习其它专业课程打好坚实的基础。
(4)检测自己在这一学期对C++面向对象的学习及掌握情况。
知道自己的不足,及时的弥补。
为以后的学习打下一定的基础,也为自己以后如何制定学习计划做一铺垫。
1.3系统实现的具体分工系统分为算法,题数,结果总结等几大模块,其中教师可以通过选择算法和算数,由程序运行出结果以及准确率,main() 函数实现对程序主界面的引导。
利用C语言开发一个“小学生算术四则运算测试系统”
![利用C语言开发一个“小学生算术四则运算测试系统”](https://img.taocdn.com/s3/m/e149fc6b011ca300a6c3907a.png)
武汉理工大学华夏学院课程设计课程名称C语言程序设计题目利用C语言开发一个“小学生算术四则运算测试系统”专业____电子商务_____班级______1091_______学号_____20510809105_____姓名______张宇_______成绩_________________指导教师杨沙、王绪梅2010年6月28日至2010年7月2日课程设计任务书设计题目:利用C语言开发一个“小学生算术四则运算测试系统”设计目的1.加深对《C语言程序设计》课程所学知识的理解;2.掌握结构化程序设计的基本方法;3.学会编制结构清晰、风格良好、数据结构选择恰当的C语言程序;4.掌握多模块的C语言程序的调试方法。
设计任务(在规定的时间内完成下列任务)任务描述:利用C语言开发一个“小学生算术四则运算测试系统”该系统是让计算机充当一位给小学生布置作业的算术老师,为学生出题、阅卷该系统应具备以下功能:1.为小学生出题(分别进行+、-、*、÷等不同运算)2.学生做题后,进行评阅;学生每做一题后,评阅时给出“答题正确,很好”或“答题错误,重做”等字样;3.加、减、乘、除运算功能可以自由选择实现;4.运算数值可以控制在两位(或三位)数的四则运算范围内。
具体要完成的任务是:1 完成整个规定任务的设计及调试,得出正确结果,并经教师检查及答辩;2. 写出规范的课程设计说明书;3. 课程设计结束后交设计说明书等文档和设计内容。
设计说明书的主要内容是详细写出在设计过程中所用到的主要技术或方法;4. 从6月28日起,学生每天至少要到设计教室半天以上;5.课程设计报告按国际通用格式书写,具体格式要求请在网络上查阅时间安排6月28日上午1-103教室动员全体学生,给学生下任务书;下午查阅相关资料;6月29日~7月1日完成选题的设计及报告的书写;7月2日上午提交课程设计报告并答辩。
指导教师签名:2010年 6 月27 日教研室主任(或责任教师)签名:2010年 6 月27 日1、问题描述1.1在最开始设计此程序过程中,我定义的变量flag为字符型,当把原程序段中对应于下面的程序段的程序段改为:……scanf("%d",&temp);while(temp!=answer){printf("\n答案错误,重做\n");printf("\n请输入正确的答案:\n");scanf("%d",&temp);}printf("\n继续请按y,退出测试请按n \n");scanf("%c",&flag);while(flag!=y&&flag!=n){printf("\n继续请按1,退出测试请按0 \n");scanf("%d",&flag);}……我将会发现当我做完一题且做对了的时候,无论我输入的是y还是n或者是其他的字符,printf("\n继续请按1,退出测试请按0 \n")这个提示在屏幕上出现两次,说明了在第一个scanf("%c",&flag)语句中无论什么,flag!=y&&flag!=n都是成立的,这说明了在第一个scanf("%c",&flag)中输入的字符并没有赋给flag。
通过C语言编写小学生数学测试软件C语言课程设计
![通过C语言编写小学生数学测试软件C语言课程设计](https://img.taocdn.com/s3/m/85814c99bb4cf7ec4bfed015.png)
C语言课程设计设计期限2013年 6 月 17 开始至 2013 年 6 月 21 结束系别信息管理与信息系统专业 36 班级 112030601学生姓名邓茂华学号11203060106指导教师纪钢金艳重庆理工大学[主要内容有]:问题描述、基本设计要求、系统分析、流程图、程序代码、测试数据、小结。
[问题描述]:通过C语言编写小学生数学测试软件:1) 可选择题型(+,-,*,/);2) 可选择每次答题的个数;3) 随机生成两个数进行运算;4) 每次在输入答案后应判断对错,若答案错误,应给出正确答案;5) 给出统计结果。
[基本设计要求]:利用C语言中函数的嵌套调用、全局变量、循环控制等来实现数据之间的运算,最终实现小学生数学测试软件的运行。
[系统分析]:#include<stdio.h>#include<stdlib.h>#include<time.h>#include<math.h>int type;//定义全局变量;int j;void main(){int yunsuan();//在主函数中嵌套一个子函数,实现子后面主函数调用子函数的运行结果;int answer;int temp;int score=0,right=0;int k,i;printf("\n\n 制作人:邓茂华学号:11203060106\n\n\n");//制作系统的封面;printf("***********************************************\n");printf("**------------小学生数学测试系统-------------**\n");printf("***********************************************\n");for(;;)//设置死循环,实现测试结束后返回;{printf("\n请你选择测试题目的种类(只需输入数字代号):\n");//选择测试题目的种类;printf("\n1.加法2.减法3.乘法4.除法\n");scanf("%d",&type);while(type!=1&&type!=2&&type!=3&&type!=4)//输入错误时实现循环,直到输入正确时跳出循环;{printf("你输入错误,请重新输入\n");printf("\n1.加法2.减法3.乘法4.除法\n");scanf("%d",&type);}printf("\n请输入你想答题的难易程度:\n\n");printf("\n1.简单2.一般3.困难\n\n");scanf("%d",&j);while(j!=1&&j!=2&&j!=3){printf("\n请输入你想答题的难易程度:\n\n");printf("\n1.简单2.一般3.困难\n\n");scanf("%d",&j);}printf("\n请输入你要答题的个数:\n");scanf("%d",&k);for(i=0;i<k;i++){answer=yunsuan();//调用子函数的结果;printf("\n请输入你的答案:\n");scanf("\n%d",&temp);if(answer==temp)//将测试者输入的结果与计算机算出的结果比较,并判断正误;printf("\n答对了,很好!\n"),right++;else printf("\n**********答错了,正确答案是%d,继续努力!\n\n",answer);}printf("\n\n--------------------------------------------------------------\n\n");score=(100*right)/k;//实现对测试者的评分;printf("**********你答对了%d道题!\n",right);if(score<60){printf("**********只考了%d分,成绩不是很理想哦!继续努力!!\n",score);continue;}if(score>=60&&score<80){printf("**********你考了%d分,成绩一般!\n",score);continue;}else if(score>=80&&score<100){printf("**********你考了%d分,不错哟!再接再励!\n",score);continue;}else{printf("**********哇,你真是太棒啦,居然考了%d分,说不定是未来的数学家哦!\n",score);printf("\n");continue;}}}int yunsuan()//在子函数中实现加减乘除的运算并返回结果;{int a,b,c,m;m=(int)pow(10,j);if(type==1)//加法运算;{srand(time(0));a=rand()%m;b=rand()%m;printf("%d+%d=",a,b);return(a+b);}else if(type==2)//减法运算;{srand(time(0));a=rand()%m;c=m-a;c=rand()%c;printf("%d-%d",a+c,a);return(c);}else if(type==3)//乘法运算;{srand(time(0));a=rand()%m;b=rand()%100;printf("%d*%d=?",a,b);return(a*b);}else //除法运算;{srand(time(0));a=rand()%(m-1)+1;c=rand()%(m-1)+1;printf("%d/%d",a*c,a);return(c);}}[流程图]:[程序代码]:#include<stdio.h>#include<stdlib.h>#include<time.h>#include<math.h>int type;int j;void main(){int yunsuan();int answer;int temp;int score=0,right=0;int k,i;printf("\n\n 制作人:邓茂华学号:11203060106\n\n\n");printf("***********************************************\n");printf("**------------小学生数学测试系统-------------**\n");printf("***********************************************\n");for(;;){printf("\n请你选择测试题目的种类(只需输入数字代号):\n");printf("\n1.加法2.减法3.乘法4.除法\n");scanf("%d",&type);while(type!=1&&type!=2&&type!=3&&type!=4){printf("你输入错误,请重新输入\n");printf("\n1.加法2.减法3.乘法4.除法\n");scanf("%d",&type);}printf("\n请输入你想答题的难易程度:\n\n");printf("\n1.简单2.一般3.困难\n\n");scanf("%d",&j);while(j!=1&&j!=2&&j!=3){printf("\n请输入你想答题的难易程度:\n\n");printf("\n1.简单2.一般3.困难\n\n");scanf("%d",&j);}printf("\n请输入你要答题的个数:\n");scanf("%d",&k);for(i=0;i<k;i++){answer=yunsuan();printf("\n请输入你的答案:\n");scanf("\n%d",&temp);if(answer==temp)printf("\n答对了,很好!\n"),right++;else printf("\n**********答错了,正确答案是%d,继续努力!\n\n",answer);}printf("\n\n--------------------------------------------------------------\n\n");score=(100*right)/k;printf("**********你答对了%d道题!\n",right);if(score<60){printf("**********只考了%d分,成绩不是很理想哦!继续努力!!\n",score);continue;}if(score>=60&&score<80){printf("**********你考了%d分,成绩一般!\n",score);continue;}else if(score>=80&&score<100){printf("**********你考了%d分,不错哟!再接再励!\n",score);continue;}else{printf("**********哇,你真是太棒啦,居然考了%d分,说不定是未来的数学家哦!\n",score);printf("\n");continue;}}}int yunsuan(){int a,b,c,m;m=(int)pow(10,j);if(type==1){srand(time(0));a=rand()%m;b=rand()%m;printf("%d+%d=",a,b);return(a+b);}else if(type==2){srand(time(0));a=rand()%m;c=m-a;c=rand()%c;printf("%d-%d",a+c,a);return(c);}else if(type==3){srand(time(0));a=rand()%m;b=rand()%100;printf("%d*%d=?",a,b);return(a*b);}else{srand(time(0));a=rand()%(m-1)+1;c=rand()%(m-1)+1;printf("%d/%d",a*c,a);return(c);}}[测试数据]:界面:加法:减法:乘法:除法:评分并返回:[小结]:原以为自己把书上的东西都弄明白了就行了,在做这次课程设计的时候就发现有些不是那么回事了,但也并不是完全没用,做这个还是需要很多的理论基础。
小学数学学习系统(C语言课程设计报告,有源代码)
![小学数学学习系统(C语言课程设计报告,有源代码)](https://img.taocdn.com/s3/m/eccac50c640e52ea551810a6f524ccbff121cacc.png)
⼩学数学学习系统(C语⾔课程设计报告,有源代码)课程设计报告课程设计名称:C语⾔课程设计课程设计题⽬:⼩学数学学习系统⽬录第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)第1章概要设计1.1题⽬的内容与要求内容:1.具有随机出题功能,且可以选择难度等级,不要混合运算功能;2.⾃动评分功能,当⽤户电答题后能给出⽤户的分值;3.查看正确答案;4.错题重做功能。
要求:1、⽤户登录;2、程序采⽤⽂本菜单界⾯。
1.2总体结构本程序主要分为5个模块(功能模块图见图1.1):1.学⽣信息存储模块,2.菜单选择模块,3.试题测试模块,4.得分与排名模块图1.1第2章详细设计2.1数据结构设计⾸先定义结构体数组存储学⽣信息,注册,录⼊学⽣个⼈信息,将学⽣信息储存在TXT ⽂档中,⽤指针写⼊⽂件,⽤while循环语句开始写⼊测试等级难度,保存正确结果,计算正确率,最后查看排名。
2.2 功能设计2.2.1 学⽣信息存储模块main函数实现程序的菜单操作。
根据⽤户选择的不同选项调⽤不同的函数,实现“注册”、“输⼊学号”、“选择难度答题”、“返回主菜单”等功能。
具体情况流程图如图2.1所⽰:算法1在屏幕上输出“请注册”选项;2接受⽤户输⼊2.2.2图 2.2图2.3 2.2.3图 2.4图 2.5 2.2.4 得分与排名模块图 2.6章调试分析第3章调试分析在上机调试过程中遇到许多问题:1.引⽤库函数的头⽂件写成“#include “stdio””;2.变量int类型未先定义后使⽤;仔细思考总结,查阅教材解决;3.将学⽣信息输⼊后答题,但发现⽆法进⾏下⼀步功能;解决办法:按F10键进⾏单步调试,⾸先发现指向⽂件数据的指针没有数据,然后对⽂件直接进⾏数据加⼊,发现其他功能能够实现,然后对指向⽂件数据的指针进⾏修改,发现⽆论怎样修改数据都⽆法进⼊到⽂件,于是对数据输⼊函数进⾏修改,发现犯了⼀个⽐较低级的错误,scanf(“”)输⼊数据时忘记“&”符号,造成数据⽆法输⼊;4.使⽤随机数函数,但是调试过程中出现“rand()未定义”,⽆法产⽣随机数;解决办法:查找书籍,发现是未使⽤“rand()”函数的头⽂件,调⽤“#include”后,随机函数问题得以解决;第4章使⽤说明(1).注册。
c课课程设计以及源代码
![c课课程设计以及源代码](https://img.taocdn.com/s3/m/6da64292a0c7aa00b52acfc789eb172dec639967.png)
c 课课程设计以及源代码一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、数据结构和算法,培养学生编程思维和解决问题的能力。
具体目标如下:1.知识目标:(1)理解C语言的基本语法,包括变量、数据类型、运算符、表达式等;(2)掌握函数的定义和调用,了解作用域规则;(3)熟悉数组的声明和使用,理解字符串的基本操作;(4)了解指针的概念和应用,掌握指针与数组、指针与函数的关系;(5)学习结构体和联合体,掌握文件操作的基本方法。
2.技能目标:(1)能够运用C语言编写简单的程序,实现输入输出、数据处理等功能;(2)学会使用调试工具,能够发现和解决程序中的错误;(3)掌握常用的算法,如排序、查找、递归等,并能够灵活运用;(4)具备一定的编程规范和编程习惯,能够阅读和理解他人的代码。
3.情感态度价值观目标:(1)培养学生对计算机科学的兴趣和好奇心,激发学生主动学习的动力;(2)培养学生团队合作的精神,学会与他人交流和分享;(3)培养学生勇于面对困难和挑战,培养解决问题的能力;(4)培养学生具有良好的职业操守,注重诚信和责任心。
二、教学内容根据课程目标,本课程的教学内容主要包括以下几个方面:1.C语言的基本语法:变量、数据类型、运算符、表达式、函数等;2.数据结构:数组、字符串、指针、结构体、联合体等;3.算法:排序、查找、递归等常用算法;4.文件操作:文件的打开、关闭、读写等基本操作;5.编程实践:编写简单的程序,锻炼编程能力和解决问题的能力。
三、教学方法为了达到课程目标,本课程将采用多种教学方法,包括:1.讲授法:通过讲解和演示,使学生掌握C语言的基本语法和数据结构;2.讨论法:学生进行小组讨论,培养学生的团队合作能力和解决问题的能力;3.案例分析法:分析典型的编程案例,使学生了解C语言在实际应用中的重要性;4.实验法:让学生动手编写程序,培养学生的编程能力和实践能力。
四、教学资源为了支持教学内容和教学方法的实施,本课程将准备以下教学资源:1.教材:选用权威、实用的C语言教材,为学生提供系统的学习资料;2.参考书:提供相关的参考书籍,丰富学生的知识体系;3.多媒体资料:制作课件、教学视频等,增强课堂教学的趣味性和生动性;4.实验设备:提供计算机实验室,让学生进行编程实践和实验操作。
C语言课程设计-小学生算术四则运算测试系统
![C语言课程设计-小学生算术四则运算测试系统](https://img.taocdn.com/s3/m/937cd98668dc5022aaea998fcc22bcd126ff42ed.png)
C语言课程设计-小学生算术四则运算测试系统#ifndef H_STUDENT_HH#define H_STUDENT_HH#include "stdio.h"#include "string.h"#include "malloc.h"#define LEN sizeof(struct message_student) /*一个结构体数组元素的长度*/ #define numsubs 5 /*学科数目*/typedef struct message_student /*结构体定义*/{char number[6];char name[20];char sex[4];float subject[numsubs];float score;float average;int index;}student;extern int numstus; /*学生数目*/extern student *pointer; /*指向结构体数组*/extern int lens;int menu_select(); /*函数声明*/int openfile(student stu[]);int findrecord(student stud[]);int writetotext(student stud[]);void welcome();void display1();void showtable();void sort(student stu[]);void deleterecord(student stu[],int i); void addrecord(student stud[]);void display(student stud[],int n1,int n2); void amendrecord(student stud[]);void count(student stud[]);void sortnum(student stud[]);void sortnum2(student stud[]);void sortname(student stud[]);void sortname2(student stud[]);void sortcount(student stud[]);void sortcount2(student stud[]);void statistic(student stud[]);void display1();#endif//#include "head.h"int menu_select(){char c;printf("\\");printf(" | 1. 增加学生记录 5.统计信息 |\"); printf(" | 2. 查询学生记录 6.打开文件 |\"); printf(" | 3. 修改学生记录 7.保存文件 |\"); printf(" | 4. 学生纪录排序 8.显示记录 |\"); printf(" | 0. 退出系统 |\");printf("\\");printf("请选择(0-8):");c=getchar();getchar();return (c-'0');}//#include "head.h"int findrecord(student stud[]) /*查找信息*/{char str[2];int i,num;if(numstus==0){printf("没有可被查找的记录\");return -1;}else{printf("以何种方式查找?\1.学号\2.姓名\3.名次\"); gets(str); if(str[0]=='1') /*按学号查找*/{printf("请输入学号:");gets(str);for(i=0;i<=numstus;i++)if(strcmp(str,stud[i].number)==0) {display(stud,i,i);break;}else continue;}else if(str[0]=='2') /*按姓名查找*/ {printf("请输入姓名:");gets(str);for(i=0;i<=numstus;i++)if(strcmp(str,stud[i].name)==0) {display(stud,i,i);break;}else continue;}else if(str[0]=='3') /*按名次查找*/ {printf("请输入名次:");scanf("%d",&num);getchar();for(i=0;i<=numstus;i++)if(num==stud[i].index){display(stud,i,i);break;}else continue;}if(i>numstus){printf("没有查找所要的信息。
小学数学学习系统C语言课程设计报告有源代码
![小学数学学习系统C语言课程设计报告有源代码](https://img.taocdn.com/s3/m/be2f3039f56527d3240c844769eae009591ba241.png)
05
02
解决方案
经排查发现为数据库连接问题,修复数据库 连接代码后问题得以解决。
04
解决方案
优化系统性能,压缩文件大小,减少 网络传输量,同时增加服务器带宽和 资源配置,提高系统响应速度。
06
解决方案
对题目答案进行逐一核对和修正,确保所有题 目答案准确无误。同时加强题目审核机制,防 止类似问题再次发生。
在团队合作中,我们充分发挥了各自的优势,相互协作,共同解决了遇到的问题。但也存在一些不足之处,如沟 通不够充分、任务分配不够明确等。在未来的合作中,我们需要进一步加强沟通和协调,明确各自的责任和任务 ,以提高团队效率。
对未来工作的展望和建议
功能扩展
在未来的工作中,可以考虑进一步扩 展系统的功能,如加入更复杂的数学 运算、提供个性化的学习路径等,以 满足不同学生的需求。
数据存储优化
采用索引、分区等技术手段优化数据存储和 查询性能。
04
系统实现
编程环境和工具
编程环境
Windows 10操作系统,使用C语言 编程。
开发工具
Visual Studio Code编辑器,GCC编 译器。
关键代码实现
主程序
实现菜单选择、调用各功能模块。
运算模块
实现加、减、乘、除四则运算功能。
输入输出模块
实现用户输入和结果输出功能。
错误处理模块
实现输入错误、运算错误等异常情况的处理。
源代码文件结构和说明
main.c
主程序文件,包含程序入口和菜单 选择功能。
operation.c
运算模块文件,包含加、减、乘、 除四则运算功能的实现。
input_output.c
输入输出模块文件,包含用户输入 和结果输出功能的实现。
小学数学测试系统C课程设计报告及源程序代码
![小学数学测试系统C课程设计报告及源程序代码](https://img.taocdn.com/s3/m/677eb88b59f5f61fb7360b4c2e3f5727a5e924b1.png)
用户界面友好
系统界面简洁明了,易于操作 ,适合小学生使用。
稳定性与可靠性
经过多次测试,系统运行稳定 ,评分准确,达到了预期的设
计目标。
经验教训分享
需求分析重要性
在项目开始之前,充分进行需求分析,明确系统需要实现 的功能和性能要求,有助于避免后期开发过程中的需求变 更和返工。
团队协作与沟通
成绩管理
系统需要提供成绩的录入、修改、删除和查询功能,以 便教师可以方便地管理学生成绩。
数据分析
系统需要提供数据分析功能,包括学生成绩统计、试题 难度分析、知识点掌握情况等,以帮助教师更好地了解 学生的学习情况。
性能需求
01
02
03
响应时间
系统响应时间应小于2秒 ,以确保用户可以流畅地 使用系统。
小学数学测试系统C课 程设计报告及源程序代 码
2024-01-04
目录
• 引言 • 需求分析 • 系统设计 • 系统实现 • 系统测试与评估 • 源程序代码展示与解析 • 课程设计总结与展望
引言
01
目的和背景
01 02
教育信息化改革
随着教育信息化的推进,传统纸质测试方式已逐渐被计算机化测试所取 代。小学数学测试系统C课程设计的目的是适应这一趋势,提供一个高 效、准确的数学测试平台。
THANKS.
统计用户成绩,提供成绩查询 、导出等功能。
系统测试与调试
单元测试
对关键函数进行单元测试,确 保函数功能正确。
集成测试
对所有模块进行集成测试,确 保模块间接口一致,数据传输 无误。
系统测试
对整个系统进行测试,包括用 户登录、试题管理、组卷、测 试和成绩统计等功能,确保系 统稳定可靠。
小学数学测试软件系统源程序
![小学数学测试软件系统源程序](https://img.taocdn.com/s3/m/1d36bc255901020207409cf8.png)
}
*b=random(*c); /*取0~地址c储存数之间的随机数赋值给变量地址b*/
*a=*c-*b;
printf("%d+%d=?\n",*a,*b);
}
void jian(int *a,int *b,int *c) /*定义减法函数*/
{
settextstyle(3,0,2);
outtextxy(150,320,"choose 1 or 2 to enter the exercise or test");
outtextxy(150,340,"1:exercise");
outtextxy(150,360,"2:test");
{
cheng(&a,&b,&c);
for(k=0;k<3;k++)
{
scanf("%d",&answer);
for(k=0;k<3;k++) /*子循环(正确性只判断3次)*/
{
scanf("%d",&answer); /*从终端输入设备读取整数(%d),赋值给变量地址&answer */
key1=bioskey(0);if(key1==ESC)break;
}
else if(key1==THREE)
for(;;) /*死循环(判断乘法正确性)*/
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告课程名称 C语言课程设计课题名称小学数学测试系统专业班级学号姓名指导教师2016年 01 月 06 日工程学院课程设计任务书课程名称 C语言课程设计课题小学数学测试系统专业班级学生学号指导老师审批任务书下达日期 2015 年 12 月 26 日任务完成日期2016年 01 月 06 日一、设计容与设计课题九:小学数学测试系统。
具体容见附录。
2.设计要求:1)设计正确,方案合理。
2)界面友好,使用方便。
3)程序精炼,结构清晰。
4)上机演示。
3.设计报告要求:课程设计报告格式如下:1)正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体,行距为22。
2)正文的容:课题的主要功能、课题的功能模块的划分、主要功能的实现、程序调试、总结、附件(所有程序的源代码,要求对程序写出必要的注释),课程设计报告需5000字左右(不含附件)。
3)课程设计报告装订顺序:封面、任务书、目录、正文、评分、程序清单附件。
二、进度安排上课时间另外安排。
附录:设计课题九:小学数学测试系统一、问题描述:本系统可以用来进行简单的数学测试,并累计成绩,包括用户注册、用户登录、用户删除、题目测试、信息保存等功能。
二、功能描述:1、本系统采用结构体数组,每个数据的结构应当包括:用户名、用户密码、共测试题目数、答对题目数。
2、系统功能:a.用户注册:即添加新的用户名、用户密码。
b.用户登录:在进行数学测试之前,需进行登录,若没有该用户,需进行注册。
c.题目测试:系统自动生成题目(注意题目的合理性,题目结果不能是负数,除数不能是0等),用户给出答案,系统可以自动测试其正确性,同时统计成绩。
d.信息保存: 当注册成功、题目测试完毕后将用户信息及成绩保存到文件。
e.退出系统。
3、系统使用说明:执行一个具体的功能之后,程序将重新显示功能菜单。
系统的功能并不限于上述,可以对其进行扩充完善,如题目的自动生成,可以只是简单的加减乘除运算,也可以生成复杂的四则混合运算。
同时,用户界面友好也很重要,当输入错误答案,需给出提示信息。
三、测试数据:用户>=3,题目数>=5目录1 系统需求分析 (6)2 概要设计 (6)3 详细设计 (10)4 系统测试 (15)5 课程设计总结 (18)1 系统需求分析小学生数学测试系统具有随机出题,自动评分,查看答案,错题重做等功能的系统;其属性有:1. 主界面设计,选择各种功能。
2. 系统随机出题,显示算式,含加,减,乘,除四则运算。
3. 练习时,系统随机出题,键入答案,可显示对错。
4. 测试时,系统自动出题,每题得分,再统计得分。
5. 题的对错信息,错误的给出答案。
2 概要设计系统功能模块图:2.1注册登录模块提示用户输入和学号,如果已经有记录则将本次登录用户信息追加储存在文件中,如果没有记录,则创建一个新文件储存:其模块图如下图所示:2.2测试模块进入开始测试菜单后,开始计时,选择加减乘除四种运算类型,总体来说测试模块可以分为:加法运算、减法运算、乘法运算、除法运算四部分四部分功能相似选择类型后,在选择题数目为(5,10,20,50,100),然后再选择难度,这时开始做题(题目利用随机函数随机出题),然后判断正误并给出正确率,错误的结果存入一个文件中以备错题重做,将所有做题的结果存入另个文件中以便查看结果;2.3 学生成绩管理模块本模块首先将每次测试同学,学号,成绩存入一个文件中,每次测试同学的信息不覆盖之前同学的信息,然后将文件中的信息读取到结构体中进行排序,最后利用结构体将排好序的成绩显示到屏幕上,其模块如下所示图:2.4 查看结果模块利用测试模块存储的结果信息文件进行直接读取,期间用到fgetc函数将文件的信息读取出来,其图如下图所示:2.5 错题重做模块测试模块过程的已将错题和错题的答案分别出入到文件中,直接进行打开存储错题的文件逐个读取错题,这时利用scanf函数输入答题者的答案,最后再打开储存错题答案的文件进行核对正确答案,其模块如下图所示:系统流程图:3 详细设计3.1登录功能得具体实现:用到两个函数Savemessage()和Judge()两个函数,其中 Savemessage()函数用来,保存学生输入信息,将输入学生信息保存到studentmessage.txt"和TestResult.txt文件中,保存过程中,先输入到结构体中,再利用fwrite(&s[0],sizeof(struct Student),1,fp);语句向文件studentmessage.txt中写入一条记录,即刚刚输入的学生和学号;利用fprintf(fp1,":%s\n",s[0].name);fprintf(fp1," 学号:%s\n",s[0].num);向文件TestResult.txt中写入刚刚输入的学生信息登录完后进入测试界面此时开始计时有语句{printf(" 请计时输入开始时间(点,分):"); scanf("%d,%d",&hourA,&minA);}进行输入计时。
然后进入测试界面的菜单:3.2 测试功能得实现①选测试类型:测试功能菜单分为5个,其中1~4为选择类型,5返回主菜单;具体实现选择功能有while(choose<1||choose>5) {printf(" 超出功能围,请重新选择(1---5):");scanf("%d",&choose);}输入1~5之间的一个数,再用switch(choose) { }进行选择对应的功能如上图选择1后进入②选题数目:进行选择题目的数目,输入要测试的题目数被限制(5/10/20/50/100)五个数用句while(thnum<5||thnum>5&&thnum<10||thnum>10&&thnum<||thnum>20&&thnum<50||thn um>50&&thnum<100||thnum>100){printf("超出功能围,请重新选择(5/10/20/50/100):");scanf("%d",&thnum);} 由此语句实现对题目数的限制,但超出围后则提示重新输入。
在begain()中调用Addition(int number)控制循环语句for(int i=0;i<number;i++){ if(m==1){num1=rand()%n; num2=rand()%n; } //产生一位随机数,num1,num2if(m==2){num1=10+rand()%(n-10); //产生两位随机数 num1,num2 num2=10+rand()%(n-10);}if(m==3){num1=100+rand()%(n-100); //产生三位随机数 num1,num2 num2=100+rand()%(n-100);}printf(" %d + %d = ",num1,num2);scanf("%d",&num4);通过控制循环的次数来控制产生题的数目.③选难度的实现:利用随机函数rand()%n;中n的不同值产生不同的位数的随机书实现难度的控制,n=10时用语句num1=rand()%n产生一位数;n=100时用语句num1=10+rand()%(n-10)产生二位数;n=1000时用num1=100+rand()%(n-100)产生三位数;具体有语句printf("请选择难度: "); scanf("%d",&m);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);}}实现控制难度,并有rand()%n产生随机数实现随机出题功能。
④自动评分的实现和数据的储存系统会将输入的答案与正确答案进行逐一比较,如果正确则将结果只记录到TestResult.txt中,以便查看结果;如果错误,则将错误题正确结果记录到failedResult.txt中,以便错题重做,将错误题正确结果记录到rightResult.txt中,TestResult.txt中,以便核对错题答案,在此过程中系统会自动统计正确结果个数和错误个数,从而利用average=float(count1)/float(number);自动得到分数。
具体程序如下:if(num3==num4){fprintf(fp," %d + %d = %d %d \n",num1,num2,num4,num3);count1++;}else{fprintf(fp," %d + %d = %d %d ×\n",num1,num2,num4,num3);fprintf(fp2," %d + %d =\n",num1,num2,num4,num3);//将错误题记录到failedResult.txt中fprintf(fp3," %d + %d = %d \n",num1,num2,num3);}}} average=float(count1)/float(number);fprintf(fp," 正确%d 道,错误%d 道,正确率为:%f\n\n",count1,count2,average);A=A+average*100;//总分nu++;//记录做不同类型题的次数以便算平均分⑤减乘除的过程和原理和加法一样其工作界面分别为减法;乘法;除法;除法其它功能得实现与加法一样只有分母不为零,用num2=n/10+rand()%(n-n/10)语句进行实现,其中rand()%(n-n/10)产生0到n-n/10-1的数;n/10+rand()%(n-n/10)产生n/10到n-1的数;例如n=100时产生10到99的两位数;从而实现了分母不为零,同时也实现了难度的控制。