C语言课程设计报告Word格式文档下载.docx
- 文档编号:1477063
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:20
- 大小:394.31KB
C语言课程设计报告Word格式文档下载.docx
《C语言课程设计报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告Word格式文档下载.docx(20页珍藏版)》请在冰点文库上搜索。
=10万元的部分,按10%提成奖金;
利润中10~20万元的部分,按7.5%提成奖金;
利润中20~40万元的部分,按5%提成奖金;
利润中40~60万元的部分,按3%提成奖金;
利润中60~100万元的部分,按1.5%提成奖金;
利润中>
=100万元的部分,按1%提成奖金;
应发奖学金总数是各部分奖金的和,例如,利润x达到40万到60万之间时,奖金y由四个部分组成:
(1)利润中<
=10万元的部分(共10万元)奖金:
10e4*0.1;
(2)
利润中10~20万元的部分(共10万元)奖金:
10e4*0.075:
;
(3)利润中20~40万元的部分(共20万元)奖金:
20e4*0.05;
(4)利润中40~60万元的部分(共x-40万元)奖金:
(x-40e4)*0.03,于是,y=10e4*0.1+10e4*0.075+20e4*0.05+(x-40e4)*0.03.
2.流程图
3.编码
#include<
stdio.h>
main()
{
floatx,y;
printf("
\ninputtheprofitx:
"
);
scanf("
%f"
&
x);
if(x<
=0)
noprize.\n"
else
=10e4)
y=x*0.1;
elseif(x<
=20e4)
y=10e4*0.1+(x-10e4)*0.075;
40e4)
y=10e4*0.1+(x-10e4)*0.075+(x-20e4)*0.05;
=60e4)
y=10e4*0.1+(x-10e4)*0.075+(x-20e4)*0.05+(x-40e4)*0.03;
=100e4)
y=10e4*0.1+(x-10e4)*0.075+(x-20e4)*0.05+(x-40e4)*0.03+(x-60e4)*0.015;
y=10e4*0.1+(x-10e4)*0.075+(x-20e4)*0.05+(x-40e4)*0.03+(x-60e4)*0.015+(x-100e4)*0.01;
\ntotalprizey=%.2f"
y);
}
4.测试运行结果
二、
问题描述
题目2:
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
1.解题分析、方法等:
1.定义变量i,j,k,flag;
2.令j是变量i加上100后的一个完全平方数;
k是变量i加上268后的一个完全平方数;
4.比较转化为整形的j*j=?
i+100;
k*k=?
i+268求出变量i。
2.流程图:
3.源程序:
inti,j,k,flag=0;
for(i=-100;
;
i++)
{
for(j=0;
j<
i+100;
j++)
for(k=0;
k<
k++)
if(i+100==j*j&
&
i+268==k*k)
printf("
%d"
i);
flag=1;
}
if(flag==1)
break;
4.运行结果:
三、问题描述
题目5:
有36块砖,共36人搬,成年男子一次搬4块砖,成年女子一次搬3块砖,儿童两人抬1块砖,恰好一次全部搬完,编程求出成年男子成年女子和儿童各有多少人。
1.解题分析、方法等
1、定义成年男子、成年女子、儿童分别为变量x,y,z;
2、男子人数可搬x*4块砖,女子人数可搬y*3块砖,儿童人数可搬z/2块砖;
3、共36人和36块砖,故x+y+z=36,x*4+y*3+z/2=36;
4、求x,y,z。
voidmain()
intx,y,z;
for(x=0;
x<
=36;
x++)
for(y=0;
y<
=36-x;
y++)
z=36-x-y;
if((4*x+3*y+z/2==36)&
(z%2==0))
x=%d,y=%d,z=%d\n"
x,y,z);
4.测试结果:
四、问题描述
题目10:
有100盏灯,由100个开关控制,现在有100个人顺序从每个开关走过,第1个人将所有开关拨一下,第2个人将偶数开关拨一下,第3个人将3的倍数的开关拨一下,依次类推。
问,100人过后,哪些灯是亮的,哪些灯是灭的?
1.解题分析、方法等:
所有的灯一开始是暗的,每一个人经过开关都会改变。
然后按下述步骤完成:
(1)一开始所有的灯都暗,故为-1;
(2)每个人一经过开关,值会改变;
(3)输出时,负值的灯是暗的,正值的灯是亮的
2.流程图:
3.编码
#include"
stdio.h"
intq[101],i,j;
for(i=1;
i<
=100;
q[i]=-1;
/*一开始的灯是暗的,q[i]是“非”*/
for(j=i;
if(j%i==0)q[j]=-q[j];
/*每改变一次开关,q[i]变成非q[i]*/
以下的灯是亮的:
"
/*打印出何盏灯是亮的及暗的*/
if(q[i]==1)printf("
%d"
\n以下的灯是暗的:
if(q[i]!
=1)printf("
4.测试结果:
第二部分
五、问题描述
课题二恺撒(Caesar)及改进的恺撒密码加、解密实现。
恺撒加密方法就是把明文中所有字母都用它右边的第k个字母替代,并认为Z后边又是A。
这种映射关系表示为如下函数:
F(a)=(a+k)modn
其中:
a表示明文字母;
n为字符集中字母个数;
k为密钥。
例如:
明文attack,密钥k=3,密文dwwdfn
改进的恺撒密码
明文中的字符换成另一个字符即单字母替换
如:
abcdefghijklmnopqrstuvwxyz
QWERTYUIOPASDFGHJKLZXCVBNM(密钥)
例如:
明文attack,密文QZZQEA
1、在主函数中,定义三个数组存放明文和转换后的密文;
2、调用自定义的函数fun(),通过输入密钥,得到改进的恺撒密码;
1、主函数流程图:
主函数流程图
3.编程:
#include<
string.h>
voidfun(char*p,char*q)
chara[26]="
abcdefghijklmnopqrstuvwxyz"
b[26];
inti,j,flag=0;
char*tp=p,*tq=q;
while(flag==0)
{printf("
\nmingwenbiao:
abcdefghijklmnopqrstuvwxyz\n"
\ninputmiyao:
/*输入明文和密钥(改进的恺撒密码)*/
scanf("
%s"
b);
flag=1;
for(i=0;
26;
if(b[i]=='
\0'
)
flag=0;
\nwrongmiyao,nend26chars!
!
/*检错,如果密钥个数不是26,就提示错误*/
tp[j]!
='
if(tp[j]==a[i])
tq[j]=b[i];
tq[j]='
\nmiwentwo:
%s\n"
q);
/*输出密文2:
*/
charm[100],c[100],d[100];
intk,i;
\ninputmingwen:
/*输入明文*/
gets(m);
\ninputthekey:
/*输入密钥*/
k);
\n"
m[i]!
c[i]=(m[i]-'
a'
+k)%26+'
c[i]='
printf("
miwenoneis:
c);
/*输出密文1是:
fun(m,d);
学习心得
C语言的收获
刚开始学习C语言的时候不知该从何下手,以前没有学过,有些同学都学过,老师上课也很快,有点赶不上的节奏,有时候在上机的时候虽说程序能看明白,但要让自己去写一个程序那真的是一个头两个大。
最后自己一个人慢慢找学习的方法,自己在课余时间试着去自己上机操作,对着课本自己练习编程,最后再只看题,不对着课本,有时候尝试用课本上没有用过的方法去解决一些问题,自己也会去想一些问题,然后想出方法再去编写程序解决。
通过这样不断的操作实践着实让我的C语言有了很大的提高,就是在这次的C语言等级考试中也是相当得心应手。
同时C语言的学习是一个需要耐心和细心的工作,到目前为止,有些时候一些编程还是会有一些小问题出现,有些时候会将“=”和“==”等效了,有时候会将“a*b”写成“ab”,为了克服这个缺点,每次在编完程序试运行之前,我都会自己去检查一次,把电脑要做的事情自己先做一次,久而久之,感觉编程出现问题的地方和次数都少了很多。
我对C语言的学习的感受就是操作(也就是解题)比一味的去看课本效率更高,也学的更快更轻松,这次的C语言报告再一次给了我一个锻炼自己的机会,以前没有写过流程图,通过这次的实习报告让我对流程图的编写也变的更加熟悉。
但同时流程图也是最麻烦的,思路不是太难,可要想在WORD里表达出来还需要CAD去画图,再截图黏贴。
总的来说,这周的C语言实习让我过的很充实,无论是C语言的编程还是解决问题的思路,甚至还让我复习了一下CAD的操作。
同时也加深了我对C语言的理解与认识。
对我而言,这是一次很有价值的锻炼。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 报告