C语言实训报告文档格式.docx

上传人:b****5 文档编号:19483947 上传时间:2023-01-06 格式:DOCX 页数:17 大小:37.08KB
下载 相关 举报
C语言实训报告文档格式.docx_第1页
第1页 / 共17页
C语言实训报告文档格式.docx_第2页
第2页 / 共17页
C语言实训报告文档格式.docx_第3页
第3页 / 共17页
C语言实训报告文档格式.docx_第4页
第4页 / 共17页
C语言实训报告文档格式.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

C语言实训报告文档格式.docx

《C语言实训报告文档格式.docx》由会员分享,可在线阅读,更多相关《C语言实训报告文档格式.docx(17页珍藏版)》请在冰豆网上搜索。

C语言实训报告文档格式.docx

本课程设计的目的和任务:

1.巩固和加深学生对C语言课程的基本知识的理解和掌握

2.掌握C语言编程和程序调试的基本技能

3.利用C语言进行基本的软件设计

4.掌握书写程序设计说明文档的能力

5.提高运用C语言解决实际问题的能力

二、课程设计要求

1.分析课程设计题目的要求

2.写出详细设计说明

3.编写程序代码,调试程序,使其能正确运行

4.设计完成后提交课程设计报告

三、课程设计题目、程序代码(要求程序有必要的注释)

题目:

题目1在主函数中输入密码,若密码正确,调用一个体重测量仪函数,要求当输入5个人的身高和体重后,计算出体重指数,根据指数情况进行判断输出结论。

体重指数=体重(公斤)除身高(米)的平方(kg/m2)

判断标准:

重度肥胖:

体重指数>

=40

中度肥胖:

35<

=体重指数<

40

轻度肥胖:

30<

35

微度肥胖:

25<

=体重指数<

30

正常体重:

18<

25

偏瘦:

体重指数<

编程要求:

若密码错误输入三次,则程序退出。

#include<

stdio.h>

string.h>

stdlib.h>

voidf();

voidmain()

{

chara[30];

inti=0;

printf("

请输入密码:

\n"

);

while

(1)

{

gets(a);

if(strcmp(a,"

222"

)!

=0)

{

i++;

if(i==3)

{

printf("

密码输入了三次,无权进入!

exit(0);

}//当密码输错三次后,自动退出程序

printf("

}//当密码输错且小于三次时,重复输入密码步骤

else

break;

//当密码输入正确的时候,跳出输入密码项,进入体重计算步骤

}

f();

//密码输入正确后用调用函数来实现体重计算

}

voidf()

inti=0;

floata[30],b[30],t[140];

for(i=0;

i<

5;

i++)

{

printf("

请输入第%d个人的身高和体重(用逗号隔开):

"

i+1);

scanf("

%f,%f"

&

b[i],&

a[i]);

}//用循环语句实现分别输入5个人身高体重步骤

t[i]=a[i]/(b[i]*b[i]);

if(t[i]>

=40)

第%d个人的体重指数:

重度肥胖\n"

elseif(t[i]>

=35&

&

t[i]<

40)

中度肥胖\n"

=30&

35)

轻度肥胖\n"

=25&

30)

微度肥胖\n"

=18&

25)

正常体重\n"

elseif(t[i]<

18)

偏瘦\n"

}//用循环语句实现分别计算5个人体重指数步骤

题目2用户登录程序。

提示用户输入用户名和密码,判断是否为合法用户,如果合法调用求圆的面积函数和体积函数,否则要求重新输入,允许输入三次,若三次都错,显示“passworderror!

youcannotusesoftware.”,退出。

#definePI3.14//定义PI的值为3.14

voida();

voidb();

chara[30],b[30];

请输入用户名:

while

(1)

printf("

gets(b);

if((strcmp(a,"

LIJIA"

=0)||(strcmp(b,"

=0))

passworderror!

youcannotusesoftware.\n"

/*当密码输错三次后,输出passworderror!

youcannotusesoftware并自动退出程序*/

}

请再次输入用户名:

//当密码输错且小于三次时,重复输入密码步骤

}

/*当用户名和密码都输入正确的时候,跳出输入用户和密码项,进入调用函数f()*/

intx;

恭喜你,输入正确!

qq:

printf("

亲,请选择哦(输入1-3)\n"

1.求圆面积程序\n"

2.求球的体积程序\n"

3.退出\n"

scanf("

%d"

x);

if(x==1)

a();

elseif(x==2)

b();

elseif(x==3)

exit(0);

else

{

没有这个选项哦\n"

gotoqq;

//当输入数字未在1~3中时,重新进入菜单选项

voida()

doublex,s;

请输入圆的半径\n"

scanf("

%lf"

s=3.14*x*x;

%.2lf=3.14*%.2lf*%.2lf\n"

s,x,x);

voidb()

doublex,v;

请输入球的半径\n"

v=4/3*3.14*x*x*x;

%.2lf=4/3*3.14*%.2lf*%.2lf*%.2lf\N"

v,x,x,x);

题目3每个公民的身份号码为十八位,最后一位是校验码。

输入身份号码的前十七位,请根据下面的算法,计算出最后一位的编码。

按照中华人民共和国国家标准GB11643-1999规定中华人民共和国公民身份号码校验码的计算方法即为ISO7064:

1983.MOD11-2校验码计算法。

假设某一17位数字是

  17位数字12345678901234567

加权因子7910584216379105842

计算17位数字各位数字与对应的加权因子的乘积的和S:

7+2×

9+3×

10+4×

5+5×

8+6×

4+7×

2+8×

1+9×

6+0×

3+1×

2=368;

计算S÷

11的余数T:

368mod11=5;

计算(12-T)÷

11的余数R,如果R=10,校验码为字母“X”;

如果R≠10,校验码为数字“R”:

(12-5)mod11=7。

该17位数字的校验码就是7,聚合在一起为123456789012345677。

intn[17],m[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2},i=0,s=0,t,r;

请输入您身份证号前17位(小编免费为你推算第十八位哦O(∩_∩)O)\n"

for(i=0;

17;

i++)

scanf("

n[i]);

s+=n[i]*m[i];

}//利用循环函数使输入身份证号的前17位

t=s%11;

r=(12-t)%11;

n[i]);

if(r==10)

X\n"

else

%d\n"

r);

题目4用随机函数产生0~9内的随机数,编写一个程序能够计算二个数和三个数的和差积商运算。

随机产生10以内的整数,出题的数量由个人自定。

人机界面良好,有实用性。

time.h>

a();

b();

main()

intt;

1两个数的算术运算\n"

2三个数的算术运算\n"

3退出\n"

t);

if(t==1)

a();

elseif(t==2)

b();

elseif(t==3)

exit(0);

}//根据输入数字,进入对应功能项

a()

inta,b,c,d,e,i=0,n,m=1;

亲,想做几道题呢?

O(∩_∩)O\n"

n);

//根据输入数字确定出题数量

for(m=1;

m<

=n;

m++)//利用循环函数实现反复出题功能

第%d道题\n"

m);

srand(time(NULL));

a=rand()%9+1;

b=rand()%9+1;

c=rand()%4+1;

switch(c)

{

case1:

d=a+b;

%d+%d="

a,b);

break;

case2:

d=a-b;

%d-%d="

case3:

d=a*b;

%d*%d="

case4:

d=a/b;

%d/%d="

}//用了三个产生随机的语句,产生随机数a,b,产生随机算法C

while

(1)

scanf("

e);

if(d!

=e)

{

i++;

if(i==3)

你都错三次了,%>

_<

%\n"

正确答案是:

d);

break;

}//当输入答案错误三次,自动弹出正确答案并进入下一题

请再次输入答案哦\n"

}//当答案输入错误在三次内,让其重复输入答案

else

break;

//当答案输入正确,跳出循环

b()

inta,b,c,d,e,i=0,n,m=1,o;

//根据输入数字确定出题数量

for(m=1;

m++)//利用循环函数实现反复出题功能

srand(time(NULL));

a=rand()%9+1;

b=rand()%9+1;

o=rand()%9+1;

c=rand()%17+1;

switch(c)

case1:

d=a+b+o;

%d+%d+%d="

a,b,o);

case2:

d=a+b-o;

%d+%d-%d="

case3:

d=a+b*o;

%d+%d*%d="

case4:

d=a+b/o;

%d+%d/%d="

case5:

d=(a+b)*o;

(%d+%d)*%d="

case6:

d=(a+b)/o;

(%d+%d)/%d="

case7:

d=a-b+o;

%d-%d+%d="

case8:

d=a-b-o;

%d-%d-%d="

case9:

d=a-b*o;

%d-%d*%d="

case10:

d=a-b/o;

%d-%d/%d="

case11:

d=(a-b)*o;

%(d-%d)*%d="

case12:

d=(a-b)/o;

(%d-%d)/%d="

case13:

d=a*b*o;

%d*%d*%d="

case14:

d=a*b/o;

%d*%d/%d="

case15:

d=a*(b/o);

%d*(%d/%d)="

case16:

d=a/b/o;

%d/%d/%d="

case17:

d=a/(b/o);

%d/(%d/%d)="

}//用了四个产生随机的语句,产生随机数a,b,O产生随机算法C

while

(1)

scanf("

if(d!

i++;

if(i==3)

{

printf("

break;

}//当输入答案错误三次,自动弹出正确答案并进入下一题

}//当答案输入错误在三次内,让其重复输入答案

else

//当答案输入正确,跳出循环

题目6选优秀学生干部程序。

设有5个候选人,每人每次输入2个的候选人的号,且不得重复计票。

要求最后输出每个人得票的结果和第一名的姓名。

加分项:

投票人数随机,可以弃权,也可以只投一票或二票。

intx,a=0,b=0,c=0,d=0,e=0,f=0,i,max1,max2,max3,max4;

你想为谁投票呢?

请输入他们的编号(每人每次输入2个的候选人的号,且不得重复计票。

可以弃权(按0哦)也可以只投一票或二票)\n"

1王二小\n"

2哪吒\n"

3三毛\n"

4葫芦娃\n"

5熊二\n"

2;

a++;

b++;

c++;

elseif(x==4)

d++;

elseif(x==5)

e++;

elseif(x==0)

f++;

}//根据输入数字为相应选手票数进行累加

if(x==-1)

break;

//如果输入-1,则结束投票

max1=(a>

b?

a:

b);

max2=(max1>

c?

max1:

c);

max3=(max2>

d?

max2:

d);

max4=(max3>

e?

max3:

//利用判断语句,判断出最高票选手

if(max4==a)

得票最高的是:

王二小\n"

elseif(max4==b)

哪吒\n"

elseif(max4==c)

三毛\n"

elseif(max4==d)

葫芦娃\n"

elseif(max4==e)

熊二\n"

最高票数为:

max4);

得票结果为\n"

1王二小得票:

a);

2哪吒得票:

b);

3三毛得票:

c);

4葫芦娃得票:

5熊二得票:

e);

四、总结(不少于800字)

能说最后一天是被C语言吓醒的麽?

对于我这种从来都在7点以后起来的人来说,在星期四那个黑色早晨,一串串C语言符号打断了我和周公的“约会”,什么自定义函数,什么printf.scanf……活生生的给我吓醒了呀。

您知道那会儿几点麽?

6点过一点,是的,是6点过一点点。

因为是连着的三周是实训,所以其实我很累。

(可能对有的同学来说,恰恰与我相反)说句小欠虐的话,好想上课啊…..

对于C语言,刚刚看到老师出的题的时候,哇噻,老师您真狠。

好难的感觉。

周一的一早上一道题都没没做成功.是传说中的没进入状态么?

因为是陌生的老师,遇到困难也没好意思问,其实好多同学都是。

下午的时候,好多同学都往后坐了,可能就是因为是陌生老师的关系吧。

反正第一天就只做了一道题。

不过当时超有成就感的,那么长的程序,平时让我看都可能会迷糊进去。

现在居然我能写出来了,而且功能杠杠的。

不过看到后面的题,心情顿时忧伤了。

周二的时候,万来师来了,大概是自己人的原因,第一排是坐满了,问题的人明显增多了。

第二天的,是具有历史意义的一天。

哈哈哈,请容我小嘚瑟一下。

那天,我成功地做成了第四题。

其实我也没读懂题,但是呢从老师发的EXE文件里找到了灵感。

“琪琪,想做几道题呢?

”是的,就是它。

运行体验了无数次后,我也成功的编出来了。

本来也是没觉得有怎样。

但是,,,,,后来很多同学来问我这道题,当时那个心情:

虚荣心得到了极大满足啊(原谅我是个凡人)那天,他们都说我是人品爆发,一天做了两道题。

其实,还是很满足的。

周三,做了两道,但点名那道简直把我虐爆。

编译运行毫无问题,就是因为显示它不听指挥啊。

那挣扎了很久后,最终决定放弃治疗了。

因为说周四要先检查做题多的同学,同时也希望拿到老师手里的高分。

那天晚上去找空机房了。

(电脑版本太低,装不了C++……)只是、、、、、没有上课的机房都是锁了的。

找了一个在上选修的班级,给那个老师说了一下,最终混匿在一群选修学生中苦逼的做着C语言。

不过结果还是让人满意的,成功地做了一道题,还有一道半成品。

周四早上,还在苦苦挣扎我的点名程序,奈何它……只怪我学艺不精啊。

同时呢也在将前一晚的半成品继续加工,毕竟,写得越多,分越高吧。

(原谅我这么庸俗……)。

只是老师来检查的时候点名程序和那道多半成品也没成功。

不过当时真好想和老师说一句,能这两题算一题吗?

我就可以算六道了。

最终还是把这句话给噎回去了。

好多同学都说我程序长这个问题。

是,的确,和有些同学比起来,我的程序确实长了好多。

我能申辩一下麽?

我觉得要站在一个运行我们生成EXE文件的使用者来编程,因为我们编的程序确实是有实用性啊。

随机产生算式的那道题用在我一年级的妹妹身上确实是好啊。

站在她们使用的角度那就需要足够的提示语。

一般的提示语一句就能解决问题,那对于循环语句中的提示就得下功夫了。

还有对于菜单选项,要是输入选项以外的键,我会让它产生提示语并重新进入菜单选项。

这或许在一般同学眼里又是“多余”的语句。

但至少我不那么认为。

其实,实训里也有充满激动人心的时刻啊。

那就是准备运行的时候,看着那个三角符号,当按下去产生小黑框的时候,心里那个激动劲儿啊,和中了彩票一个效果。

苦逼的事是,没有产生小黑框,并且按下F4显示一堆错。

心情那叫一个凉啊。

更苦逼的事是,产生小黑框,但……运行出来不是想要的,天哪,找错都没地儿找啊。

反正实训的每天都会听到各种吐槽各种抱怨,但,作业也还要继续。

对于那些编写好的程序,我想,我会像保存模电,电子工艺实训产品一样把它保存好。

尽管在编写前和编写中,它让我抓耳挠腮,各种烦躁,甚至发誓再也不碰它,可是,看到编好的程序却还是那么高兴的。

毕竟,一周的心血呢。

说说实训的收获吧。

最大的收获是我

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

当前位置:首页 > 工程科技 > 能源化工

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

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