程序设计报告参考模板.doc

程序设计报告参考模板.doc

ID:53283661

大小:54.01 KB

页数:6页

时间:2020-04-02

程序设计报告参考模板.doc_第1页
程序设计报告参考模板.doc_第2页
程序设计报告参考模板.doc_第3页
程序设计报告参考模板.doc_第4页
程序设计报告参考模板.doc_第5页
资源描述:

《程序设计报告参考模板.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、HUNANUNIVERSITY程序设计训练报告学生姓名学生学号专业班级指导老师助教年月日目录第6页题1:杨辉三角(ID:)3一、问题描述3二、问题分析3三、算法分析3四、详细设计(从算法到程序)3五、调试与测试4六、分析与总结4第6页题1:杨辉三角(ID:)一、问题描述输入层数n(n<=13),打印n层杨辉三角。二、问题分析杨辉三角是一个等腰三角形的形状,为了保证打印形状,需要逐行打印前导空格和数字。前导空格和数字的个数按照行号进行变化,数字之间需要用一定的空格分隔,特别是当行数较多时,数字格式需要进行对齐,才能保证形状美观。杨辉三角中的每个数字可

2、以是上一行相邻两个数之和,或者每一行数字也是一个二项式系数之和。111121133114641……第6页一、算法分析1.假定行号为row(1≤row≤n),则每行需要打印的前导空格数为n-row。2.每行的数字的个数与行号数相等。如行号为row,则数字为二项式(a+b)m的系数,其中m=row-1,其系数为C(m,j),j=0,..,m,C(m,j)=m!/(j!(m-j)!)。二、详细设计(从算法到程序)1.主模块设计a)本程序可以用循环结构实现,以行号为循环变量,逐行打印;b)每行打印前导空格和数字,由于每行前导空格的数量可以使用通项公式表示,

3、因此可以编写一个独立打印空格的函数,其具体规格为voidprnBlank(intm),而每行的数字同样具有规律性,同理可以使用一个函数来打印每行数字,其具体规格为voidprnDigit(intm);c)每行打印完成之后应打印换行符’’。d)根据上述设计,程序主体框架如下:#includeintmain(){…第6页for(row=1;row<=n;row++){prnBlank(n-row);prnBlank(row-1);printf(“”);}return0;}1.空格打印函数voidprnBlank(intm)根据

4、调用时参数m,循环打印m个空格,由于只是打印,无须返回任何值。2.数字打印函数voidprnDigit(intm)该函数打印(a+b)m的系数,需要用到三个阶乘,编写阶乘函数longfac(intm),考虑到阶乘值尽可能地大,其返回值应该是long类型。在逐个打印c(m,j),j=0,…,m时,为了对齐,使用printf(“%ld”,…)的格式,即每个数之后最好空一格。第6页一、调试与测试1.在调试过程中,需要验证前导空格的个数是否正确,需要验证各个数字的计算是否正确2.输入的层数,设计以下测试数据,并观察打印的结果。a)较小的数,如5b)较大的数

5、,如13c)更大的数,如14、20二、分析与总结1.从测试结果看,当输入较小的层数为5时,能得到漂亮的杨辉三角,且一切正常2.而当输入层数为10时,杨辉的数据是正确的,但格式不整齐,这是由于输出的数据位数不一致所导致3.而当输入层数为14或20时,数据不正确,格式也不能对齐,导致数据不正确的原因是当求阶乘时,当参数较大时,其结果超出了长整型数据所能表示的范围导致溢出。第6页

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。