C语言课程设计小学生心算CAI系统报告书1111

时间:2024.4.20

C语言课程设计小学生心算CAI系统报告书1111

应用技术学院

C语言课程设计小学生心算CAI系统报告书1111

课 程 设 计 报

课程名称 课题名称 小学生心算CAI系统

专 业 班 级学 号 姓 名 吴树良 指导教师

20xx年 1 月 10 日

湖南工程学院

课 程 设 计 任 务 书

课程名称

课 题 小学生心算CAI系统

专业班级 学生姓名 学 号 200913170136 指导老师 王 颖

审 批

任务书下达日期 2011 年 1 月 10 日

任务完成日期 2011 年 1 月 10 日

一、设计内容与设计要求

1.设计内容:设计课题六:小学生心算CAI系统

一、问题描述:

本系统可以用来进行单独的的加、减、乘、除心算练习,也可综合心算的速度与正确率进行测试。当用户在进行简单的四则运算时运算速度和正确率都较高时,可以进入四则混合运算,借此来进一步提高自己的心算能力。

二、功能描述:

1、用户可以通过两种方法来选择功能,既可以按相应的数字键进入相应的心算练习,也可以按光标键来选择功能项。

2、计算机自动出题,用户进入每项练习时,屏幕上会显示用户所做的相应的题数,如果不想继续可以随时退出。

3、设计的系统完全适合用户,比如除法时考虑到小学生的水平问题,只允许出现整除情况。

4、用户输入的答案不对时,提示错误,用户输入的结果如果连续两次不对,计算机会自动给出正确答案,供用户参考。

5、界面设计友好。

三、算法提示:

1、用简单的程序设计方法

2、一定的窗口设计技巧

3、简单的数据类型

四、测试数据:

计算机随机产生

见附录

2.设计要求:

掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经验。

1. 设计正确,方案合理。

2. 界面友好,使用方便。

3. 程序精炼,结构清晰。

4. 设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序

框图。

5. 上机演示。

6. 按学号顺序选课题号,并在规定的时间内独自完成相关课题的C源程序编写、

调整和运行。源程序及编译生成各文件均保存在软盘中;

7. 按本任务书的要求,按附录的要求编写《课程设计报告》(Word文档格式)。

并用A4的复印纸打印并装订;

8. 在20xx年1月10日之前,请各班学习委员收齐课程设计报告和源程序软盘

交王颖老师 ,联系电话:130xxxxxxxx。

二、进度安排

第一周 星期四: 课题讲解,查阅资料

第二周 星期一: 总体设计,详细设计

星期二: 编程,上机调试、修改程序

星期三:上机调试、完善程序

星期四:上机调试、完善程序

星期五: 答辩

星期六-星期天:撰写课程设计报告

星期六~星期天 写课程设计报告

附:

课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。 正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。

正文的内容:一、1、设计目的 2、总体设计(程序设计组成框图、流程图)3、详细设计(模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等)4、调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施5、源程序清单和执行结果:清单中应有足够的注释

正文总字数要求在5000字以上(不含程序原代码)。

4

目 录

1、 设计目的 ............................................ 1

2、 总体设计 ............................................ 1

3、 详细设计 ............................................ 2

1、主要函数 ............................................ 2

2、函数的主要关系........................................... 2

4、 调试与测试 ......................................... 4

附:源程序清单

一、设计目的:

全面熟悉,掌握C语言基本知识,C语言中的顺序,分支,循环三种结构及数组,函数C语言基本图形编程等方法,把编程和实际结合起来,增强对不同的问题的运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后在专业课程中应用计算机系统解决计算,分析,实验和设计等学习环节打下较扎实的基础. 通过本课程设计,培养上机动手能力,巩固《C语言程序设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手能力。

C语言课程设计小学生心算CAI系统报告书1111

1

三、 详细设计:

1、主要函数

(1)、主控模块main.c

void DoCommand() //根据输入命令进行相应的处理

void Calculate() //执行计算功能

void ReSet() //重设系统环境

(2)、程序界面模块 IntFace.c

void InitiInterface(); //界面初始化

void GoToCmdxy(); //将光标定位到命令选项提示之后

void GoToPrompt(); //将光标定位到命令选项提示行首

void ShowMainPrompt(); //显示命令选项提示

void ClearScreen(); //以清除整个屏幕,并设置为黑底白字模式 void ClearPromptLine(); //清除提示行的显示

void ClearWorkSpace(); //清除工作区的显示

void InputNumberBox(int OneOrTwo);//指定两个输入数的输入窗口,如果超过这个范围文字将自动流动

void ResultBox(); //指定计算结果的显示窗口,如果超过这个范围文字将自动流动

(3)、长整型数输入输出模块 见二小节2分节

(4)、长整型数四则运算处理模块 见二小节2分节

(5)、长整型数存储模块—双向循环链表模块 见二小节1分节

2、函数的主要关系

C语言课程设计小学生心算CAI系统报告书1111

C语言课程设计小学生心算CAI系统报告书1111

2

四、 调试过程: 1、调试分析效果图

C语言课程设计小学生心算CAI系统报告书1111

①主菜单

C语言课程设计小学生心算CAI系统报告书1111

②加法运算

③第二关

3

④第三关

C语言课程设计小学生心算CAI系统报告书1111

⑤退出系统

C语言课程设计小学生心算CAI系统报告书1111

C语言课程设计小学生心算CAI系统报告书1111

4

2、设计总结

经过一周的课程设计,我学到了很多东西:

①巩固和加深了对数据结构的理解,提高综合运用本课程所学知识的能力。

②培养了我选用参考书,查阅手册及文献资料的能力。培养独立思考,深入研究,分析问题、解决问题的能力。

③过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。 ④够按要求编写课程设计报告书,能正确阐述设计和实验结果,正确绘制系统和程序框图。

⑤通过课程设计,培养了我严肃认真的工作作风,逐步建立正确的生产观念、经济观念和全局观念。

课程设计是把我们所学的理论知识进行系统的总结并应用于实践的良好机会,有利于加强我们用知识理论来分析实际问题的能力,进而加强了我们对知识认识的实践度,巩固了我们的理论知识,深化了对知识的认识,并为走向社会打下一个良好的基础。

在这次课程设计中我遇到许多问题和麻烦,得到了老师的帮助和指导,才能够使得这次课程设计顺利的进行下去,另外,在程序调试过程中,也得到很多同学的帮助,给我及时指出错误,提出许多宝贵意见。在此对老师和同学们表示感谢!

参考资料:

[1] Brian W.Kernighan, Dennis M.Ritchie,C程序设计语言[M],北京:机械工业出版社,1998.10: 39-48

[2] Perter Van Der LinDen,C专家编程[M],北京:人民邮电出版社,1995.4: 41-44

[3] Guy L. Steele,C语言参考手册(第五版)[M],北京:人民邮电出版社,2000,5:78-90

5

[4]David Hanson,C语言接口与实现:创建可重用软件的技术[M],武汉机械工业出版

社,2001,8:87-89

[5]Brian W. Kernighan, Dennis M. Ritchie,C程序设计语言[M],

北京清华大学出版社,1997,4:128-134

[6]Brian W. Kernighan, Rob Pike,程序设计实践[M],武汉:机械工业出版社,2000,9:149-153

[7]Herbert Schildt,C语言大全[M],长沙:电子工业出版社,2001,3:163-169

附:源程序清单

#include<stdio.h>

#include<stdlib.h>

#include<time.h>

void menu()

{

printf("*******************************************************************

*************");

printf("^_^_^_^_^_^_^_^_^_^_^_^小朋友,欢迎你们来学习小学算术

_^_^_^_^_^_^_^_^_^_^_^_^_^_");

printf(" ");

printf(" 1.加法 ");

printf(" 2.减法 ");

printf(" 3.乘法 ");

printf(" 4.除法 6

");

printf(" 0.退出 ");

printf(" ");

printf(" 快选择你要学习的内容吧! ");

printf(" ");

printf("^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^

_^_^_^_^_^_^_");

printf("*******************************************************************

*************");

}

void plus1()

{

int count=0,m,n,s,total,k;

printf("欢迎进入第一关!\n");

printf("请设定题目数量:");

scanf("%d",&k);

while(count<k){

printf("%d",m=rand()%10);

printf("+");

printf("%d",n=rand()%10);

printf("=");

total=m+n;

loopa:scanf("%d",&s);

if(s==total)

{printf("恭喜你,答对了!\n");count++;}

else

7

{printf("回答错误,请重新回答!\n");goto loopa;} printf("恭喜你通过了第一关!\n");

}

}

void plus2()

{

int count=0,m,n,s,total,k;

printf("欢迎进入第二关!\n");

printf("请设定题目数量:");

scanf("%d",&k);

while(count<k){

do{

m=rand()%10;

n=rand()%100;

}while(n<10);

printf("%d",m);

printf("+");

printf("%d",n);

printf("=");

total=m+n;

loopa:scanf("%d",&s);

if(s==total)

{printf("恭喜你,答对了!\n");count++;} else

{printf("回答错误,请重新回答!\n");goto loopa;} printf("恭喜你通过了第二关!\n");

}

}

void plus3()

{

int count=0,m,n,s,total,k;

printf("欢迎进入第三关!\n");

8

printf("请设定题目数量:");

scanf("%d",&k);

while(count<k){

do{

m=rand()%100;

n=rand()%100;

}while(m<10&&n<10);

printf("%d",m);

printf("+");

printf("%d",n);

printf("=");

total=m+n;

loopa:scanf("%d",&s);

if(s==total)

{printf("恭喜你,答对了!\n");count++;} else

{printf("回答错误,请重新回答!\n");goto loopa;} printf("恭喜你通过了第三关!\n");

}

}

void sub1()

{

int count=0,m,n,s,total,k;

printf("欢迎进入第一关!\n");

printf("请设定题目数量:");

scanf("%d",&k);

while(count<k){

do{

m=rand()%10;

n=rand()%10;

}while(m<=n);

printf("%d",m);

9

printf("-");

printf("%d",n);

printf("=");

total=m-n;

loopa:scanf("%d",&s);

if(s==total)

{printf("恭喜你,答对了!\n");count++;} else

{printf("回答错误,请重新回答!\n");goto loopa;} printf("恭喜你通过了第一关!\n");

}

}

void sub2()

{

int count=0,m,n,s,total,k;

printf("欢迎进入第二关!\n");

printf("请设定题目数量:");

scanf("%d",&k);

while(count<k){

do{

m=rand()%100;

n=rand()%10;

}while(m<10);

printf("%d",m);

printf("-");

printf("%d",n);

printf("=");

total=m-n;

loopa:scanf("%d",&s);

if(s==total)

{printf("恭喜你,答对了!\n");count++;} else

10

{printf("回答错误,请重新回答!\n");goto loopa;} printf("恭喜你通过了第二关!\n");

}

}

void sub3()

{

int count=0,m,n,s,total,k;

printf("欢迎进入第三关!\n");

printf("请设定题目数量:");

scanf("%d",&k);

while(count<k){

do{

m=rand()%100;

n=rand()%100;

}while(m<=n||m<10||n<10);

printf("%d",m);

printf("-");

printf("%d",n);

printf("=");

total=m-n;

loopa:scanf("%d",&s);

if(s==total)

{printf("恭喜你,答对了!\n");count++;} else

{printf("回答错误,请重新回答!\n");goto loopa;} printf("恭喜你通过了第三关!\n");

}

}

void plus()

{

int i;

plus1();

11

printf("是否继续挑战?Y(1)/N(0):"); scanf("%d",&i);

if(i==1)

plus2();

else

return;

i=NULL;

printf("是否继续挑战?Y(1)/N(0):"); scanf("%d",&i);

if(i==1)

plus3();

else

return;

}

void sub()

{

int i;

sub1();

printf("是否继续挑战?Y(1)/N(0):"); scanf("%d",&i);

if(i==1)

sub2();

else

return;

i=NULL;

printf("是否继续挑战?Y(1)/N(0):"); scanf("%d",&i);

if(i==1)

sub3();

else

return;

}

12

void mul1()

{

int count=0,m,n,s,total,k;

printf("欢迎进入第一关!\n");

printf("请设定题目数量:");

scanf("%d",&k);

while(count<k){

printf("%d",m=rand()%10);

printf("*");

printf("%d",n=rand()%10);

printf("=");

total=m*n;

loopa:scanf("%d",&s);

if(s==total)

{printf("恭喜你,答对了!\n");count++;} else

{printf("回答错误,请重新回答!\n");goto loopa;} printf("恭喜你通过了第一关!\n");

}

}

void mul2()

{

int count=0,m,n,s,total,k;

printf("欢迎进入第二关!\n");

printf("请设定题目数量:");

scanf("%d",&k);

while(count<k){

do{

m=rand()%100;

n=rand()%10;

}while(m<10);

printf("%d",m);

13

printf("*");

printf("%d",n);

printf("=");

total=m*n;

loopa:scanf("%d",&s);

if(s==total)

{printf("恭喜你,答对了!\n");count++;} else

{printf("回答错误,请重新回答!\n");goto loopa;} printf("恭喜你通过了第二关!\n");

}

}

void mul()

{

int i;

mul1();

printf("是否继续挑战?Y(1)/N(0):");

scanf("%d",&i);

if(i==1)

mul2();

}

void div1()

{

int count=0,m,n,s,total,k;

printf("欢迎进入第一关!\n");

printf("请设定题目数量:");

scanf("%d",&k);

while(count<k){

do{

m=rand()%10;

n=rand()%10;

}while(n==0||m%n!=0);

14

printf("%d",m);

printf("/");

printf("%d",n);

printf("=");

total=m/n;

loopa:scanf("%d",&s);

if(s==total)

{printf("恭喜你,答对了!\n");count++;} else

{printf("回答错误,请重新回答!\n");goto loopa;} printf("恭喜你通过了第一关!\n");

}

}

void div2()

{

int count=0,m,n,s,total,k;

printf("欢迎进入第二关!\n");

printf("请设定题目数量:");

scanf("%d",&k);

while(count<k){

do{

m=rand()%100;

n=rand()%10;

}while(n==0||m<10||m%n!=0);

printf("%d",m);

printf("/");

printf("%d",n);

printf("=");

total=m/n;

loopa:scanf("%d",&s);

if(s==total)

{printf("恭喜你,答对了!\n");count++;} 15

else

{printf("回答错误,请重新回答!\n");goto loopa;} printf("恭喜你通过了第二关!\n");

}

}

void div3()

{

int count=0,m,n,s,total,k;

printf("欢迎进入第三关!\n");

printf("请设定题目数量:");

scanf("%d",&k);

while(count<k){

do{

m=rand()%100;

n=rand()%100;

}while(n==0||m<10||n<10||m%n!=0);

printf("%d",m);

printf("/");

printf("%d",n);

printf("=");

total=m/n;

loopa:scanf("%d",&s);

if(s==total)

{printf("恭喜你,答对了!\n");count++;} else

{printf("回答错误,请重新回答!\n");goto loopa;} printf("恭喜你通过了第三关!\n");

}

}

void div()

{

int i;

16

div1();

printf("是否继续挑战?Y(1)/N(0):"); scanf("%d",&i);

if(i==1)

div2();

else

return;

i=NULL;

printf("是否继续挑战?Y(1)/N(0):"); scanf("%d",&i);

if(i==1)

div3();

else

return;

}

main()

{

void menu();

int k;

do{

menu();

printf("请选择:");

scanf("%d",&k);

switch(k)

{

case 1:plus();break;

case 2:sub();break;

case 3:mul();break;

case 4:div();break;

case 0:break;

}

printf("\n");

17

}while(k!=0); printf("\n"); return 0; }

18

更多相关推荐:
学生选课管理系统课程设计报告(更改)222

湖南农业大学研究生课程论文学院年级专业姓名学号课程论文题目课程名称评阅成绩评阅意见成绩评定教师签名日期年月日1目录一前言311开发背景312系统配置3二需求分析421系统总体功能分析422系统功能要求设计523...

C语言课程设计报告 学生选课系统加源代码

实践教学兰州理工大学计算机与通信学院20##年春季学期C程序设计课程设计题目:学生选课系统专业班级:通信工程1班姓名:学号:指导教师:成绩:摘要学生选课系统是一个教育单位不可缺少的重要系统组成部分,它对于学校的…

C++课程设计报告样例 学生选课系统设计报告

计算机与信息科学系学生选课系统设计报告班级专业题目指导教师学号姓名同组人C计科系08级2班计算机科学与技术学生选课系统无20xx年1月1日学生选课系统设计报告目录Contents引言3一设计目的3二总体设计4三...

C语言课程设计实践报告——《学生选课管理系统》[内附程序源代码]

C语言大型作业实践报告计算机1001制作者:20##年6月题目:选修课程管理系统要求:假定有N门选修课,每门课有课程编号、名称、课程性质、总学时、授课学时、实验或上机学时、学分、开课学期等信息。学生可按要求(如…

学生选课系统设计报告

学生选课管理系统设计报告班级计本1102学号323335组员张静静白雪杨月负责人白雪指导老师李微目录1引言错误未定义书签11设计目标错误未定义书签12采取的策略错误未定义书签13设计依据错误未定义书签14参考资...

学生选课信息系统数据库课程设计报告

Oracle数据库应用开发期末设计报告学号20xx051341姓名秦小梅班级中软lt3gt班学期第二学期成绩数据库原理与应用课程设计目录一系统概述2二需求说明21需求调研22系统功能的设计和划分33数据流图44...

学生选课系统概要设计报告

学生选课系统概要设计报告班级网络102班姓名张宇飞08103639王籽硕081036311引言11编写目的学生选课系统可对学生信息选修课程科目成绩进行各方面的管理为用户提供充足的信息和快捷的查询修改手段选课管理...

选课系统设计报告

学生选课系统报告书目录第一章摘要关键词2第二章课程设计任务内容与思路3第三章程序功能划分及流程图第四章程序运行结果第五章设计心得第六章小组分工第七章参考文献3591011第1页共1页学生选课系统报告书第一章摘要...

C语言程序设计报告—学生选修课程系统

C语言程序设计学校:学院:班级序号:学号:指导老师:C语言程序设计报告一、C语言课程设计的目的:高级语言课程设计是学习完《高级语言程序设计》课程后进行的一次全面的综合性上机实验。其目的在于为同学提供了一个既动手…

学生选课系统实验报告

武夷学院课程设计报告课程名称设计题目学生班级学生姓名指导教师完成日期C语言程序设计学生选课管理系统20xx级计算机科学与技术2班20xx19数学与计算机学院课程设计项目研究报告目录第1章项目简介0311项目名称...

学生学籍管理系统(数据结构课程设计报告)

数据结构课程设计专业班级姓名指导教师20xx年12月30日1课程设计的目的和意义一般来讲课程设计教学实验复杂一些深度更广并且更加接近实用目的是通过课程设计的综合训练培养学生实际分析问题编程和动手能力使学生对数据...

C语言程序设计报告—学生选修课程系统

C语言程序设计学校:中国地址大学学院:工程学院班级序号:学号:姓名:指导老师:C语言程序设计报告一、C语言课程设计的目的:高级语言课程设计是学习完《高级语言程序设计》课程后进行的一次全面的综合性上机实验。其目的…

学生选课系统课程设计报告(17篇)