欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    C语言程序课程设计.docx

    • 资源ID:12545432       资源大小:621.91KB        全文页数:51页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言程序课程设计.docx

    1、C语言程序课程设计 C语言程序课程设计信息安全1002 徐钊学号:3100604047指导老师:林庆时间:2011年7月1日C语言程序课程设计一 内容提要.4二 程序设计1. 进制转换1) 主要算法和思想52) 流程图53) 源代码64) 调试和运行情况72. 位数大小排序1) 主要算法和思想82) 流程图83) 源代码84) 调试和运行情况103. 平方回文数1) 主要算法和思想112) 流程图113) 源代码124) 调试和运行情况134. 马克思手稿中的数学题(穷举法)1) 主要算法和思想142) 源代码143) 流程图144) 调试和运行情况155. 小孩吃梨问题1) 主要算法和思想1

    2、62) 流程图163) 源代码164) 调试和运行情况176. 奇异的三位数1) 主要算法和思想182) 流程图183) 源代码184) 调试和运行情况197. 回文数的形成1) 主要算法和思想202) 流程图203) 源代码214) 调试和运行情况228. 人机猜数游戏11) 主要算法和思想232) 流程图233) 源代码.234) 调试和运行情况.259. 人机猜数游戏21) 主要算法和思想.262) 流程图.263) 源代码274) 调试和运行情况2710. 简单计算器1) 主要算法和思想282) 流程图283) 源代码284) 调试和运行情况2911. 学生成绩管理系统1) 主要算法和

    3、思想312) 框架图313) 源代码314) 调试和运行情况46三 课程设计体会.47四 参考文献.48一.内容提要 课程设计是培养学生综合运用所学知识 ,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握程序开发技术是十分重要的,而C语言又是最常见,功能最强大的一种高级语言,因此做好C语言课程设计是十分必要的。在运用穷举法、递归法等等方法以及结合简单算法的基础上,可以解决一些相对比较复杂的问题,进而可以进一步提升自我的编程能力。为此,在本次C

    4、语言课程设计过程中,解决了以下这些问题:(1)进制转换;(2)位数大小排序;(3)平方回文数;(4)马克思手稿中的数学题(5)小孩吃梨问题;(6)奇异的三位数;(7)回文数的形成;(8)人机猜数游戏1;(9)人机猜数游戏2;(10)简单计算器;(11)学生成绩管理系统。 而我觉得在这次课程设计中,应该培养一些编程的意识,比如:(1)利用C语言面向过程的编程思想来完成系统的设计;(2)突出C语言的函数特征,以多个函数实现每一个子功能;(3)画出功能模块图;(4)进行简单界面设计,能够实现友好的交互;(5)具有清晰的程序流程图和数据结构的详细定义;(6)熟练掌握C语言对文件的各种操作。二.程序设计

    5、1.进制转换 编子函数,实现将输入的一个无符号整数转换为二进制和八进制表示,分别 存入字符数组中并输出。注:计算机模拟人工是编程中常用的方法,这种方法要求编程者首先分析在人工方式下解决问题的过程,从中找出步骤和规律,然后编写程序,按照人工解决问题的步骤和规律进行操作。1) 主要算法和思想将无符号整数每一次对2或8求余后的结果分别存入数组,再倒序输出即可。2) 流程图 (子函数binary) (主函数) (子函数octal) 3) 源代码#include#define N 100main()int binary(char a,unsigned long u);int octal(char a,u

    6、nsigned long u);unsigned long u;int i;char *p;char aN;printf(请输入一个无符号整数:n);scanf(%u,&u);i=binary(a,u);p=&ai-1;printf(整数的二进制为:n);for(;p=a;p-)printf(%c,*p);printf(n);i=octal(a,u);p=&ai-1;printf(整数的八进制为:n);for(;p=a;p-)printf(%c,*p);printf(n);int binary(char a,unsigned long u)/*将无符号整数转化成二进制*/int i=0;whi

    7、le(u!=0)ai=u%2+0;i+;u/=2;return i;int octal(char a,unsigned long u)/*将无符号整数转化成八进制*/int i=0;while(u!=0)ai=u%8+0;i+;u/=8;return i;4) 调试和运行情况2.位数大小排序子函数功能说明:输入一个五位整数,对此整数中的五个数值进行从大到小的顺序排序,形成一个新的五位整数。同时需要编写主函数和其它相关子函数进行调试。1) 主要算法和思想将五位整数的每一位数字提取出来,放入数组进行比较,再形成新的五位整数。2) 流程图 (子函数f) (子函数f1)(主函数)3) 源代码#incl

    8、udemain()int f(int a,unsigned long g);int f1(int a);unsigned long g;int a5;int i,n=1;printf(请输入一个五位数:n);scanf(%u,&g);f(a,g);f1(a);g=0;for(i=0;i=4;i+)g+=ai*n;n*=10;printf(%dn,g);int f(int a,unsigned long g)/*取出五位整数的各位数字*/int i=0; while(g!=0)ai=g%10;i+;g/=10;int f1(int a)/*冒泡排序*/int i,j,t;for(i=0;i4;i

    9、+)for(j=0;jaj+1)t=aj;aj=aj+1;aj+1=t;4) 调试和运行情况3.平方回文数求所有不超过200的N值,N的平方是具有对称性质的回文数。回文数就是将一个数从左向右读是一样的,如满足题意要求的数有:N11,112121。1) 主要算法和思想将原来的数字与其反序的数字相比,如果相等,就是回文数。2) 流程图3) 源代码#includemain()int a,b,c,d,e;int n;long m;long l;printf(所有满足平方回文条件的数值N和平方值M:n);for(n=1;n10000)/*当M为五位数时*/l=e*10000+d*1000+c*100+b

    10、*10+a;else if(m1000)/*当M为四位数时*/l=e*1000+d*100+c*10+b;else if(m100)/*当M为三位数时*/l=e*100+d*10+c;else if(m10)/*当M为两位数时*/l=e*10+d;else/*当M为一位数时*/l=e;if(m=l) printf(%3d,%5ldn,n,m);4) 调试和运行情况4.马克思手稿中的数学题(穷举算法)马克思手稿中有一道趣味数学题:有30个人,其中有男人、女人和小孩,在一家饭馆吃饭共花了50先令:每个男人花3先令,每个女人花2先令,每个小孩花1先令,问男人、女人、小孩各有几人?1) 主要算法和思想

    11、将所有可能的情况一一代入,注意按男、女、小孩顺序写循环可以节省时间。2) 流程图3) 源代码#includemain()int x,y,z;/*设有男人x个,有女人y个,有小孩z个*/printf(满足题目条件的男人x、女人y、小孩z的数目:n);for(x=0;x30;x+)for (y=0;y30;y+)for(z=0;z30;z+)if(x+y+z=30)&(3*x+2*y+z=50)printf(x=%2d,y=%2d,z=%2dn,x,y,z);4) 调试和运行情况5.小孩吃梨问题小孩买了一些梨,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的梨吃掉一半,又多吃了一个。以后

    12、每天早上都吃了前一天剩下的一半,并又多吃了一个。到第18天只剩下一个梨了,问小孩共买了多少梨?提示:据初始条件,用倒推法1) 主要算法和思想利用递归的方法,由第18天倒过来推,即可知道小孩买了多少梨子。2) 流程图3) 源代码#includemain()long a,b;int i;a=1;for(i=17;i=1;i-)b=(a+1)*2;a=b;printf(小孩共买了%ld个梨子n,b);4) 调试和运行情况6.奇异的三位数一个自然数的七进制表达式是一个三位数,而这个自然数的九进制表示也是一个三位数,且这两个三位数的数码顺序正好相反,求这个三位数。1) 主要算法和思想 用穷举法的方式对所

    13、有的三位数进行尝试,得到所有满足条件的数。2) 流程图3) 源代码#includemain()int i,m1,m2,m3,n1,n2,n3; /*m3、m2、m1分别表示自然数七进制的第三、二、一位,n3、n2、n1同理*/for(i=100;i0& n30 & m37 & n39 & m1=n3 & m3=n1 & m2=n2) printf(满足题目条件的数:%d 其七进制为:%d%d%d 其九进制为:%d%d%dn,i,m3,m2,m1,n3,n2,n1); /*输出这个数,以及七进制和九进制形式*/ 4) 调试和运行情况7.回文数的形成任取一个十进制整数,将其倒过来后与原来的整数相加

    14、,得到一个新的整数后重复以上步骤,则最终可得到一个回文数。请编程验证。(回文数就是将一个数从左向右读是一样的,如121,11等)。(注:回文数不超过2147483647)回文数的这一形成规则目前还属于一个猜想,尚未获得数学上的验证,有些回文数要经历上百个步骤才能获得,请编程验证,打印形成过程。如输入整数78,则形成回文数的过程为:7887165,165561726,7266271353,135335314884。提示:一个函数用来求反序数,另一个函数判断是否为回文数,在主函数中输入输出。1) 主要算法和思想将问题模块化,利用两个子函数,一个用来求反序,一个用来判断回文。2) 流程图 (子函数r

    15、e) (主函数) (子函数nonres)3) 源代码#include#define MAX 2147483647long re(long int);int nonres(long int s);main()long int n,m;int count=0; /*count为记录形成回文数步骤的次数*/ printf(请输入一个数::);scanf(%ld,&n);printf(回文数形成的过程:n);while(!nonres(m=re(n)+n)/*判断整数与其反序数相加后是否为回文数*/ if(m+n=MAX)printf(输入错误!n);break;elseprintf(%d:%ld+%

    16、ld=%ldn,+count,n,m,m+n);n+=m;printf(%d:%ld+%ld=%ldn,+count,n,m,m+n); /*输出最后得到的回文数*/printf(我们最终得到了回文数!n);long re(long int a) /*求输入整数的反序数*/long int t;for(t=0;a0;a/=10)/*将整数反序*/ t=t*10+a%10;return t;int nonres(long int s) /*判断给定的整数是否是回文数*/ if(re(s)=s) return 1; /*若是回文数则返回1*/ else return 0;/*否则返回0*/ 4)

    17、调试和运行情况8.人机猜数游戏1 由计算机“想”一个四位数,请人猜这个四位数是多少。人输入这个四位数后,计算机首先判断这四个数中有几个猜对了,并且在猜对的数字中又有几位位置也是对的,将结果显示出来,给人以提示,请人再猜,直到人猜出计算机所想的四位数为止。请编程实现该游戏,游戏结束时,显示人猜一个数用了几次。提示:用库函数随机数发生器函数random()产生一个随机数的用法 函数原型: int random(int num); 程序例: #include /*包含库函数random()的头文件*/#include /* prints a random number in the range 0

    18、to 99 */ int main(void) int n;randomize(); /*初始化随机数发生器*/n= random (100); /*产生一个0-100的随机数。*/printf(Random number in the 0-99 range: %dn,n); 1) 主要算法和思想取出所输入数和被猜数的每一位,分别进行比较,并设立专门变量记录数字位置。2) 流程图(略)3) 源代码#include#includeint main()int a,z,t,i,c,m,g,s,j,k,x4; /*j为数字正确的位数,k为位置正确的位数*/z=rand(9999);/*计算机想一个随机

    19、数*/ printf(*欢迎参加人机猜数游戏1*);printf(n);printf(n);printf(我有一个四位数的数字,请猜一猜!n);printf(n);for(c=1;c+)/*c为猜数次数计数器*/ scanf(%d,&g);/*请人猜*/ printf(请输入一个四位数:);a=z;j=0;k=0;x0=x1=x2=x3=0;for(i=1;i5;i+) /*i为原数中的第i位数。个位为第0位,千位为第3位*/s=g;m=1;for(t=1;t5;t+) if(a%10=s%10)/*人所猜想的数若第i位与人猜的第t位相同*/if(m & t!=x0 & t!=x1 &t !=

    20、x2 & t!=x3) /*若该位置上的数字尚未与其它数字“相同”*/j+;m=0;xj-1=t; /*记录相同数字时,该数字在所猜数字中的位置*/ if(i=t) k+;/*若位置也相同,则计数器k加1*/s/=10;a/=10;printf(你猜对了%d个数字,n,j);printf(并且在猜对的数字中有 %d 个位置也是正确的n,k);if(k=4) break; /*若位置全部正确,则人猜对了,退出*/ printf(恭喜你,猜对了!);printf(n);printf(你用了%d次猜出了这个数n,c);4) 调试和运行情况9.人机猜数游戏2程序说明:游戏的开始由机器产生一个随机数(1

    21、100之间,用库函数random()),然后游戏者在程序的提示下猜数,若输入的数比这个数大,程序提示:Your answer is HIGH,try again. ,否则,程序提示:Your answer is LOW,try again.,直到猜对为止。程序可实现连续猜数,直到游戏者退出。程序输出要求:累计游戏者猜对一个数所需次数n,当n=15时,用exit(0)库函数退出程序。1) 主要算法和思想简单的判断语句的组合,设立专门的变量记录猜数的个数。2) 流程图3) 源代码#include #include main()int z,g,n;/*z为机器产生的一个随机数字,g为猜的数字*/ z

    22、=rand(100); printf(*欢迎参加人机猜数游戏2*);printf(n);printf(n);printf(我有一个从1到100之间的数字,请猜一猜!n);printf(n);for(n=1;n+)/*n为猜数次数计数器*/printf(请输入一个从1到100之间的数字:n);scanf(%d,&g);if(g=z) break;else if(gz) printf(Your answer is HIGH,try again.n);else printf(Your answer is LOW,try again. n);if(n=7) printf(Congratulationn

    23、);else if(7n & n15) printf(Ican bet you can do it better.n);else exit(0);4) 调试和运行情况10简单计算器请编写一个程序计算表达式:data1 op data2的值。其中,op为运算符、*、/。1) 主要算法和思想运用switch语句将四则运算结合起来,注意特别考虑除数为0的情况。2) 流程图3) 源代码#include#include#includemain()float a,b;char op;printf(请输入表达式:n);scanf(%f%c%f,&a,&op,&b);printf(计算式为:n);switch(op)case +:printf(%f%c%f=%fn,a,op,b,a+b);break;case -:printf(%f%c%f=%fn,a,op,b,a-b);break;case *:printf(%f%c%f=%fn,a,op,b,a*b);break;case /:if(b!=0) printf(%f%c%f=%fn,a,


    注意事项

    本文(C语言程序课程设计.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开