计算机软件课程设计.docx
计算机软件课程设计 计算机软件课程设计课程设计 目的要求 在教师指导下,学生根据选定的课题,综合运用所学程序设计的知识,完成问题分析、模块设计、代码编写、程序调试和运行等训练任务。 通过课程设计,初步锻炼运用所学基础知识解决实际问题的能力,掌握软件开发的基本过程和基本方法以及良好的编程风格,培养在软件开发中相互合作的团队意识。 设计报告 (1)课题及其要求 题目10:小学生数学测试软件 1)可选择题型(,×); 2)两个数随机产生,若选择加减运算,则产生两位数,且被减数大于减数,若选择 乘法运算,则产生一位数; 3)每次在输入答案后应判断对错,若答案错误,应给出正确答案; 4)最后给出评分。 (2)系统设计与分析 初步判断,该系统应由三个部分组成:一是随机数的产生(包括两位数和三位数);二是算式的表达与判断;三是分数的统计及结果的输出。随机数可用rand函数的求余来生成;由于需要面对三种运算,故可以采用switch.case.语句进行运算符号的判断;初步拟定为10题,每题10分,满分100分,用for循环来重复运算过程。 (3)功能模块图 随机数产生模块 运算法则数据输入模块 判断运算法则模块 题目显示模块 答案数据输入模块 答案正确性判断模块 计分模块 分数输出模块 (4)程序流程图 I+ 回答正确 给出正确答案 提示正确答案f+ J=1; i-) /* pa=&ai; pb=&arand()%i+1;*/ swap(&ai, &arand()%i+1); /*加一是从一到i的随机,就不会包含0*/ /*不用再定义指针,这样结论是一样的*/ printf("n") ; for(i=1; i<=64; i+) printf("%4d",ai ); getch(); /*wintc的输出*/ 2) #include #include #include int main(void) int a100=0; int i,m; for(i=1; i<=99; +i) printf("%4d",ai ); srand( (unsigned)time( NULL ) ); for(i=1; i<=99; i+) while(am=rand()%100+1); am = i; for(i=1; i<=99; +i) printf("%4d",ai ); getch(); (2)编程测试 1)程序 include #include #include int a2; void randomize (int t) int i; srand(unsigned)time(NULL); switch (t) case 0: for (i=0;i<2;i+) ai=rand()%100; break; case 1: for (i=0;i<2;i+) ai=(rand()%100+10)/10; break; int main () int i,p,grade=0; int x1,x2,s; for (i=0;i<10;i+) printf ("输入1来选择加法题,输入2来选择减法题,输入3来选择乘法题:n"); scanf ("%d",&p); switch (p) case 1: randomize (0); x1=a0; x2=a1; printf ("n%d %d = ",x1,x2); scanf ("%d",&s); if (x1+x2=s) printf ("Yesn"); grade+=10; else printf ("Non"); break; case 2: randomize (0); x1=a0; x2=a1; if (x1<x2) s=x1; x1=x2; x2=s; printf ("n%d %d = ",x1,x2); scanf ("%d",&s); if (x1-x2=s) printf ("Yesn"); grade+=10; else printf ("Non"); break; case 3: randomize (1); x1=a0; x2=a1; printf ("n%d × %d = ",x1,x2); scanf ("%d",&s); if (x1*x2=s) printf ("Yesn"); grade+=10; else printf ("Non"); break; printf ("最终的成绩为(满分100分):%d 分。",grade); scanf ("%d",&i); return 0; 2)程序调试 一、测试数据 输入数据题目输入答案对错/总分 1 105666 正确 2 482028 正确 3 5×525 正确 1 341236 错误 2 341024 正确 3 7×331 错误 1 284577 错误 2 872364 正确 3 7×963 正确 1 131528 正确 总分N/A N/A 70分 1)程序运行 2)加法 3)减法 4乘法