C语言课程设计小学生数学测试
C语言课程设计-小学数学测试软件
课程设计(论文)题目名称小学数学测试软件课程名称C语言程序课程设计学生姓名学号系、专业信息工程系、信息大类指导教师黄同成2010年6月26 日注:1.此表由指导教师填写,经系、教研室审批,指导教师、学生签字后生效;2.此表1式3份,学生、指导教师、教研室各1份。
指导教师(签字):学生(签字):课程设计(论文)评阅表学生姓名学号系信息工程系专业班级信息一班题目名称小学数学程序设计课程名称C语言程序课程设计二、指导教师评定注:1、本表是学生课程设计(论文)成绩评定的依据,装订在设计说明书(或论文)的“任务书”页后面;2、表中的“评分项目”及“权重”根据各系的考核细则和评分标准确定。
目录1 前言 (1)2 需求分析 (1)2.1要求 (1)2.2任务 (1)2.3运行环境 (1)2.4开发工具 (1)3 概要设计与详细设计 (2)3.1系统流程图 (2)4 编码与实现 (6)4.1分析 (6)4.2具体代码实现 (8)5 课程设计总结 (15)参考文献 (16)致谢 (16)1 前言编写一个小学数学测试软件,可选择题型(+,—,*),可选择答题个数,并判断对错,错误,给出正确答案。
2 需求分析(1)用C语言实现程序设计;(2)利用结构体进行相关信息处理;(3)画出查询模块的流程图;(4)系统的各个功能模块要求用函数的形式实现;(5)界面友好(良好的人机互交),程序要有注释2.2任务(1)可选择题型(+,—,*);(2)可选择每次答题的个数;(3)随机生成两个数进行运算;(4)每次在输入答案后判断对错,若答案错误,应该给出正确答案;(5)最后给出做对题目的总个数;(6)编写代码;(7)程序分析与调试。
2.3运行环境(1)WINDOWS2000/XP系统(2)TurboC2.0编译环境2.4开发工具C语言3 概要设计与详细设计3.1系统流程图4 编码与实现4.1分析在程序开头部分定义四个无参函数,用来进行函数调用。
C语言课程设计小学生四则运算
#include"stdio.h"#include"stdlib.h"void main(){int a,b,c,d,e,f,g,t;printf("****************************欢迎使用!************************\n");printf("\n");printf("1.加法运算\n");printf("2.减法运算\n");printf("3.乘法运算\n");printf("4.除法运算\n");printf("*****************************请选择运算类型:");scanf("%d",&a);while(a<1||a>4){printf("输入错误,请重新输入");scanf("%d",&a);}if(a==1){printf("5,一位数加一位数\n");printf("6,一位数加两位数\n");printf("7,两位数加两位数\n");printf("*********************************请输入题型:");scanf("%d",&a);while(a<5||a>7){printf("输入错误,请重新输入");scanf("%d",&a);}if(a==5){loop:b=rand()%10;c=rand()%10;d=b+c;printf("%d+%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);while(e!=d){printf("回答错误,请重做");printf("%d+%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);}printf("回答正确!是否做下一题?\n");printf("输入0表示是,输入1表示否\n");scanf("%d",&f);if(f==0)goto loop;if(f==1)printf("欢迎再次使用!");}if(a==6){loo: b=rand()%10;c=rand()%100;if (c<10) c=c+10;d=b+c;printf("%d+%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);while(e!=d){printf("回答错误,请重做");printf("%d+%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);}printf("回答正确!是否做下一题?\n");printf("输入0表示是,输入1表示否\n");scanf("%d",&f);if(f==0)goto loo;if(f==1)printf("欢迎再次使用!");}if(a==7){loog:b=rand()%100;c=rand()%100;if(c<10) c=c+10;if(b<10) b=b+10;d=b+c;printf("%d+%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);while(e!=d){printf("回答错误,请重做");printf("%d+%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);}printf("回答正确!是否做下一题?\n");printf("输入0表示是,输入1表示否\n");scanf("%d",&f);if(f==0)goto loog;if(f==1)printf("欢迎再次使用!");}}if(a==2){printf("5,一位数减一位数\n");printf("6,两位数减一位数\n");printf("7,两位数减两位数\n");printf("请输入题型:");scanf("%d",&a);while(a<5||a>7){printf("输入错误,请重新输入");scanf("%d",&a);}if(a==5){car: b=rand()%10;c=rand()%10;d=b-c;printf("%d-%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);while(e!=d){printf("回答错误,请重做");printf("%d-%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);}printf("回答正确!是否做下一题?\n");printf("输入0表示是,输入1表示否\n");scanf("%d",&f);if(f==0)goto car;if(f==1)printf("欢迎再次使用!");}if(a==6){truck:b=rand()%100;if(b<10) b=b+10;c=rand()%10;d=b-c;printf("%d-%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);while(e!=d){printf("回答错误,请重做");printf("%d-%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);}printf("回答正确!是否做下一题?\n");printf("输入0表示是,输入1表示否\n");scanf("%d",&f);if(f==0)goto truck;if(f==1)printf("欢迎再次使用!");}if(a==7){boat:b=rand()%100;if(b<10) b=b+10;c=rand()%100;if(c<10) c=c+10;d=b-c;printf("%d-%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);while(e!=d){printf("回答错误,请重做");printf("%d-%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);}printf("回答正确!是否做下一题?\n");printf("输入0表示是,输入1表示否\n");scanf("%d",&f);if(f==0)goto boat;if(f==1)printf("欢迎再次使用!");}}if(a==3){printf("5,一位数乘一位数\n");printf("6,一位数乘两位数\n");printf("7,两位数乘两位数\n");printf("请输入题型:");scanf("%d",&a);while(a<5||a>7){printf("输入错误,请重新输入");scanf("%d",&a);}if(a==5){life:b=rand()%10;c=rand()%10;d=b*c;printf("%d*%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);while(e!=d){printf("回答错误,请重做");printf("%d*%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);}printf("回答正确!是否做下一题?\n");printf("输入0表示是,输入1表示否\n");scanf("%d",&f);if(f==0)goto life;if(f==1)printf("欢迎再次使用!");}if(a==6){shame:b=rand()%100;if(b<10) b=b+10;c=rand()%10;d=b*c;printf("%d*%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);while(e!=d){printf("回答错误,请重做");printf("%d*%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);}printf("回答正确!是否做下一题?\n");printf("输入0表示是,输入1表示否\n");scanf("%d",&f);if(f==0)goto shame;if(f==1)printf("欢迎再次使用!");}if(a==7){yeah:b=rand()%100;c=rand()%100;if(b<10) b=b+10;if(c<10) c=c+10;d=b*c;printf("%d*%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);while(e!=d){printf("回答错误,请重做");printf("%d*%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);}printf("回答正确!是否做下一题?\n");printf("输入0表示是,输入1表示否\n");scanf("%d",&f);if(f==0)goto yeah;if(f==1)printf("欢迎再次使用!");}}if(a==4){printf("5,一位数除一位数\n");printf("6,两位数除一位数\n");printf("7,两位数除两位数\n");printf("请输入题型:");scanf("%d",&a);while(a<5||a>7){printf("输入错误,请重新输入");scanf("%d",&a);}if(a==5){hit: b=rand()%10;c=rand()%10;{if (b>c){g=b%c;if (g!=0){b=b-g;d=b/c;printf("%d/%d=?\n",b,c);}else d=b/c;printf("%d/%d=?\n",b,c);}if (c>b){g=c%b;if (g!=0){c=c-g;t=c;c=b;b=t;d=b/c;printf("%d/%d=?\n",b,c);}elset=c;c=b;b=t;d=b/c;printf("%d/%d=?\n",b,c);}printf("请输入答案:");scanf("%d",&e);}while(e!=d){printf("回答错误,请重做");printf("%d/%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);}printf("回答正确!是否做下一题?\n");printf("输入0表示是,输入1表示否\n");scanf("%d",&f);if(f==0)goto hit;if(f==1)printf("欢迎再次使用!");}if(a==6){haha:b=rand()%100;c=rand()%10;if(b<10)b=b+10;g=b%c;if (g!=0)b=b-g;d=b/c;printf("%d/%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);while(e!=d){printf("回答错误,请重做");printf("%d/%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);}printf("回答正确!是否做下一题?\n");printf("输入0表示是,输入1表示否\n");scanf("%d",&f);if(f==0)goto haha;if(f==1)printf("欢迎再次使用!");}if(a==7){over:b=rand()%100;c=rand()%100;if(b<10) b=b+10;if(c<10) c=c+10;if (b>c){g=b%c;if (g!=0){b=b-g;d=b/c;printf("%d/%d=?\n",b,c);}else{d=b/c;printf("%d/%d=?\n",b,c);}}if (c>b){g=c%b;if (g!=0){c=c-g;t=c;c=b;b=t;d=b/c;printf("%d/%d=?\n",b,c);}else{t=c;c=b;b=t;d=b/c;printf("%d/%d=?\n",b,c);}}scanf("%d",&e);while(e!=d){printf("回答错误,请重做");printf("%d/%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);}printf("回答正确!是否做下一题?\n");printf("输入0表示是,输入1表示否\n");scanf("%d",&f);if(f==0)goto over;if(f==1)printf("欢迎再次使用!");}}}。
C 语言的课程设计算数运算测试
目录一、课程设计的目的与要求 (2)1.1课程设计目的: (2)1.2课程设计要求: (2)二、题目说明 (4)2.1程序开发背景 (4)2.2开发工具介绍 (4)三、总体设计 (5)3.1系统流程图 (5)3.2 软件流程图 (7)四、详细说明 (9)4.1 产生100以内的随机整数 (9)4.2随机选择计算法则 (9)4.3随机出题并打出题目 (10)4.3判断答题者是否做对题目若错误给出正确答案 (12)4.4判断答对的题数给出分数 (12)4.5打印出答题者所做的题目 (14)五、遇到的问题与解决方案 (15)六、课程设计总结 (16)七、参考文献 (17)附录(源程序代码): (18)一、课程设计的目的与要求1.1课程设计目的:1.为培养学生严谨的工作态度,锻炼学生编写文档的能力。
进一步掌握和利用C语言进行程设计的能力;进一步理解和运用结构化程设计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长程序的基本方法;学会利用流程图或N-S图表示算法;掌握书写程设计开发文档的能力(书写课程设计报告);2、熟练掌握C语言课程中所学的理论知识;C语言是在国内外广泛使用的一种计算机语言。
它既有高级语言的特点,又具有汇编语言的特点。
它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。
因此,它的应用范围广泛。
学习使用C语言程序的目的是掌握程序设计的思路,学会用计算机语言编写程序正确处理算法和语法的关系算法是程序的核心、是灵魂,语法是外壳、是工具。
通过课程设计,我们要熟练的掌握C语言的算法、语言、函数的调用、循环的使用、数组的运用等。
3、通过综合C语言的基本知识来解决实际问题;C语言中与许多的东西,像:数据类型、运算符、表达式、程序设计结构、数组与函数调用。
其中C语言最难和最经典的地方就是循环,(while和for的嵌套)运用WHILE,FOR,SWITCH和if 的循环嵌套,我们可以实现现实中课程信息管理、图书信息管理、学生信息管理、商品信息管理等。
小学数学测试系统C课程设计报告材料及源程序代码
课程设计报告课程名称 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、系统使用说明:执行一个具体的功能之后,程序将重新显示功能菜单。
系统的功能并不限于上述,可以对其进行扩充完善,如题目的自动生成,可以只是简单的加减乘除运算,也可以生成复杂的四则混合运算。
C语言程序设计-小学算术运算测试
河南理工大学计算机科学与技术学院课程设计报告200 8 — 200 9 学年第一学期课程名称:C语言程序设计设计题目:小学算术运算测试(math.c) 学生姓名:刘高君学号:310709020117专业班级:通信工程07-1班指导教师:刘洁2008 年09 月05 日目录1 设计任务书 (3)1.1题目与要求 (3)1.2本系统涉及的知识点 (3)2 功能设计 (3)2.1算法设计 (3)2.2部分模块流程图 (3)3 程序代码设计 (4)3.1输入模块 (4)3.2输出模块 (4)4 C程序设计总结 (5)4.1程序调试情况 (5)4.2程序调好后的试验结果 (5)4.3本人在程序设计中的感想 (5)5致谢 (5)6参考文献 (6)7附录 (6)1设计任务书1.1题目与要求本人计划与张二威合作编写一个小学算术运算测试系统,主要用来测试小学生对十以内得加减乘除法运算的掌握程度。
具体要求如下:(1)制作一个可供小学数学运算程序,能完成10以内得加减乘除法,能根据输入题数出题,有人性化的汉语提示。
(2)判断做的题是否正确。
(3)计算成绩,给出所有做过题目的正确答案。
根据分工,本人的主要工作是具体的编译程序并调试,整理出文档资料。
1.2本系统涉及的知识点结构、数组、函数、循环。
2功能设计2.1算法设计本系统需要实现的功能要求:利用rand()和switch(algtype)产生随机计算式,进而实现测试功能。
2,根据上述模块图编写相应代码(1)利用for语句,rand()语句和switch()语句产生随机计算式。
(2)通过printf函数提示输入数字,然后通过scanf函数输入数字。
(3)通过if-else语句判断刚才的是否正确,若正确直接进入下一道;若不正确,给出正确答案并进入下一道。
(4)用if,while语句提示用户是否进入下一轮。
(5)Getchar()和while,return语句进行循环,键入“y”,进入下一轮,“n”直接退出。
C语言课程设计-小学生数学测试
C语言课程设计报告《c语言课程设计报告》学院:物理与电子信息学院年级专业:09级电子信息工程2班学号:姓名:安徽师范大学物理与电子信息学院College of Physics and Electronic Information, Anhui Normal University同组人员:指导老师:完成日期:2010年6月21日目录一、所选课题二、设计要求三、程序具体分工四、课题分析与设计五、程序介绍六、源程序代码七、程序调试八、流程图九、实验总结2C语言课程设计报告安徽师范大学物理与电子信息学院College of Physics and Electronic Information, Anhui Normal University 3十、参考文献一、所选课题小学生数学测试二、设计要求1、可选择题型(加,减,乘,除);2、两个数随机产生,若选择加减运算,则产生两位数,且被减数大于减数,若选择乘法运算,则产生一位数,若选择除法运算则被除数能被整除,且除数不能为零。
3、每次在输入答案后应判断对错,并给出是否继续测试的提示,若答案错误,应给出正确答案;4、最后给出评分。
三、程序具体分工乘除部分由我完成,界面和加减测试部分由徐磊完成。
四、课题分析与设计本程序是非数值计算型算法设计,我们设计出了小学生数学测试软件的基本功能,并设计了简单的界面。
本程序主要考察针对小学生该怎样设计程序:例如小学生只进行两位数之间的加减法,只进行一位数与两位数之间的乘法,除法只能是整除等。
课题要求我们设计个可以进行加、减、乘法的程序,但我们设计的这个小学生数学测试软件也不仅实现了加、减、乘法的测试,还实现了除法的测试。
五、程序介绍程序应包括<stdio.h>和<stdlib.h>两个头文件,其中存放库函数,而产生随机数的函数则存放在头文件中。
另外程序有五个函数,分别为void menu(); /*主菜单函数*/ void add() ;/*加法函数*/ void sub();/*减法函数*/ void mul();/*乘法函数*/ void div1();/*除法函数*/,还有产生随机数函数在程序中直接调用。
c++课程设计题目:小学生测验
《C++语言程序课程设计》班级:11电信1班姓名:谢远忠学号:110703***指导老师:胡珏第一类题目应用类:题目2:小学生测验面向小学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(不及格!重测!)”。
I.设计思路:由系统函数产生两个随机数a、b并计算两数之和为t ,显示两个随机数a、b的加减法运算,学生通过键盘输入答案num与t进行匹配,第1次匹配正确给10分;第2次匹配正确给7分;第3次匹配正确给5分,每道题至多3次输入机会,3次机会用尽后仍未匹配成功由系统输出正确答案t ,累计得分score并进入下一道题。
以此类推,直至10道题答完止输出总得分score,判断等级SMART、GOOD、OK、PASS还是TRY AGAIN。
II.流程图:III.C++(含class类,面向对象)程序代码:#include<iostream.h>#include<time.h>#include<stdlib.h> //标准库头文件class Display_biaoti //Display_biaoti[标题]类,标题显示{public:Display_biaoti(){cout<<"===============欢迎使用小学生整数50以内加减法测验评测系统==============="<<endl<<endl;cout<<"*************************************************************************"<<endl;cout<<"* ********************************************************************* *"<<endl;cout<<"* * 共10道题,每道题3次作答机会 * *"<<endl;cout<<"* *第1次作答正确——10分;第2次作答正确——7分;第3次作答正确——5分;* *"<<endl;cout<<"* * 三次作答不正确——此题得分:0分,进入下一题 * *"<<endl;cout<<"* ********************************************************************* *"<<endl;cout<<"*************************************************************************"<<endl<<endl;}~Display_biaoti(){}};/******************************************************************************************/class Suijishu //Suijishu[随机数]类,产生两个运算数{public:int a,b,n,t;Suijishu(){a=rand()%50; //rand()是一个随机函数,a=rand()%50是在0-50内取随机值赋给ab=rand()%50; //b=rand()%50是在0-50内取随机值赋给bn=rand()%6; //n的范围大些出现加法和减法的概率就越接近(加法:减法=5:5),故n取6 if((n==0||n==1||n==2)&&(a+b)>50) //如果产生随机数a、b之和大于50时{if(a>25&&b>25) //a、b同时大于25时{ a=a-25;b=b-25;} //a、b同时减小25if(a>25) //仅是a大于25时a=a-25; //a减小25if(b>25) //仅是b大于25时b=b-25;} //b减小25}~Suijishu(){}};/*******************************************************************************************/class Display_timu:public Suijishu //Display_timu[题目]类,对单一道题目显示给学生{public:int i,t;Display_timu(){}void xianshi(){switch(n){case 0: //n为0、1、2时进行加法运算case 1:case 2:cout<<"##########"<<i<<"题##########"<<endl;cout<<a<<"+"<<b<<"=";t=a+b; i++;break;case 3: //n为3、4、5时进行减法运算case 4:case 5:cout<<"##########第"<<i<<"题##########"<<endl;if(a>b){cout<<a<<"-"<<b<<"="; t=a-b; i++;}else {cout<<b<<"-"<<a<<"="; t=b-a; i++;}//使用if...else...语句,以防出现负数break;}}~Display_timu(){}};/********************************************************************************/class Ceshi:public Display_timu{public:int num,cnt,score; //测试者输入答案次数cntCeshi(){cnt=1;score=0;}int xunhuan(){do{cin>>num; //测试者输入答案numif (num==t) //答案正确时{cout<<"正确!o(≧v≦)o~~好棒~"<<endl;}else{if (cnt<3) //答案输入少于3次cout<<"答案不正确?在试试吧!"<<endl;cout<<"你还有"<<3-cnt<<"次答题机会"<<endl;++cnt;}}while(cnt<=3&&num!=t); //答案输入少于3次且输入答案不正确时继续输入(3次答题机会)if (num!=t) //3次为输入正确答案,由系统给出正确答案cout<<"答案不正确!正确答案是:"<<t<<endl;switch (cnt) //累计答题得分情况{case 1:score+=10;break; //第1次答对得10分case 2:score+=7;break; //第2次答对得7分case 3:score+=5;break; //第3次答对得5分}return score;}~Ceshi(){}};/********************************************************************************/class Display_zongping:public Ceshi //Display_zongping[总评]类,对答完10道题给出总评{public:int score;Display_zongping(){}void pandduan(){if (score>90) //如果总分大于90{cout<<"优秀!"<<endl; //输出优秀!}else if (score>80) //如果总分大于80{cout<<"良好!"<<endl; //输出良好!}else if (score>70) //如果总分大于70{cout<<"中等!"<<endl; //输出中等!}else if (score>=60) //如果总分大于60{cout<<"及格!"<<endl; //输出及格!}else cout<<"不及格!重测!"<<endl; //低于60分时,输出不及格!重测!cout<<"\n";}~Display_zongping(){}};/********************************************************************************/void main(){int all_score=0;Display_biaoti aa; //定义Display_biaoti[标题]类对象aa,标题显示srand(time(NULL)); //srand函数是以现在系统时间作为时间种子产生随机数int j; //定义整形j计数10道题for(j=1;j<11;j++){Suijishu bb; //定义随机数Suijishu类对象bbDisplay_timu cc; //定义Display_timu类对象cccc.i=j;cc.xianshi(); //调用对象cc的方法xianshi()Ceshi dd; // 定义Ceshi类对象dddd.t=cc.t; //对象cc的数据t赋值给对象dd的数据tall_score+=dd.xunhuan(); //调用对象dd的方法xunhuan()cout<<"-------------------------当前分数为"<<all_score<<endl; //输出当前的得分}Display_zongping ee; //定义Display_zongping类对象eeee.score=all_score;cout<<"最后得分为"<<ee.score<<" ";ee.pandduan(); //调用对象ee的方法pandduan()}IV.运行结果:①(良好!)②(优秀!)③(不及格!重测!)④(及格!)⑤(中等!)IV.C++(不含class类)程序代码:#include<iostream.h>#include<time.h>#include<stdlib.h> //标准库头文件void main(){int t, num, a,n, i, b; //定义变量t(系统正确答案),num(测试者输入答案),a(参与运算的数), //n(决定加法还是减法运算),i(题号),b(参与运算的另一个数) int score=0; //定义变量score存放得分cout<<"==============欢迎使用小学生整数50以内加减法测验评测系统=============="<<endl;srand(time(NULL)); //srand函数是以现在系统时间作为时间种子产生随机数for(i=1;i<=10;i++){loop: a=rand()%50; //rand()是一个随机函数,a=rand()%50是在0-50内取随机值赋给a b=rand()%50; //b=rand()%50是在0-50内取随机值赋给bn=rand()%6; //n的范围大些出现加法和减法的概率就越接近(加法:减法=5:5),故n取6 if((n==0||n==1||n==2)&&(a+b)>50) //如果产生随机数a、b之和大于50时{if(a>25&&b>25) //a、b同时大于25时{ a=a-25;b=b-25;} //a、b同时减小25if(a>25) //仅是a大于25时a=a-25; //a减小25if(b>25) //仅是b大于25时b=b-25;} //b减小25switch(n){case 0: //n为0、1、2时进行加法运算case 1:case 2:cout<<"*********第"<<i<<"题*********"<<endl;cout<<a<<"+"<<b<<"=";t=a+b;break;case 3: //n为3、4、5时进行减法运算case 4:case 5:cout<<"*********第"<<i<<"题*********"<<endl;if(a>b){cout<<a<<"-"<<b<<"="; t=a-b;}else {cout<<b<<"-"<<a<<"="; t=b-a;}//使用if...else...语句,以防结果出现负数break;goto loop;}int cnt=1; //测试者输入答案次数cntdo{cin>>num; //测试者输入答案num if (num==t) //答案正确时{cout<<"正确!o(≧v≦)o~~好棒~"<<endl;}else{if (cnt<3) //答案输入少于3次cout<<"答案不正确?在试试吧!"<<endl;cout<<"你还有"<<3-cnt<<"次答题机会"<<endl;++cnt;}}while(cnt<=3&&num!=t); //答案输入少于3次且输入答案不正确时继续输入(3次答题机会)if (num!=t) //3次为输入正确答案,由系统给出正确答案cout<<"答案不正确!正确答案是:"<<t<<endl;switch (cnt) //累计答题得分情况{case 1:score+=10;break; //第1次答对得10分case 2:score+=7;break; //第2次答对得7分case 3:score+=5;break; //第3次答对得5分}cout<<"-------------------------当前分数为"<<score<<endl; //输出当前的得分}cout<<"最后得分为"<<score<<" ";if (score>90) //如果总分大于90{cout<<"SMART!"<<endl; //输出SMART!}else if (score>80) //如果总分大于80{cout<<"GOOD!"<<endl; //输出GOOD!}else if (score>70) //如果总分大于70{cout<<"OK!"<<endl; //输出OK!}else if (score>=60) //如果总分大于60{cout<<"PASS!"<<endl; //输出PASS!}else cout<<"TRY AGAIN!"<<endl; //低于60分时,输出TRY AGAIN!cout<<"\n";}VI.运行结果:①(SMART!)②(GOOD!)③(OK!)④(PASS!)⑤(TRY AGAIN!)。
小学c语言试卷
小学c语言试卷一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义一个函数?A. intB. voidC. returnD. function2. 在C语言中,哪个运算符用于取模?A. %B. /C. *D. -3. 下列哪个选项是C语言的合法变量名?A. 2variableB. variable-nameC. variable_nameD. variable$name4. 在C语言中,若要打印输出一个整数,应使用哪个函数?A. printfB. scanfC. coutD. input5. 以下哪个选项是C语言的控制语句?A. ifB. forC. whileD. All of the above6. 在C语言中,哪个关键字用于定义一个数组?A. arrayB. listC. vectorD. None of the above7. 以下哪个选项是C语言的逻辑运算符?A. &&B. ||C. !D. All of the above8. C语言中,哪个关键字用于定义一个结构体?A. structB. classC. unionD. enum9. 在C语言中,哪个函数用于计算两个数的最大值?A. maxB. minC. absD. None of the above10. 下列哪个选项是C语言的输入输出库?A. <iostream>B. <cstdio>C. <iostream.h>D. <cstdio.h>二、填空题(每题2分,共20分)11. 在C语言中,定义一个整型变量的关键字是_______。
12. 一个C语言程序的执行从主函数_______开始。
13. 在C语言中,使用_______函数可以读取用户输入的整数值。
14. 要实现条件控制,可以使用_______语句。
15. 在C语言中,数组的元素默认从下标_______开始。
C语言课程设计举例--小学生算术自测
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++语言程序课程设计》班级:11电信1班姓名:谢远忠学号:110703***指导老师:胡珏第一类题目应用类:题目2:小学生测验面向小学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(不及格!重测!)”。
I.设计思路:由系统函数产生两个随机数a、b并计算两数之和为t ,显示两个随机数a、b的加减法运算,学生通过键盘输入答案num与t进行匹配,第1次匹配正确给10分;第2次匹配正确给7分;第3次匹配正确给5分,每道题至多3次输入机会,3次机会用尽后仍未匹配成功由系统输出正确答案t ,累计得分score并进入下一道题。
以此类推,直至10道题答完止输出总得分score,判断等级SMART、GOOD、OK、PASS还是TRY AGAIN。
II.流程图:III.C++(含class类,面向对象)程序代码:#include<iostream.h>#include<time.h>#include<stdlib.h> //标准库头文件class Display_biaoti //Display_biaoti[标题]类,标题显示{public:Display_biaoti(){cout<<"===============欢迎使用小学生整数50以内加减法测验评测系统==============="<<endl<<endl;cout<<"*************************************************************************"<<endl;cout<<"* ********************************************************************* *"<<endl;cout<<"* * 共10道题,每道题3次作答机会* *"<<endl;cout<<"* *第1次作答正确——10分;第2次作答正确——7分;第3次作答正确——5分;* *"<<endl;cout<<"* * 三次作答不正确——此题得分:0分,进入下一题* *"<<endl;cout<<"* ********************************************************************* *"<<endl;cout<<"*************************************************************************"<<endl<<endl;}~Display_biaoti(){}};/******************************************************************************************/class Suijishu //Suijishu[随机数]类,产生两个运算数{public:int a,b,n,t;Suijishu(){a=rand()%50; //rand()是一个随机函数,a=rand()%50是在0-50内取随机值赋给ab=rand()%50; //b=rand()%50是在0-50内取随机值赋给bn=rand()%6; //n的范围大些出现加法和减法的概率就越接近(加法:减法=5:5),故n取6if((n==0||n==1||n==2)&&(a+b)>50) //如果产生随机数a、b之和大于50时{if(a>25&&b>25) //a、b同时大于25时{ a=a-25;b=b-25;} //a、b同时减小25if(a>25) //仅是a大于25时a=a-25; //a减小25if(b>25) //仅是b大于25时b=b-25;} //b减小25}~Suijishu(){}};/*******************************************************************************************/class Display_timu:public Suijishu //Display_timu[题目]类,对单一道题目显示给学生{public:int i,t;Display_timu(){}void xianshi(){switch(n){case 0: //n为0、1、2时进行加法运算case 1:case 2:cout<<"##########"<<i<<"题##########"<<endl;cout<<a<<"+"<<b<<"=";t=a+b; i++;break;case 3: //n为3、4、5时进行减法运算case 4:case 5:cout<<"##########第"<<i<<"题##########"<<endl;if(a>b){cout<<a<<"-"<<b<<"="; t=a-b; i++;}else {cout<<b<<"-"<<a<<"="; t=b-a; i++;}//使用if...else...语句,以防出现负数break;}}~Display_timu(){}};/********************************************************************************/class Ceshi:public Display_timu{public:int num,cnt,score; //测试者输入答案次数cntCeshi(){cnt=1;score=0;}int xunhuan(){do{cin>>num; //测试者输入答案numif (num==t) //答案正确时{cout<<"正确!o(≧v≦)o~~好棒~"<<endl;}else{if (cnt<3) //答案输入少于3次cout<<"答案不正确?在试试吧!"<<endl;cout<<"你还有"<<3-cnt<<"次答题机会"<<endl;++cnt;}}while(cnt<=3&&num!=t); //答案输入少于3次且输入答案不正确时继续输入(3次答题机会)if (num!=t) //3次为输入正确答案,由系统给出正确答案cout<<"答案不正确!正确答案是:"<<t<<endl;switch (cnt) //累计答题得分情况{case 1:score+=10;break; //第1次答对得10分case 2:score+=7;break; //第2次答对得7分case 3:score+=5;break; //第3次答对得5分}return score;}~Ceshi(){}};/********************************************************************************/class Display_zongping:public Ceshi //Display_zongping[总评]类,对答完10道题给出总评{public:int score;Display_zongping(){}void pandduan(){if (score>90) //如果总分大于90{cout<<"优秀!"<<endl; //输出优秀!}else if (score>80) //如果总分大于80{cout<<"良好!"<<endl; //输出良好!}else if (score>70) //如果总分大于70{cout<<"中等!"<<endl; //输出中等!}else if (score>=60) //如果总分大于60{cout<<"及格!"<<endl; //输出及格!}else cout<<"不及格!重测!"<<endl; //低于60分时,输出不及格!重测!cout<<"\n";}~Display_zongping(){}};/********************************************************************************/void main(){int all_score=0;Display_biaoti aa; //定义Display_biaoti[标题]类对象aa,标题显示srand(time(NULL)); //srand函数是以现在系统时间作为时间种子产生随机数int j; //定义整形j计数10道题for(j=1;j<11;j++){Suijishu bb; //定义随机数Suijishu类对象bbDisplay_timu cc; //定义Display_timu类对象cccc.i=j;cc.xianshi(); //调用对象cc的方法xianshi()Ceshi dd; // 定义Ceshi类对象dddd.t=cc.t; //对象cc的数据t赋值给对象dd的数据tall_score+=dd.xunhuan(); //调用对象dd的方法xunhuan()cout<<"-------------------------当前分数为"<<all_score<<endl; //输出当前的得分}Display_zongping ee; //定义Display_zongping类对象eeee.score=all_score;cout<<"最后得分为"<<ee.score<<" ";ee.pandduan(); //调用对象ee的方法pandduan()}IV.运行结果:①(良好!)②(优秀!)③(不及格!重测!)④(及格!)⑤(中等!)IV.C++(不含class类)程序代码:#include<iostream.h>#include<time.h>#include<stdlib.h> //标准库头文件void main(){int t, num, a,n, i, b; //定义变量t(系统正确答案),num(测试者输入答案),a(参与运算的数),//n(决定加法还是减法运算),i(题号),b(参与运算的另一个数)int score=0; //定义变量score存放得分cout<<"==============欢迎使用小学生整数50以内加减法测验评测系统=============="<<endl;srand(time(NULL)); //srand函数是以现在系统时间作为时间种子产生随机数for(i=1;i<=10;i++){loop: a=rand()%50; //rand()是一个随机函数,a=rand()%50是在0-50内取随机值赋给a b=rand()%50; //b=rand()%50是在0-50内取随机值赋给bn=rand()%6; //n的范围大些出现加法和减法的概率就越接近(加法:减法=5:5),故n取6if((n==0||n==1||n==2)&&(a+b)>50) //如果产生随机数a、b之和大于50时{if(a>25&&b>25) //a、b同时大于25时{ a=a-25;b=b-25;} //a、b同时减小25if(a>25) //仅是a大于25时a=a-25; //a减小25if(b>25) //仅是b大于25时b=b-25;} //b减小25switch(n){case 0: //n为0、1、2时进行加法运算case 1:case 2:cout<<"*********第"<<i<<"题*********"<<endl;cout<<a<<"+"<<b<<"=";t=a+b;break;case 3: //n为3、4、5时进行减法运算case 4:case 5:cout<<"*********第"<<i<<"题*********"<<endl;if(a>b){cout<<a<<"-"<<b<<"="; t=a-b;}else {cout<<b<<"-"<<a<<"="; t=b-a;}//使用if...else...语句,以防结果出现负数break;goto loop;}int cnt=1; //测试者输入答案次数cntdo{cin>>num; //测试者输入答案numif (num==t) //答案正确时{cout<<"正确!o(≧v≦)o~~好棒~"<<endl;}else{if (cnt<3) //答案输入少于3次cout<<"答案不正确?在试试吧!"<<endl;cout<<"你还有"<<3-cnt<<"次答题机会"<<endl;++cnt;}}while(cnt<=3&&num!=t); //答案输入少于3次且输入答案不正确时继续输入(3次答题机会)if (num!=t) //3次为输入正确答案,由系统给出正确答案cout<<"答案不正确!正确答案是:"<<t<<endl;switch (cnt) //累计答题得分情况{case 1:score+=10;break; //第1次答对得10分case 2:score+=7;break; //第2次答对得7分case 3:score+=5;break; //第3次答对得5分}cout<<"-------------------------当前分数为"<<score<<endl; //输出当前的得分}cout<<"最后得分为"<<score<<" ";if (score>90) //如果总分大于90{cout<<"SMART!"<<endl; //输出SMART!}else if (score>80) //如果总分大于80{cout<<"GOOD!"<<endl; //输出GOOD!}else if (score>70) //如果总分大于70{cout<<"OK!"<<endl; //输出OK!}else if (score>=60) //如果总分大于60{cout<<"PASS!"<<endl; //输出PASS!}else cout<<"TRY AGAIN!"<<endl; //低于60分时,输出TRY AGAIN!cout<<"\n";}VI.运行结果:①(SMART!)②(GOOD!)③(OK!)④(PASS!)⑤(TRY AGAIN!)。
2016小学生c编程试题及答案
2016小学生c编程试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个选项是正确的数据类型?A. intB. floatC. doubleD. 所有选项答案:D2. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. !D. 所有选项答案:D3. 以下哪个关键字用于定义一个函数?A. intB. voidC. returnD. 所有选项答案:B4. 在C语言中,以下哪个选项是用来声明一个整型变量的?A. intB. floatC. doubleD. char答案:A5. 在C语言中,以下哪个选项是用来进行字符串比较的函数?A. strcat()B. strcmp()C. strcpy()D. strlen()答案:B6. 在C语言中,以下哪个选项是正确的注释方式?A. //B. /* ... */C. /* ... */D. 所有选项答案:D7. 以下哪个选项是C语言中的循环结构?A. forB. whileC. do-whileD. 所有选项答案:D8. 在C语言中,以下哪个选项是用来定义一个数组的?A. int array[10];B. float array[10];C. char array[10];D. 所有选项答案:D9. 在C语言中,以下哪个选项是用来进行文件操作的函数?A. fopen()B. fclose()C. fprintf()D. 所有选项答案:D10. 在C语言中,以下哪个选项是用来进行条件判断的语句?A. ifB. elseC. switchD. 所有选项答案:D二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型变量的正确方式是使用关键字________。
答案:int2. C语言中,用于定义一个函数的关键字是________。
答案:void3. 在C语言中,用于声明一个字符数组的语法是________。
答案:char array[]4. C语言中,用于进行字符串连接的函数是________。
通过C语言编写小学生数学测试软件C语言课程设计
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语言课设题目
基础题目:
1. 计算两个整数的和、差、积和商。
2. 判断一个数是奇数还是偶数。
3. 打印九九乘法表。
4. 编写一个简单的计算器程序,支持基本的加减乘除运算。
5. 实现一个简单的猜数字游戏。
6. 将一个字符串反转。
7. 编写一个程序,找出数组中的最大值和最小值。
8. 实现一个简单的冒泡排序算法。
中级题目:
9. 编写一个简单的文件读写程序,将数据写入文件并从文件中读取。
10. 实现一个简单的链表,并进行基本的插入、删除和遍历操作。
11. 设计一个学生信息管理系统,可以添加、删除、修改和查找学生信息。
12. 编写一个简单的命令行文件管理器,实现基本的文件操作(复制、移动、删除等)。
13. 使用结构体和指针实现一个简单的图书管理系统。
14. 实现一个简单的计算器,支持括号和基本的数学函数。
15. 编写一个简单的多线程程序,实现并发执行。
高级题目:
16. 使用Socket 编写一个简单的客户端-服务器通信程序。
17. 实现一个简单的操作系统进程调度模拟器。
18. 设计一个简单的编译器,将自定义的简单语言编译成汇编代码。
19. 使用OpenGL 编写一个简单的图形界面程序。
20. 实现一个简单的数据库管理系统,支持基本的增删改查操作。
21. 编写一个简单的Web 服务器,能够处理HTTP 请求。
22. 设计一个简单的人工智能算法,如搜索算法或神经网络。
(完整版)C++小学生四则运算测验(附代码和程序结果)
a=rand()%100; //rand()是一个随机函数,i=rand()%100是在0-100内取随机值赋给m
loop: b=rand()%100; //j=rand()%100是在0-100内取随机值赋给j
n=rand()%4;
switch(n)
{
case 0:cout<<"*********第"<<i<<"题*********"<<endl;cout<<a<<"+"<<b<<"="; t=a+b; break;
}
cout<<"最后得分为"<<score<<" ";
if (score>90) //如果总分大于90
{
cout<<"SMART!"<<endl;
}
else if (score>80) //如果总分大于80
{
cout<<"GOOD!"<<endl;
}
else if (score>70) //如果总分大于70
1.程序功能介绍
电脑随机出10道加减乘除的题(允许随机给出的数在100以内),每题总分10分,程序结束时显示学生得分及学生的等级。并且每道题学生有三次机会输入答案,当学生一次就答对是直接进入下一道题,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案最后,程序的最后给出学生的分数及其答案。
case 1:cout<<"*********第"<<i<<"题*********"<<endl;cout<<a<<"-"<<b<<"="; t=a-b; break;
c++课程设计:小学生测验
C++程序设计题目:小学生测验小学生测验面向小学1-2年级学生,随机选择两个整数和加减法形成算是要求学生解答。
功能要求:(1)、电脑随机出五道题,每题20分,程序结束时显示学生得分;(2)、确保算式没有超出1-2年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出0~50的范围,负数更是不允许的;(3)、每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;(4)、对于每道题,学生第一次输入正确答案得20分,第二次输入正确答案得15分,第三次输入正确答案得3分,否则不得分;(5)、总成绩90分以上显示“A",80-90显示”B",70-80显示“C”,60-70显示“D",60一下”E"。
(6)、每小题结束后进行清屏,改变显示界面背景色和字体色。
//Test.h文件#ifndef _H_TEST#define _H_TEST#include<time.h>#include<iostream>using namespace std;class CTest{public:CTest();void CreateTest(); ///< 创建一个题目void DisplayTest(); ///< 显示题目int GetCount(); ///< 查看是第几次答题void DisplayScore();int IsOK(int _answer);private:int m_answer; ///< 答案int m_elem1;int m_elem2;int m_k;int m_count; ///< 答题次数int m_score; ///< 分数};#endif//Test.cpp文件#include"test.h"CTest::CTest(){m_answer =0;m_elem1 = 0;m_elem2 = 0;m_k = 0;m_count = 0;m_score = 0;}void CTest::CreateTest() ///< 创建一个题目{m_count = 0;srand((unsigned)time(NULL));m_k = rand() % 2;if(m_k == 0){m_elem1 = rand() % 50;m_elem2 = rand() % 50;m_answer = m_elem1 - m_elem2;while(m_answer < 0){m_elem1 = rand() % 50;m_elem2 = rand() % 50;m_answer = m_elem1 - m_elem2;}}else if(m_k = 1){m_elem1 = rand() % 50;m_elem2 = rand() % 50;m_answer = m_elem1 + m_elem2;while(m_answer > 50){m_elem1 = rand() % 50;m_elem2 = rand() % 50;m_answer = m_elem1 + m_elem2;}}}void CTest::DisplayTest() ///< 显示题目{if(m_k == 0){cout<<"题目:"<<m_elem1<<'-'<<m_elem2<<'='<<endl;}else if(m_k == 1){cout<<"题目:"<<m_elem1<<'+'<<m_elem2<<'='<<endl;}}int CTest::IsOK(int _answer){m_count++;if(_answer == m_answer){switch(m_count){case 1:m_score += 10;break;case 2:m_score += 7;break;case 3:m_score += 5;break;default:break;}return 1;}else{if(m_count == 3){cout<<"正确答案是:"<< m_answer <<endl;return 0;}else{cout<<"错误,再试一次哦"<<endl;return 2;}}}int CTest::GetCount() ///< 查看是第几次答题{return m_count;}void CTest::DisplayScore(){if(m_score >= 90){cout<<"分数:"<<m_score<<" SMART!"<<endl;}else if((m_score < 90) && (m_score >= 80)){cout<<"分数:"<<m_score<<" GOOD!"<<endl;}else if((m_score < 80) && (m_score >= 70)){cout<<"分数:"<<m_score<<" OK!"<<endl;}else if((m_score < 70) && (m_score >= 60)){cout<<"分数:"<<m_score<<" pass!"<<endl;}else if((m_score < 60)){cout<<"分数:"<<m_score<<" TRY AGAIN!"<<endl;}}//main.cpp文件#include"test.h"int main(int argc, char* argv[]){int answer;int r = 0;int count = 0;int k;CTest* CT = new CTest();CT->CreateTest();count++;while(count < 11){ cout<<"第"<<count<<"题";CT->DisplayTest();cin>>answer;r = CT->IsOK(answer);if((r==1)||(r==0)){CT->CreateTest();count++;}}CT->DisplayScore();cin >>k;return 0;}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言课程设计小学生数学测试
1
2020年4月19日
《c语言课程设计报告》学院:物理与电子信息学院
年级专业: 09级电子信息工程2班学号:
姓名:
同组人员:
指导老师:
完成日期: 6月21日
目录
一、所选课题
二、设计要求
三、程序具体分工
四、课题分析与设计
五、程序介绍
六、源程序代码
七、程序调试
八、流程图
九、实验总结
十、参考文献
一、所选课题
小学生数学测试
二、设计要求
1、可选择题型(加,减,乘,除);
2、两个数随机产生,若选择加减运算,则产生两位数,且
被减数大于减数,若选择乘法运算,则产生一位数,若
选择除法运算则被除数能被整除,且除数不能为零。
3
2020年4月19日
3、每次在输入答案后应判断对错,并给出是否继续测试的
提示,若答案错误,应给出正确答案;
4、最后给出评分。
三、程序具体分工
乘除部分由我完成,界面和加减测试部分由徐磊完成。
四、课题分析与设计
本程序是非数值计算型算法设计,我们设计出了小学生数学测试软件的基本功能,并设计了简单的界面。
本程序主要考察针对小学生该怎样设计程序:例如小学生只进行两位数之间的加减法,只进行一位数与两位数之间的乘法,除法只能是整除等。
课题要求我们设计个能够进行加、减、乘法的程序,但我们设计的这个小学生数学测试软件也不但实现了加、减、乘法的测试,还实现了除法的测试。
五、程序介绍
程序应包括<stdio.h>和<stdlib.h>两个头文件,其中存放库函数,而产生随机数的函数则存放在头文件中。
另外程序有五个函数,分别为void menu(); /*主菜单函数*/ void add() ;/*加法函数*/ void sub();/*减法函数*/ void mul();/*乘法函数*/ void div1();/*除法函数*/,还有产生随机数函数在程序中直接调用。
然后根据要求编写程序,乘法、除法的要求和做题后的判断、提示等。
六、源程序代码
#include<stdio.h>
4
2020年4月19日
#include<stdlib.h>
void menu();
void add();
void sub();
void mul();
void div1();
void main()
{
int a;
while(1)
{
menu();
printf("Please choose the option:");
scanf("%d",&a);
switch(a)
{
case 1:
add();
break;
case 2:
5
2020年4月19日。