C语言程序设计课程设计--编写函数,求取两个整数m,n的最大公约数和最小公倍数

上传人:ji****72 文档编号:28660526 上传时间:2018-01-19 格式:DOC 页数:17 大小:379.50KB
返回 下载 相关 举报
C语言程序设计课程设计--编写函数,求取两个整数m,n的最大公约数和最小公倍数_第1页
第1页 / 共17页
C语言程序设计课程设计--编写函数,求取两个整数m,n的最大公约数和最小公倍数_第2页
第2页 / 共17页
C语言程序设计课程设计--编写函数,求取两个整数m,n的最大公约数和最小公倍数_第3页
第3页 / 共17页
C语言程序设计课程设计--编写函数,求取两个整数m,n的最大公约数和最小公倍数_第4页
第4页 / 共17页
C语言程序设计课程设计--编写函数,求取两个整数m,n的最大公约数和最小公倍数_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《C语言程序设计课程设计--编写函数,求取两个整数m,n的最大公约数和最小公倍数》由会员分享,可在线阅读,更多相关《C语言程序设计课程设计--编写函数,求取两个整数m,n的最大公约数和最小公倍数(17页珍藏版)》请在金锄头文库上搜索。

1、C 语言程序设计课程设计专 业: 电气工程及其自动化 班 级: 电气 1203 姓 名: 熊董 学 号: 201209837 指导教师: 王思华 兰州交通大学自动化与电气工程学院2013 年 07 月 20 日评语:考勤(10) 纪律(10) 过程(40) 设计报告(30) 答辩(10) 总成绩(100)C 语言程序设计课程设计11、基础题1.1 题目编写函数,求取两个整数m,n的最大公约数和最小公倍数。1.2 题目分析求两个整数的最大公约数和最小公倍数可以用辗转相除法,用两个函数max和min分别求出最大公约数和最小公倍数。在主函数中输入两个整数m和n,并传递给函数max,求出最大公约数返回

2、主函数并赋给整型变量h,然后h和两个整数m ,n一起作为实参传递给函数min,从而求出最小公倍数,返回主函数赋给l。输出最大公约数和最小公倍数。主函数:N-S图如图一输入两个整数m和n调用max函数求出最大公约数h调用min函数求出最小公倍数l输出两个整数的最大公约数和最小公倍数图一主函数max函数:N-S图 如图二 min函数:N-S图如图三输入m和nYnmNt=m;m=n;n=t当(r=m%n)!=0m=n,n=r向主函数返回n的值图二max函数 图三min函数1.3 源程序#includeint main() int max(int,int);int min(int,int,int);i

3、nt m,n,h,l;输入m,n和h向主函数返回m*n/h的值C 语言程序设计课程设计2scanf(%d,%d,h=max(m,n);printf(最大公约数是%dn,h); l=min(m,n,h);printf(最小公倍数是%dn,l);return 0;int max(int m,int n) int t,r;if(nm);t=m;m=n;n=t;while(r=m%n)!=0)m=n;n=r;return(n);int min(int m,int n,int h) return(m*n/h);1.4 程序运行结果如图四:图四基础题运行截图C 语言程序设计课程设计32、改错题2.1 题目

4、#include #include void fun(int a, b) int t;t = b; b = a ; a = t;main( ) int a, b;clrscr( );printf(Enter a,b :); scanf(%d%d, fun(printf(a=%d b=%dn, a, b);2.2 题目分析该源程序的目的是交换两个数的值,有主函数可以看出该函数是应用指针交换两个数的值。所以调用函数中的a,b都要改成*a,*b, void fun(int a, b)改成void fun(int *a,int *b)。clrscr( )只能在Turbo-C中可用所以改用system(

5、cls)。viod fun函数:N-S图如图五 main函数:N-S图如图六图五 viod fun 函数图六 main 函数输入*a,*b t=*b;*b=*a;*a=t清屏输入a,b将a,b赋值到&a,&b中。调用viod fun函数交换两个数的值输出a,b的值C 语言程序设计课程设计42.3 正确的源程序#include #include void fun(int *a, int *b) int t; t= *b; *b = *a ; *a = t; main( ) int a, b; system(cls); printf(Enter a,b :); scanf(%d%d, fun( p

6、rintf(a=%d b=%dn, a, b); 2.4 程序运行结果如图七:图七改错题运行结果截图C 语言程序设计课程设计53、综合题3.1 题目设计课题四:猜数字游戏一、问题描述:该游戏可以由程序随机产生或由用户输入四个0到9之间的数字,且不重复。玩游戏者通过游戏提示输入八次来匹配上面所输入的数字。A表示位置正确且数字正确,B表示数字正确而位置不正确。二、功能要求:1. 本游戏显示这样的菜单:(1) 随机产生数据(2) 用户输入数据(3) 退出游戏2. 游戏成功与否都能返回主菜单三、算法提示:1. 数据结构:数组2. 用简单的程序设计方法四、测试数据:测试数据: 3792第一次输入: 12

7、340A2B第二次输入: 56780A1B第三次输入: 08670A1B第四次输入: 97861A1B第五次输入: 17942A0B第六次输入: 27932A2B第七次输入: 3792C 语言程序设计课程设计64A0B游戏成功!五、其它:对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其它功能,如:破记录功能,若你所匹配的次数小于纪录保持者,则为破纪录。3.2 题目分析本题要求做一个猜字游戏,其功能包括菜单、用户模式测试、随机产生数据进行游戏。所以可以得知该游戏包括主函数、随机数产生函数、输入数字函数、游戏函数、测试数据输入函数。首先通过主函数输出菜单并选择所要进行的模式,如果选择随机

8、产生数据则调用随机数产生函数产生随机数,然后将产生的数据代入游戏函数进行游戏,游戏函数中进行游戏输入数据时调用输入数字函数输入数据;如果选择用户输入数据则调用测试数据输入函数输入数据,之后将输入的数据代入游戏函数中进行游戏,游戏函数中进行游戏输入数据时调用输入数字函数输入数据。(1)系统的总体框图如图八开始功能菜单显示随机产生数据 用户输入数据退出c_rand() c_printf()exit(1)图八系统的总体框图C 语言程序设计课程设计7(2)函数间的调用关系如图九主函数main随机模式c_rand()游戏函数 c_game()输入数据函数c_input(char *str)用户模式c_p

9、rintf()输入数据函数c_input()图九函数间的调用关系C 语言程序设计课程设计83.3 流程图输入数字函数:如图十i=0for i 0 to 9 stri=getch()putchar(stri)i+putchar(n)for i 0 to 3Ystri9N无效输入,重新输入for j 0 to iYstri=strjN无效输入,重新输入j+i+图十输入数字函数C 语言程序设计课程设计9游戏函数:如图十一out5for ci 0 to 7printf(第%d次输入,ci+1)c_input(in)for i 0 to 3Y ini=tempiNfor j 0 to 3ini=temp

10、jY Nout2+out0+j+输出字符串outstrcmp(out,”4ABb”)Y N游戏成功,按任意键返回主菜单getch()out0=0out2=0游戏失败,按任意键返回主菜单getch()图十一游戏函数C 语言程序设计课程设计10随机数产生函数:如图十二图十二随机数产生函数用户输入模式函数:如图十三图十三用户输入模式函数主函数:如图十四图十四主函数定义字符数组data=”0123456789”定义字符数组 temp4清屏输出“*随机模式 *”for( i=0;i#include #include #include #include void c_input(char *str)int

11、 i,j;input:for(i=0;i9)printf(无效输入,请重新输入:);goto input;for(j=0;ji;j+)if(stri=strj)printf(无效输入,请重新输入:);goto input;void c_game(const char *temp)int i,j,ci;char in4;char out5=0A0B;for(ci=0;ci8;ci+)C 语言程序设计课程设计12printf(第 %d 次输入:,ci+1);c_input(in);for(i=0;i4;i+)if(ini=tempi)out0+;elsefor(j=0;j4;j+)if(ini=t

12、empj)out2+;printf(%sn,out);if(strcmp(out,4A0B)=0)printf(游戏成功,按下任意键返回主菜单。);getch();return;out0=0;out2=0;printf(游戏失败,按下任意键返回主菜单。);getch();void c_rand()int i,j;char data=0123456789;char temp4;system(cls);printf(*随机模式*nn);for(i=0;i4;i+)j=rand()%(10-i);C 语言程序设计课程设计13tempi=dataj;dataj=data10-i-1;c_game(te

13、mp);void c_printf()char temp4;system(cls);printf(*用户输入模式*nn);printf(请输入测试数据:);c_input(temp);system(cls);printf(*用户输入模式*nn);c_game(temp);void main()srand(time(NULL);while(1)system(cls);printf(1) 随机产生数据n);printf(2) 用户输入数据n);printf(3) 退出游戏n);printf(choice : );switch(getch()case 1:c_rand();break;case 2:

14、c_printf();break;case 3:exit(1); C 语言程序设计课程设计143.5 程序运行结果主菜单:如图十五图十五主菜单截图用户测试模式:如图十六图十六用户测试模式运行结果截图C 语言程序设计课程设计15随机模式:如图十七图十七随机模式运行结果截图当输入的四个数字中有重复数字时:如图十八图十八当输入的四个数字中有重复数字时结果截图当选择退出后:如图十九图十九当选择退出后结果截图C 语言程序设计课程设计16总结课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今

15、计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。回顾起此次课程设计,至今我仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整一个星期的日子里,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,这毕竟独立做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号