程序设计基础实训报告

一、实训目的

程序设计基础是程序设计C语言和C++语言的入门课程,该课程兼顾基础理论和编程实践。通过学习该课程的理论知识和编程实战,培养学生的专业实践技能,学校设有专用实训周,帮助学生全面牢固地掌握课堂教学内容、提升实际动手能力和思维逻辑能力。经历为期一周的专用实训周,提升对顺序结构、选择结构、循环结构、函数、数组、结构体、指针等重要知识点的掌握熟悉程度。

二、实训要求

1、掌握《C语言程序设计》有关的专业基础知识和程序设计的基本方法。

2、学会利用程序的三种基本结构:顺序结构、选择结构、循环结构解决不同的问题。

3、学会根据实际需求定义变量及类型。

4、掌握过程和函数的定义及调用方法。

5、熟练掌握函数,具备模块化编程思想。

6、能熟练应用数组、结构体、指针编写程序。

7、学会程序调试的基本方法

三、实训内容

结构化程序设计 模块化程序设计 数组、结构体、指针的应用 综合运用

四、实训体会

设银行定期存款的年利率rate为2.25%,并已知存款期为n年,存款本金为capital元,试编程计算n年后的本利之和deposit。要求定期存款的年利率rate、存款期n和存款本金capital均由键盘输入。

求解本利之和deposit的公式为:deposit =capital * pow(1+rate, n)

掌握顺序结构程序设计及本利之和deposit的公式

计算个人所得税:输入一个职工的月薪salary,计算应交的个人所得税tax。计算公式为:tax=rate*(salary-850)

当salary<=850时,rate=0%

当850<salary<=1350时,rate=5%

当1350<salary<=2850时,rate=10%

当2850<salary<=5850时,rate=15%

当salary>5850时,rate=20%

掌握选择结构程序设计,函数体合理运用选择结构

百钱百鸡问题。中国古代数学家张丘建在他的《算经》中提出了著名的 “ 百钱百鸡问题 ” :鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,翁、母、雏各几何 ?

循环结构程序设计,函数体结合嵌套使用,对题意的理解如何设定循环的嵌套

写一个函数,判断一个5位数是不是回文数。例:12321是回文数,个位与万位相同,十位与千位相同。

对于形参、函数返回值类型的定义,定义函数的语法格式的使用理解不到位,使用上有问题

编写一函数,将N*N方阵行列互换。

编程指导及提示:

! N*N方阵用二维数组定义,定义格式如:int array[N][N];

! 二维数组的输入、处理、输出均需用循环的嵌套来控制

! 要实现N*N方阵行列互换关键是观察数组元素下标的变化规律。例一个3*3矩阵为:

1 2 3

4 5 6

7 8 9

行列互换后该矩阵变为:

1 4 7

2 5 8

3 6 9

二维数组如何定义、输入、处理、输出,在编写过程中对二维数组和循环的嵌套结合使用不大熟练,矩阵的置换程序没有思路。

已知数组int num1[20],num2[20]中分别存放了两个20位整数的各个位的值,编写一个程序,求将这两个整数相加的结果。

编程指导及提示:

! 定义三个数组int num1[20],num2[20],num3[21]; num3[21]用于存放结果,因考虑进位故长度多1。

! 循环控制输入num1[20],num2[20]的每一位数,注意都为一位

! 循环控制相加,考虑进位是本题的关键

循环控制输入num[ ]的进位长度多1,循环控制相加,对于进位考虑不到位。

设有4x4的方阵,其中的元素由键盘输入。分别求出主对角线上元素之和、辅对角线上元素之积、方阵中最大的元素。

编程指导及提示:

! N*N方阵用二维数组定义、用二层循环控制输入和输出

! 用二层循环控制处理方阵元素,判定主对角线上元素条件为:if(i==j),判定辅对角线上元素条件为:if(i+j==N-1)、求方阵中最大的元素判定条件为:if(a[i][j]>max)(i,j分别表示二维数组的行列下标)

有n个人围成一圈,顺序排号,从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的人原来排在第几号。

编程指导及提示:

! 以1至n为序给每个人编号,将编号存入数组中

! 按1,2,3报数,当计数变量为3时将退出的人的编号置为0

! 最后数组中编号不为0的即为最后留下

利用随机函数rand,编一个程序给出1~100中的两个整数,让练习者求出两数的和、差、积、整除商,每次计算可以求2次,第1次计算错误提示:“Re-count the time before.”,对了打印“Great!Calculated correctly.”, 2次计算错误则显示“What a pity!Calculation error.” 。

编程指导及提示:

! rand()为随机生成函数,具体语句为:

srand((unsigned)time(NULL));//生成随机数种子

i=rand()%100;//产生100以内的随机数

j=rand()%100; //产生100以内的随机数

还要注意包含头文件#include<stdlib.h>和#include <time.h>

五、实训心得

为期一周的实训,有兴趣却又很苦恼,因为编程本来就是一个需要思维的过程,而且还要编写函数、数组、结构体的东西,就更加让我痛苦了。我清楚自身基础素质较差,在上学期的知识点在掌握不足的情况下,经过一个寒假的时间,遗忘的更多了,初上手的时候感觉摸不到门路,感到非常吃力,大多数时候只能依靠网上查资料和同学的讲解勉强理解几分,通过休息时间在网上寻找相关资料和视频,逐渐能够有一丝头绪。实训过程中,也有很多意想不到的错误,其中有的错误到最后解决的时候却是发现很低级,不过这样的错误多了,在不知不觉中对一些代码更熟悉了起来,并且自身组织代码的能力也得到很大的提升。另外我发现平时学习的知识与实际运用还是有一定的差距,往往我觉得自己掌握的很好或者自己认为很熟练的环节出了问题。现在我懂得了一个东西,书本上的知识只提供方法,但是真正到自己动手操作的时候,还是需要自己去摸索,需要自己去掌握,唯有实践才能检验自己真正的实力。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值