1、武 汉 理 工 大 学 华 夏 学 院课 程 设 计 报 告 书课程名称: C 语言程序设计 题 目: 小学生算术四则运算测试系统 系 名: 信息工程系 专业班级: 计算机 1102 班 姓 名: 徐立 学 号: 10210410206 指导教师: 2011 年 6 月 24 日课程设计任务书学生姓名: 徐立 专业班级: 计算机 1102 指导教师: 工作单位: 信息工程系 设计题目:小学生算术四则运算测试系统初始条件:选择结构(if 语句) ,变量的定义,输入.输出函数,产生随机函数,goto 语句要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)主要任务:1.
2、为小学生出题(分别进行、*、等不同运算)2.学生做题后,进行评阅;3.学生每做一题后,评阅时给出“答题正确,很好”或“答题错误,重做”等字样;4.加、减、乘、除运算功能可以自由选择实现;5.运算数值可以控制在两位(或三位)数的四则运算范围内。设计报告撰写格式要求:论文需要有以下必须章节:第一章 需求分析(包含系统主要完成具体任务、系统模块设计)第二章 系统实现(包含开发环境、模块流程图)第三章 系统调试与测试 第四章 结束语(包含总结、心得)附录(源代码)标题编号要统一,例如:第三章编目为:3、3.1 、3.1.1 最多使用三级标题项目编号统一为先是 1 然后是 (1) 再其次是。章节一级标题
3、使用 2 号、黑体加粗、居中对齐,二级标题使用小 2,黑体,三级标题使用小 3,黑体,正文统一使用小 4,宋体。论文必须要有目录论文装订顺序:封面-任务书-正文-封底时间安排:6 月 20 日上午 布置题目、宣讲课程设计要求6 月 20 日下午 学生选题、查阅资料和参考资料6 月 21 日-6 月 23 日上午 完成课程设计6 月 23 日下午 验收学生程序6 月 24 日 验收学生报告指 导 教 师 签 字: 年 月 日系 主 任 签 字: 年 月 日目录1.需求分析 41.1 系统主要完成具体任务 .41.2 系统模块设计 .41.3 模块具体说明 .52.系统实现 52.1 开发环境 .
4、52.2 模块流程图 .53.系统调试与测试 63.1 启用界面 .63.2 加法界面 .73.3 减法界面 .73.4 乘法界面 .83.5 除法界面 .83.6 推出界面 .94.结束语 95.总结 .10附件:主要源程序代码 .101.需求分析1.1 系统主要完成具体任务编写小学算术运算测试系统,要求完成两位数的加,减,乘,除四则预算。能根据用户的输入来选择运算种类,用户输入答案后可以判断正误,做完一次测试后用户可以决定是否继续进行下一次测试。1.2 系统模块设计利用 if 语句完成所示的主菜单主程序模块(main()函数)选择运算种类模块判断运算结果模块继续运算模块 退出界面模块退出程
5、序模块1.3 模块具体说明主函数模块包括:输入函数(scanf() ) ,输出函数(printf() )变量定义模块包括:随机函数(rand()) ,调用(int() )函数运算种类模块包括:多分支 if 语句,关系表达式继续运算模块包括:goto 语句2.系统实现2.1 开发环境Win-TC,Windows-XP, PC 机2.2 模块流程图根据所给问题做出回答结果正确判断结果开始(选择运算种类)结果错误继续输入继续做题YYN退出程序3.系统调试与测试3.1 启用界面小学生四则运算系统调试时进入界面如下图(3-1) 。图 3-13.2 加法界面加法运算界面,包括错误结果处理和继续运算,如下图
6、(3-2) 。图(3-2)3.3 减法界面减法运算界面,包括错误结果处理和继续运算,如下图(3-3) 。图(3-3)3.4 乘法界面乘法运算界面,包括错误结果处理和继续运算,如下图(3-4) 。乘法运算数据是一位数与两位数相乘。图(3-4)3.5 除法界面除法运算界面,包括错误结果处理和继续运算,如下图(3-5) 。图(3-5)3.6 推出界面四则运算系统推出界面,包括错误选择处理方式和继续运算方式,如下图(3-6) 。图(3-6)4.结束语一周的课程设计终于结束啦。刚接触这个课程设计时,有些不知该怎样下手的感觉,因为感觉平时学的东西很少,很零散,不知该怎么整合到一起使用,所以不知该从哪下手。
7、由于本课题中的许多知识点都没有和很好的掌握,所以在写程序的时候难免出现许多错误,最后在同学的帮助下完成调试。在整整一个星期的日子里,我学到很多很多的东西,还有很多在书本上所没有学到过的知识。通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,比如说循环结构通过这次课程设计之后,不仅把以前所学过的知识熟悉了,也能更好的运用到实践中去。这不仅是程序设计,更是锻炼
8、我们处理问题的能力,同时也使我们了解到团队合作的可贵.总之,这次课程设计让我获益匪浅,让我对 C 语言的掌握和实践有了更深刻的理解。 5.总结通过编写程序,进一步加深、巩固所学专业课程(C 语言程序设计 )的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。不但熟悉了基本理论知识,还过编写该程序熟悉了选择,循环等结构。深入练习了函数的调用方法,和文件的读写方法,熟悉了结构体的使用,更加深化了面向过程语言思想,和一些基本算法。通过对程序的后期调试,熟悉了 c语言常见的错误,锻炼了思维的严密性,和完备性。更锻炼了我们的耐心与细心程度。附件:主要源程序代码#include #i
9、nclude #include int question_get();int type;void main( void )int answer,n;srand( (unsigned)time( NULL ) );loop: printf( “请选择要进行测试的题目种类:“ );printf( “n1.加法运算 n2.减法运算n3.乘法运算n4. 除法运算n5.退出运算n“ );printf(“ttt 请选择(1-5):“);scanf( “%d“, while( 1 ) int temp;int flag;answer = question_get();printf( “请回答:n“ );sc
10、anf( “%d“, while( temp!=answer )printf( “n 答案错误 ,重做n“ );scanf( “%d“, printf( “n 答案正确 ,很好n“ );printf( “继续请按 1,退出请按 0n“ );scanf( “%d“, while( flag!=0scanf( “%d“, if( flag=0 )break;goto loop;int question_get()int a,b,c;loop: if( type=1 )a=rand()%99;b=99-a;b=rand()%b;printf( “%d + %d = ?“, a, b );return
11、(a+b);else if( type=2 )b=rand()%99;c=99-b;c=rand()%c;printf( “%d - %d = ?“, b+c, b );return(c);else if( type=3 )a=rand()%10;b=50-a;b=rand()%b;printf( “%d * %d = ?“, a, b );return(a*b);else if( type=4 )b=rand()%50;c=100/b;while( 1 )c=rand()%c;if( c!=0 )break;printf( “%d / %d = ?“, b*c, b );return(c);
12、 else if( type=5 )printf(“ttt 退出系统n“); /* 结束程序*/system(“pause“); exit(0);else if( type=0|type5 )printf(“ttt 输入错误,请输入 1-5 内的数字n“);printf(“ttt 请选择(1-5):“);scanf( “%d“, goto loop;设计过程、答辩问题记载:问:你是如何实现主程序的循环?答:使用 if 语句,并在满足条件的情况下应用 goto 语句完成主函数的循环。问:你的运算定义在几位数内?如何实现?答:定义在 3 位数内。应用 rand()函数生成随机数,再应用“%”取余运算限定变量的取值范围。问:你的源代码中一共有几个模块?那几个?分别如何分工?答:一共两个大模块,主函数和运算函数模块,其中运算函数中包括加、减、乘、除四个运算模块。主函数可以在运行过程中无条件调用各个运算函数模块。指导教师评语:指 导 教 师 签 字: 年 月 日