厦门理工学院11级C语言C语言程序设计课程设计报告汇总Word文档格式.docx

上传人:b****3 文档编号:16716663 上传时间:2022-11-25 格式:DOCX 页数:20 大小:86.72KB
下载 相关 举报
厦门理工学院11级C语言C语言程序设计课程设计报告汇总Word文档格式.docx_第1页
第1页 / 共20页
厦门理工学院11级C语言C语言程序设计课程设计报告汇总Word文档格式.docx_第2页
第2页 / 共20页
厦门理工学院11级C语言C语言程序设计课程设计报告汇总Word文档格式.docx_第3页
第3页 / 共20页
厦门理工学院11级C语言C语言程序设计课程设计报告汇总Word文档格式.docx_第4页
第4页 / 共20页
厦门理工学院11级C语言C语言程序设计课程设计报告汇总Word文档格式.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

厦门理工学院11级C语言C语言程序设计课程设计报告汇总Word文档格式.docx

《厦门理工学院11级C语言C语言程序设计课程设计报告汇总Word文档格式.docx》由会员分享,可在线阅读,更多相关《厦门理工学院11级C语言C语言程序设计课程设计报告汇总Word文档格式.docx(20页珍藏版)》请在冰豆网上搜索。

厦门理工学院11级C语言C语言程序设计课程设计报告汇总Word文档格式.docx

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个加油站与目的地的距离。

输出:

将编程计算出的最少加油次数输出。

如果无法到达目的地,则输出NoSolution。

(注意:

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<

stdio.h>

stdlib.h>

time.h>

voidmain()

{

inti,j,k,b,n,m,add1=0,add2=0;

srand((unsigned)time(NULL));

//生成随机数发生器

for(i=1;

i<

11;

i++)

{

for(b=1;

b<

60000000;

b++);

printf("

第一个人第%d次投出的数\n"

i);

j=rand()%6+1;

printf("

%d\n"

j);

k=rand()%6+1;

k);

if(k==j==6)add1=add1+8;

if(k==j==5||k==j==4||k==j==3||k==j==2||k==j==1)

add1=add1+7;

else

if(k>

j)

add1=add1+j;

else

add1=add1+k;

第二个人第%d次投出的数\n"

m=rand()%6+1;

m);

//rand()产生随机数

n=rand()%6+1;

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;

if(n>

m)

add2=add2+m;

add2=add2+n;

if(i==6)

if(add1==2*add2||add2==2*add1)

i=10;

}

第一个人分值累加计分%d\n"

add1);

第二个人分值累加计数%d\n"

add2);

if(add1>

add2)

第一个人胜利"

);

if(add2>

add1)

printf("

第二个人胜利"

}第二题:

#include<

inti,j,n,t,m;

longintk;

*****************Welcome*****************"

\nGameBegin:

\n"

srand((unsigned)time(NULL));

n=rand()%80+1;

for(i=0;

i<

n;

i++)

"

%c\n"

'

\1'

for(m=0;

m<

5;

m++)

{

scanf("

%d"

&

t);

for(j=10;

j>

0;

j--)

system("

cls"

80;

{

if(i==n)printf("

%c"

elseprintf("

}

j;

for(k=0;

k<

k++)

if(k==t)printf("

*"

100000;

k++);

}

if(t==n)

YourWinner\n"

break;

if(m==4)

YouLose\n"

第三题:

intk,i,n,a,x[999],m=0,o=0;

输入:

"

%d%d"

n,&

k);

=k;

scanf("

a);

x[i]=a;

if(n<

x[i])

NoSolution.\n"

break;

else

m=m+x[i];

{

o++;

m=x[i];

}

if(i==k)

o);

第四题:

intK,M,i=0;

PleaseinputKandM\n"

K,&

M);

if(2<

=K&

&

K<

=M&

M<

=1000)

while(M>

0)

{i++;

M=M-1;

if(i%K==0)M=M+1;

可用天数%d\n"

Inputiserror"

第五题:

inti,j;

intsum=0;

Pleaseinputdays\n"

j);

j!

=0;

if(j>

=i)

sum=sum+i*i,j=j-i;

sum=sum+j*i,j=0;

printf("

得到的金币%d\n"

sum);

第六题:

intsum=0;

structbook

intnum;

charname[100];

charperson[100];

charabout[100];

intp;

intn;

}book[1000];

voidnewbook()

inta;

\n请输入书号:

if(book[a-1].num!

=0)

\n该书号已有书\n"

getchar();

return;

\n请输入图书内容:

书号:

scanf("

book[a-1].num);

书名:

%s"

book[a-1].name);

作者:

book[a-1].person);

简介:

book[a-1].about);

单价:

&

book[a-1].p);

数量:

book[a-1].n);

++sum;

voidfind()

\n请输入您要查找的书号:

if(book[a-1].num==0)

无书号信息"

printf("

book[a-1].name);

book[a-1].person);

book[a-1].about);

voidchange()

book[a-1].num);

输入要修改的内容:

voiddele()

\n请输入您要删除的书号:

\n\n按回车删除此书信息\n"

book[a-1].num=0;

voidlook()

for(a=0;

a<

1000;

a++)

******************************\n"

voidmain()

m:

intn;

*******************************************\n"

图书管理系统\n\n操作选单\n\n"

\t\t1输入图书\t2查找图书\n"

\t\t3修改图书\t4删除旧书\n"

\t\t5浏览图书\t0退出程序\n"

\n请输入选项:

n);

switch(n)

case1:

newbook();

break;

case2:

find();

case3:

change();

case4:

dele();

case5:

look();

case0:

exit(0);

gotom;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1