信息学院课程设计
题目:小学生算术四则运算测试程序
姓名:李爱霞
学号:200912110118
班级:计算机科学与技术
课程:程序设计方法学
任课教师:黄超
2011年6月28日
课程设计任务书及成绩评定
题目 | 小学生算术四则运算测试程序 | |||
课程设计的任务及要求 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以下“TRYAGAIN”。 | ||||
课程设计所需的软件、硬件等 软件:WIN-tcVC++6.0 硬件:计算机 | ||||
课程设计进度计划 2011年4月~5月初,进行可行性研究,完成选题. 2011年5月,根据选题查阅资料、进行概要设计,确定设计方案. 2011年6月,详细设计,实施设计方案,编写程序、调试程序. 2011年7月初,完成课程设计(任务书)的撰写。 | ||||
参考文献、资料索引 | ||||
序号 | 编著者 | 文献、资料名称 | 出版单位 | |
[1]谭浩强C语言程序设计(第三版)清华大学出版社2005 [2]严蔚敏,吴伟民数据结构(C语言版)清华大学出版社2007 [3]胡正国吴健邓正宏程序设计方法学(第2版)北京国防工业出版 | ||||
任课老师评语 成绩:指导教师签字:日期: |
目录
背景…………………………………………….…...1
摘要………………………………………………....1
功能要求…………………………………………….......2
设计流程……………………………………………........3
程序执行……………………………………………........4
程序…………………………………………….......5
程序…………………………………………............6
程序..…………………………………………..........7
程序………………………………………….....…...8
实验结果………………………………………….............9
实验结果………………………………………....……...10
实验心得…………………………………………....…...11
背景
伴随着人类社会的进步,人们的计算工具也在不断的变化,从远古时期的结绳计数,到算筹,算盘,以及近代的机械计算机、计算尺,直至今天我们广泛运用的电子计算机。计算工具的每一次进步,都导致科学技术发生深刻的革命。
人类最初是用手指来作为记数和计算工具的。在古代,人们还广泛地使用过筹码和结绳来作为记数和计算的工具,其中筹码可能采用石子、木棍、滑片等,每一个可以单独使用也可用工具在其刻上道使用。我们中华民族的祖先,在公元前5世纪以前开始使用算筹。利用算筹记数,用笔写下来就是筹算数字,当时这在世界上是十分先进的。而作为我们的祖先对世界文明的重大贡献——四大发明之一的珠算盘,则是人类经过设计加工,制造出来的第一种计算工具。十六世纪以来,随着机械设计和制造水平的提高,同时也为了满足日益复杂的计算要求,许多科学家设计制造了以齿轮为主要构件的机械式计算机。自从上个世纪四十年代电子计算机的发明,人类计算工具的发展进入了一个新纪元。计算机以人类技术史上前所未有的高速度发展着,其主要构件由电子管、晶体管、集成电路,一直发展到运用超大规模集成电路。计算机的计算速度也从每秒几千次算术计算,提高到每秒上万亿次算术计算。
摘要
小学生四则运算,是利用VC++软件编写的一程序,电脑可随机的出10道四则运算题,每题十分。答题者输入需要运算的数,其中要求算式面向小学1~2年纪,数的大小不超过50且运算的结果必须在0~50之间,答题者有三次答题机会,在这三次机会之内答出,系统会自动根据答案的正确与否,得出分数,按照相应的分数给出级别,80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下“TRYAGAIN”
功能要求
题目:小学生算术四则运算测试程序
面向小学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以下“TRYAGAIN”
程序流程
打开VisualC++软件,输入编写的程序,程序无误后,系统会自动生成10道题。输入数字,结果会根据程序设计者编写的程序自动算出。若输入的数超过50或输入数之后结果超过50或是负数的。系统将会显示“结果不正确,你还有j次机会,加油”(1<=j<3)。若次数超过3次,依然还没输对,结果“失败”,程序结束。若在这之内,系统会自动根据你做的题的正确与否给出相应成绩。
程序执行
1.打开VisualC++软件,执行“File—>new”。
2.输入程序
#include<stdio.h>
structstruc{inta;
intb;
intc;
intadd;
intgrade;
};
intsj(intn)
{intt;
t=rand()%n;
returnt;
}
voidctm_i(structstruc*t)
{t->a=sj(51);
t->c=sj(2);
if(t->c==1){t->b=sj(51-(t->a));
t->add=(t->a)+(t->b);}
else{t->b=sj((t->a)+1);
t->add=(t->a)-(t->b);}
t->grade=10;
}
voidtcm_i(structstruc*t,intn)
{intad;
printf("********************************************************************************n");
printf("................................................................................n");
printf("现在进行第%d题nn",n+1);
printf("本题你总共有三次机会nn");
if(t->c==1)printf("%d+%d=",t->a,t->b);
elseprintf("%d-%d=",t->a,t->b);
scanf("%d",&ad);
if(ad==t->add)
{t->grade=10;
printf("很好,本题得10分nn");
}
else{printf("结果不正确,你还有两次机会,加油nn");
scanf("%d",&ad);
if(ad==t->add)
{t->grade=7;
printf("不错,本题得7分nn");
}
else{printf("结果不正确,你还有一次机会,加油nn");
scanf("%d",&ad);
if(ad==t->add)
{t->grade=5;
printf("还行,本题得5分nn");
}
else{t->grade=0;
printf("失败,本题得0分nn");
printf("正确结果是%dnn",t->add);
}
}
}
printf("................................................................................n");
printf("********************************************************************************n");
}
voidmain()
{inti,j,g=0;
charx;
structstructest[10];
srand((unsigned)time(NULL));
printf("********************************************************************************n");
printf("................................................................................n");
printf("***********************欢迎进入小学生算术四则运算测试程序***********************nn");
printf("...本程序是面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答....n");
printf("功能说明:n");
printf("(1)电脑随机出10道题,每题10分,程序结束时显示学生得分;n");
printf("(2)确保算式没有超出1~2年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出0~50的范围,负数更是不允许的;n");
printf("(3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;n");
printf("(4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;n");
printf("(5)总成绩90以上显示“SMART”,80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下“TRYAGAIN“。n");
printf("................................................................................n");
printf("********************************************************************************n");
for(i=0;i<=9;i++)
{ctm_i(&test[i]);
for(j=0;j<i;j++)
if(test[i].a==test[j].a&&test[i].b==test[j].b&&test[i].c==test[j].c)
ctm_i(&test[i]);
}
printf("准备好了吗?按任意键进入");
scanf("%c",&x);
for(i=1;i<=5;i++)
{printf("********************************************************************************n");
printf("................................................................................n");
}
for(i=0;i<=9;i++)
tcm_i(&test[i],i);
printf("测试结束");
for(i=0;i<=9;i++)
g=g+test[i].grade;
if(g>90)printf("SMART");
elseif(g>80)printf("GOOD");
elseif(g>70)printf("OK");
elseprintf("TRYAGAIN");
}
3.Fileàsaveàctrl+s
4.编译程序compile—ctrl+F7
5.建立程序Build—F7
6.运行程序Execute—ctrl+F5
实验结果
进入界面
测试第一题
其余题目测试
最后一题
实验心得
作为一名计科系的学生,程序设计是至关重要的。程序设计报告的结束,意味着程序设计方法学这门课程即将终止,但这并不意味着对程序设计学习的结束。
通过半学期的程序设计方法学的学习,不仅使我们对以前学过的知识有了更进一步的了解和掌握,而且让我们学习到了以往未接触过的一些方面,如:VC++软件的使用、C++程序的编写、不同类型程序的编写形式。
这次的社会实践报告让我们学到了很多东西,让我们能够将课堂上学习到的知识与实践相结合,不再是让我们只死读书,学会将学到的理论知识运用到生活中的具体事情中。而且通过这次的实践报告,我们小组成员之间相互探讨,彼此分工合作,使本来需要很长时间才能完成的工作很快就被完成,这让我们深刻意识到团队合作的重要性,团结的重要性。
程序和实践报告虽然都完成了,但不可避免的还存在一些不好之处。所以,我们仍旧还会继续努力,掌握更多的知识,学习永无止境。