c课程设计实践报告.docx





《c课程设计实践报告.docx》由会员分享,可在线阅读,更多相关《c课程设计实践报告.docx(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、c 课程设计实践报告 c+课程设计实践报告 班级:83121 姓名:张弛 学号:XX1000491 题目 一、题目描述: 已知银行整存整取存款不同期限的月息利率(采纳复利 方式,即利滚利)分别为 % 期限一年 % 期限二年 月息利率= % 期限三年 % 期限五年 % 期限八年 要求输入存钱的本金和期限(以整数年为单位) ,求到期时能从银行 得到的利息与本金的合计。 提示:可以用嵌套的 if-else 结构或 switch 结构实现,核心函数 pow(1+月利率,月份)。 请思索年份是 四、 六、七或八年以上的状况。 设计思路: (一)运用 switch 选择语句 对应年份 (二)明确核心函数
2、pow 是计算复利的(例如:x 的 n 次方 ) ;由于 是以年为计算期限的,而所给的利率是月利率,所以计算时 应当在年的基础上乘以 12; (三)复利计算就是一种幂运算,I=p*(1+i)n,本金和利率都是变 动的 (四)在除了 1、 2、 3、5 和 8 年之外的其他年份中,要留意“就低 不就高”的原则,尤其是在 8 年之后,也是套用期限八年的利率。 附源程序如下: #include #include void main() int years; float capital,sum; scanf(%f %d,&capital,&years); switch(years) case 1:su
3、m=capital*pow(1+*,12);break; case case 2:sum=capital*pow(1+*,24);break; 3:sum=capital*pow(1+*,36);break; case 4:sum=capital*pow(1+*,48);break; case 5:sum=capital*pow(1+*,60);break; case case case 6:sum=capital*pow(1+*,72);break; 7:sum=capital*pow(1+*,84);break; 8:sum=capital*pow(1+*,96);break; defau
4、lt:sum=capital*pow(1+*,12*years); printf(%f,sum); 题目 二、题目描述: 简洁计算器。用 switch 语句编写一个程序计算表达式: data1 op data2 的值。其中 op 为运算符+、-、*、/。 设计思路: (一)明确计算器是怎样进行计算的; (二) 细微环节, 比如许多地方须要分号, 在遇到字符时, 我们应当用 , 而不是“” ; (三 Switch 语句主要用于多分支选择,此题有+、-、*、/,这就是 选择。运用 switch 每个 case 对应+ - * /符号 程序涉及到至 少三个量,运算符 op 和两个数字;先让用户输入两
5、个数字和运算符, 两个数字的计算在后面的程序中用 swith 结构运行。 运 行 效 果 截 图 : 附源程序如下:#include int main() float data1,data2,c; char op; printf(请输入表达式中两个数字 data1 和 data2); /打印 scanf(%f%c%f,&data1,&op,&data2); /输入 printf(请输入运算符+、-、*、/);/ 打印 switch(op) /switch ()case stick:break; 这个是个选择结构 假如 OP = stick 则执行这一句 假如没有 则执行 default 后面
6、的语句 case +:c=data1+data2;break; case -:c=data1-data2;break; case case *:c=data1*data2;break; /:c=data1/data2;break; default:printf(输入错误);break; printf(%f,c); return 0; 题目三 题目描述:编写程序,用二分法求方程 2x3-4x2+3x-6=0 在(-10,10) 之间的根。 提示: 用 do-while 语句实现。 二分法的计算步骤: (1) 打算 计算 f(x)在有根区间端点处的值 f(a),f(b) (2) 二分 计算 f(x
7、)在区间中点(a+b)/2 处的值 f (3) 推断若 f=0,则即是根,计算过程结束。 否则,检测: A.若 f与 f(a)异号, 则根位于区间内, 这时以(a+b)/2 代替 b; B.若 f与 f(a)同号, 则根位于区间内, 这时以(a+b)/2 代替 a; 反复执行步骤 2 和 3,直到区间长度缩小到允许的误差范围之 内,此时中点(a+b)/2 即为所求的根 设计思路: (一)二分法是指在整个算法中,让计算值无限趋近于根的值,利用 数学学问可知,当了两个点的结果异号时,函数的根就在这两个数之 间,利用二分法可以无限的把根的范围缩小,直到可以确定为止; (二)do-while 是循环语
8、句,先执行一次指定的循环体语句,然后 判别表达式, 当表达式的值为非零 (真) 时, 返回重新执行循环语句, 如此反复,直到表达式的值等于 0(假)为止才结束。 (三)Void main()是声明函数,并且是对主函数的声明。题目所 给的范围是(-10,10) ,因此在声明函数中定义一个 a 和 b 来代替区 间的范围,而用 c 来代指中间指也是最终的结果,在这个程序中 a、b、c 都是随着范围不断改变的变量。假如(-10,10)的范围过大, 就须要循环语句来缩小区间范围, 即 a=c 或 b=c。 当函数值在 (-10,10) 中随意一点取得 0 时,就正是我们所要的结果。循环条件是当区间 a
9、 和 b 的函数值小于精度 。 运行效果截图: 附源程序如下: #include float f(float x) float y; y=2*x*x*x-4*x*x+3*x-6; return y; void main() float a=-10,b=10,c; doc=f(a+b)/2); if(c=0) break; if(c*f(a)0) a=c; else b=c; while(f(b)*f(a) 题目四 题目描述:编写程序,给定一个整数 i,恳求出另一个整数 j,使 i 和 j 在用 8 位二进制表示时互为逆序。例如:给定 i=3 时,应得到 j=192(3 的二进制为:000000
10、11,192 的二进制为 11000000) 。 提示: 十进制整数转换为二进制整数用“除 2 求余”法。 二进制整数转换为十进制整数用“按权相加”法。 设计思路: (一)二进制整数转化为十进制整数用“按权相加”法 (二)二十进制整数转化为二进制整数用“除 2 求余” ,用&转化。 (三)运算符:是指右移一位,a 是指 b 向右移 a 位, 左移一位相当于乘 2 右移 1 位相当于除 2 (四)在交换时,用的是中间法 运行效果截图: 附源程序如下:#include void main() int i,j,s=1,a; printf(请输入一个整数 i:); scanf(%d,&i); for(
11、j=0;j printf(%d,(a1) | (a3) | (a5) | (a7); 题目五 题目描述:编写程序,抓交通肇事犯。 一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事务,但都没 有记住车号,只登记车号的一些特征。甲说:牌照的前两位数字是相 同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是位 数学家,他说:四位的车号刚好是一个整数的平方。依据以上线索求 出车号。 提示: 根据题目的要求,造出一个前两位数相同、后两位数相同且相互 间又不同的整数,然后推断该整数是否是另一个整数的平方。 用穷举法解此题。穷举法是最简洁、最常见的一种程序设计方法, 它充分利用了计算机处理的高速特
12、征。穷举法的关键是要确定穷 举的范围,既不能过分扩大穷举的范围,也不能过分缩小穷举的 范围,否则程序的运行效率会很低,或有可能遗漏正确的结果而 产生错误。 设计思路: (一)11 11 到 11 99 在 99 11 这样 穷举 推断是否一个 数的平方 则是 将这个数开方 取整 再取平方 是否还是原来的数 (二)此题须要满意三个条件:前两个数相同,后两个数相同; 前后两数分别不相同;这个数是一个整数的平方。须要每个条件都 满意,if 才为真。 (三)主要思路是穷举。穷举是指在适当的范围内举出一个数。 运 行 效 果 截 图 : 附源程序如下: #include void main() int
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计实践报告 课程设计 实践 报告

限制150内