厦门理工学院11级C语言C语言程序设计课程设计报告汇总_第1页
厦门理工学院11级C语言C语言程序设计课程设计报告汇总_第2页
厦门理工学院11级C语言C语言程序设计课程设计报告汇总_第3页
厦门理工学院11级C语言C语言程序设计课程设计报告汇总_第4页
厦门理工学院11级C语言C语言程序设计课程设计报告汇总_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计课程设计报告(2011 2012学年 第 1 学期)题 目: 专 业: 班 级: 姓名学号: 指导教师: 成 绩: 计算机科学与技术系 2011 年12月31日目 录一、课程设计的目的与要求1二、方案实现与调试 22.1 掷骰子游戏22.2射击游戏 32.3汽车加油 42.4大优惠52.5金币62.6小型图书馆系统 7三、课程设计分析与总结9附录 程序清单10二、设计要求根据实验内容的要求自由选定题目。编写程序要求遵循如下基本要求:l 模块化程序设计l 锯齿型书写格式l 必须上机调试通过二、方案实现与调试2.1.1掷骰子游戏2.1.1 题目内容的描述 两人玩骰子,游戏规则如下:1) 两人轮流掷骰子,每次掷两个,每人最多掷10次。2) 第一个人投出的数,第二个人投出的数将每人每次的分值累加计分3) 当两个骰子点数都为6时,计8分;当两个点数相等且不为两个6时,计7分;当两个点数不一样时,计其中点数较小的骰子的点数。4) 结束条件:当双方都掷10次或经过5次后一方累计分数为另一方的两倍。最后显示双方分数并判定优胜者。2.1.2输入数据类型、格式和内容限制和输出数据的说明数据类型:整型;内容限制:随机数的产生;输入数据结果:胜利的一方2.1.3主要模块的算法描述 思路过程:1. 随机产生随机数2. 进行算法输出数值3. 执行条件判断输入结果4. 比较结果,判断胜利的一方2.1.4调试过程及实验结果编辑过程中遇到的困难有:1. 编程思路不正确,导致只有部分结果满足要求。2. 编程过程缺乏改错耐心。实验结果图示如下:2.2射击游戏2.2.1题目内容的描述 在程序运行时屏幕上方第一行随机出现一个 符号,要求游戏者输入一个1-80之间的整数,当用户输入一个整数后,一个*立即从屏幕底端的该整数列向上移动,若移动到屏幕的顶端能撞上 符号,则游戏者获胜;若没有撞上,则要求再输入一个整数,共允许输入5次,如果一直没有撞上,则认为游戏者输。 2.2.2输入数据类型、格式和内容限制和输出数据的说明System(“cls”);清楚屏幕,2.2.3主要模块的算法描述 清楚屏幕然后循环每行输出*依次循环,判断是否击中目标5次输入结束,或者击中目标结束2.2.4调试过程及实验结果该题中大体循环是以次数,还是循环的结果作为判断,弄不清楚记录程序执行的结果。2.3汽车加油2.3.1题目内容的描述 一辆汽车加满油后可行驶n公里。旅途中有若干个加油站。设计一个有效算法,指出应在哪些加油站停靠加油,使沿途加油次数最少。输入:第一行有2 个正整数N和K(1 = N = 100,1 = K = 100),表示汽车加满油后可行驶N公里,且旅途中有K个加油站。接下来的1 行中,有K+1 个整数,表示第K个加油站与第K-1 个加油站之间的距离。第0 个加油站表示出发地,汽车已加满油。第K+1 个整数表示第K个加油站与目的地的距离。输出:将编程计算出的最少加油次数输出。如果无法到达目的地,则输出 No Solution。(注意:No和Solution之间有一个空格)。2.3.2输入数据类型、格式和内容限制和输出数据的说明 数组类型,循环条件判断2.3.3主要模块的算法描述 按题目格式输入数据; 首先进行判断可行驶的路程是否足够汽车到达加油站;如果不能到达,则需要加油,此处记录一次并循环; 得出结果;2.3.4调试过程及实验结果2.4大优惠2.4.1题目内容的描述 中国移动推出最新的手机资费优惠方案,按照这个方案Tom的手机每天消费1元,每消费K元就可以获赠1元,一开始Tom有M元,问最多可以用多少天?2.4.2输入数据类型、格式和内容限制和输出数据的说明 整型,算法的应用,内容数字的限定;2.4.3主要模块的算法描述 思考数据间的关系;分析K与天数的关系;按M值递减的方式运算;2.4.4调试过程及实验结果实验中所遇到的困难是:没有注意到题目中给定的限制范围。实验结果图示: 2.5大优惠2.5.1题目内容的描述 国王用金币奖励他忠诚的侍从。第一天侍从工作结束后,国王奖励了他一个金币;接着的两天侍从工作中(第二天,第三天)的每一天,国王奖励了他两个金币;接着的三天侍从工作中(第四天,第五天,第六天)的每一天,国王奖励了他三个金币;接着的四天侍从工作中(第七天,第八天,第九天,第十天)的每一天,国王奖励了他四个金币。这种奖励的模式将是固定不变的,即在N天侍从工作中的每一天,国王将奖励他N个金币;接着的N+1天的侍从工作中的每一天,国王将奖励他N+1个金币。要求在给定的天数时,你的程序能够统计国王总共奖励了侍从多少金币。2.5.2输入数据类型、格式和内容限制和输出数据的说明 整型,算法的应用,内容数字的限定;2.5.3主要模块的算法描述 思考数据间的关系;分析天数与获得金币的关系(类金字塔);进行总求和;2.5.4调试过程及实验结果循环条件的出口判断不明确;求和处理不简约;实验结果图示:2.6小型图书管理系统设计2.6.1题目内容的描述 功能:实现某班级的图书信息管理,图书的基本信息包括书号、书名、作者、单价、数量和简介(50字内)等。2.6.2系统功能说明1设计简单的菜单,能够进行系统功能选择。 2实现信息的录入功能。3在已有信息的基础上添加新的记录。 4删除指定书号的记录。 5修改指定书号的记录 6实现信息的浏览功能 7按书号查询功能 2.6.3输入数据类型、格式和内容限制和输出数据的说明 结构体:分割成几块 分别对其定义,并实现功能; 最后实现菜单,执行选择;2.6.4系统主要模块的算法描述 结构体:分割成几块 分别对其定义,并实现功能; 最后实现菜单,执行选择;2.6.5调试过程及实验结果详细记录程序在调试过程中出现的问题及解决方法。记录程序执行的结果。三、课程设计分析与总结学习C语言的过程中,深刻认识到实践是最好的老师,对于一个初学者来说,编程经验好比身边携带的熟悉事物,必须掌握熟悉之后才能有所发挥,有所作为。从实践中的点滴积累起来的,就是所谓的经验,通过不断的上机编程,不但能够几下那些常用的函数和代码,熟悉程序的结构,从而使我们暂时脱离课本的本来编程可能够积累更多的敬仰。提高程序设计能力的一个重要的途径就是学习书上别人编写的程序,从中掌握解决问题的核心方法和关键步骤。只有知道语言的特点和构造后,才能达到自己编写的程度,并在不断的编程过程中学习,提高。附录:源程序清单第一题:#include #include #include void main() int i,j,k,b,n,m,add1=0,add2=0;srand( (unsigned)time( NULL ) ); /生成随机数发生器for(i=1; i11; i+) for(b=1;bj)add1=add1+j;elseadd1=add1+k; printf(第二个人第%d次投出的数n,i); m=rand()%6+1; printf(%dn,m); /rand()产生随机数 n=rand()%6+1; printf(%dn,n); if(n=6|m=6) add2=add2+8; if(n=m=5|n=m=4|n=m=3|n=m=2|n=m=1)add2=add2+7;elseif(nm)add2=add2+m;elseadd2=add2+n;if(i=6) if(add1=2*add2|add2=2*add1) i=10; printf(第一个人分值累加计分%dn,add1); printf(第二个人分值累加计数%dn,add2); if(add1add2) printf(第一个人胜利); if(add2add1)printf(第二个人胜利); 第二题:#include#include#includevoid main() int i,j,n,t,m; long int k; printf(*Welcome*); printf(nGame Begin:n); srand(unsigned)time(NULL); n=rand()%80+1; for(i=0;in;i+) printf( ); printf(%cn,1); for(m=0;m0;j-) system(cls); for(i=0;i80;i+) if(i=n) printf(%c,1); else printf( ); for(i=1;ij;i+) printf(n); for(k=0;k80;k+) if(k=t) printf(*); else printf( ); for(k=0;k;k+); if(t=n) printf(Your Winnern); break; if(m=4) printf(You Losen);第三题:#include void main()int k,i,n,a,x999,m=0,o=0;printf(输入:);scanf(%d%d,&n,&k);for(i=0;i=k;i+)scanf(%d,&a);xi=a;for(i=0;i=k;i+)if(nxi) printf(No Solution.n);break; elsem=m+xi; if(nm)o+; m=xi;if(i=k)printf(输出:%dn,o);第四题:#includevoid main()int K,M,i=0;printf(Please input K and Mn);scanf(%d%d,&K,&M); if(2=K&K=M&M0)i+; M=M-1;if(i%K=0) M=M+1;printf(可用天数%dn,i);elseprintf(Input is error);第五题:#includevoid main()int i,j;int sum=0;printf(Please input daysn);scanf(%d,&j);for(i=1;j!=0;i+)if(j=i)sum=sum+i*i,j=j-i;elsesum=sum+j*i,j=0;printf(得到的金币%dn,sum);第六题:#include#includeint sum=0;struct book int num; char name100; char person100; char about100; int p; int n; book1000;void newbook() int a; system(cls); printf(n请输入书号:); scanf(%d,&a); if(booka-1.num!=0) printf(n该书号已有书n); getchar(); return; else printf(n请输入图书内容:n); printf(书号:);scanf(%d,&booka-1.num); printf(书名:);scanf(%s,&); printf(作者:);scanf(%s,&booka-1.person); printf(简介:);scanf(%s,&booka-1.about); printf(单价:);scanf(%s, &booka-1.p) ; printf(数量:);scanf(%s,&booka-1.n); +sum; return; void find() int a; system(cls); printf(n请输入您要查找的书号:); scanf(%d,&a); if(booka-1.num=0) printf(无书号信息); getchar(); return; printf(书号:);printf (%d,&booka-1.num); printf(书名:);printf (%s,); printf(作者:);printf (%s,booka-1.person); printf(简介:);printf (%s,booka-1.about); printf(单价:);printf (%s, &booka-1.p) ; printf(数量:);printf (%s,&booka-1.n); getchar(); return; void change() int a; system(cls); printf(n请输入您要查找的书号:); scanf(%d,&a); if(booka-1.num=0) printf(无书号信息); getchar(); return; printf(书号:);printf (%d,booka-1.num); printf(书名:);printf (%s,); printf(作者:);printf (%s,booka-1.person); printf(简介:);printf (%s,booka-1.about); printf(单价:);printf (%s, &booka-1.p) ; printf(数量:);printf (%s,&booka-1.n); printf(输入要修改的内容:n); printf(书号:);scanf(%d,&booka-1.num); printf(书名:);scanf(%s,&); printf(作者:);scanf(%s,&booka-1.person); printf(简介:);scanf(%s,&booka-1.about); printf(单价:);scanf(%s, &booka-1.p) ; printf(数量:);scanf(%s,&booka-1.n); return;void dele() int a; system(cls); printf(n请输入您要删除的书号:); scanf(%d,&a); if(booka-1.num=0) printf(无书号信息); getchar(); return; printf(书号:);printf (%d,booka-1.num); printf(书名:);printf (%s,); printf(作者:);printf (%s,booka-1.person); printf(简介:);printf (%s,booka-1.about); printf(单价:);printf (%s, &booka-1.p) ; printf(数量:);printf (%s,&booka-1.n); printf(nn按回车删除此书信息n); getchar(); booka-1.num=0; return; void look()

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论