杨辉三角实验报告文档格式.docx
《杨辉三角实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《杨辉三角实验报告文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
![杨辉三角实验报告文档格式.docx](https://file1.bdocx.com/fileroot1/2023-2/2/785c3c03-a4f2-4b0f-97e5-8d8ac84778ef/785c3c03-a4f2-4b0f-97e5-8d8ac84778ef1.gif)
3.2总体框图以及功能描述-2-
3.3基本功能实现-2-
4详细设计-2-
4.1数据类型的定义-2-
4.2主要模块的算法描述-3-
5测试分析-5-
6、实现总结-7-
附录(主要源程序清单)-8-
1问题描述
利用VS环境编写一段代码实现一维数组,二维数组以及交错数组输出杨辉三角。
设计要求:
(1)符合课题要求,实现相应功能;
(2)要求界面友好美观,操作方便易行;
(3)注意程序的实用性、安全性,易操作性。
2需求分析
(1)逐行打印出二项展开式(a+b)i的系数,以为杨辉三角就是以这样的数值组成的。
(如下所示)
1
11
121
1331
14641
(2)输入要求:
本程序中,需要用户输入杨辉三角的行数,以创建一个动态的杨辉三角的输出形式,并在文本框中显示出杨辉三角形。
(3)输出要求:
为确保图形的美观输入杨辉三角的级数以12为宜。
3、概要设计
3.1抽象界面设计
利用VS平台,创建一个新项目,设计出杨辉三角运行输出的界面。
(如图所示)
3.2总体框图以及功能描述
3.3基本功能实现
(1)实现一维数组输出杨辉三角
privatevoidbutton1_Click(objectsender,EventArgse)
(2)实现维维数组输出杨辉三角
privatevoidbutton2_Click(objectsender,EventArgse)
(3)实现交错数组输出杨辉三角
privatevoidbutton3_Click(objectsender,EventArgse)
4详细设计
4.1数据类型的定义
(1)一维数组实现杨辉三角的数组定义
int[]a=newint[n];
//定义一维数组,存储杨辉三角值
(2)二维数组实现杨辉三角的数组定义
int[,]a=newint[n,n];
//定义二维数组
(3)交错数组的数组定义
int[][]a=newint[n][];
//定义交错数组,由于杨辉三角的行
//动态,而每一行的数值数不等所以如此定义
4.2主要模块的算法描述
(1)一维数组:
privatevoidbutton1_Click(objectsender,EventArgse)
{
listBox1.Items.Add("
*****一位数组实现*****"
);
intn=System.Convert.ToInt32(textBox1.Text);
inti,j,m=2*n;
int[]a=newint[n];
stringL=newstring('
'
m);
for(i=0;
i<
n;
i++)//i控制着行数,即当前打印到第i行
a[i]=1;
//初始化一行中最后一个元素为1
j=i-1;
//第3行才开始本循环
while(j>
0)
a[j]+=a[j-1];
//赋值前yh[j]实际上是前一行的数据,
//即[i-1]行的数据,所以此处重新赋值yh[j-1]+yh[j],
//赋值后yh[j]才变成当前行需要的数据。
j--;
}
for(j=0;
j<
=i;
j++)//输出一行中的数据
L=L+System.Convert.ToString(a[j])+"
"
;
listBox1.Items.Add(L);
listBox1.Items.Add("
L=newstring('
m-=2);
************************"
(2)二维数组
privatevoidbutton2_Click(objectsender,EventArgse)
*****二维数组实现*****"
inti,j;
int[,]a=newint[n,n];
i++)//i控制行数
a[i,i]=1;
//每一行最右边赋值为1
a[i,0]=1;
//把第1行左边的元素都赋1
for(i=2;
i++)//其余元素的值由杨辉公式计算
for(j=1;
=i-1;
j++)
a[i,j]=a[i-1,j-1]+a[i-1,j];
//杨辉公式
i++)//遍历数组输出杨辉三角形
stringst=newstring('
2*n-2*i);
st+=System.Convert.ToString(a[i,j])+"
listBox1.Items.Add(st);
(3)多维数组
privatevoidbutton3_Click(objectsender,EventArgse)
*****交错数组实现*****"
inti;
int[][]a=newint[n][];
i++)
a[i]=newint[i+1];
for(intj=0;
a[i].Length;
if(j==0||j==i)
a[i][j]=1;
else
a[i][j]=a[i-1][j-1]+a[i-1][j];
2*n-2*i);
for(intk=0;
k<
k++)
st+=System.Convert.ToString(a[i][k])+"
5测试分析
(1)输入杨辉三角行数后,一维数组运行结果
(2)输入杨辉三角行数后,二维数组运行结果
(3)输入杨辉三角行数后,交错数组输出效果
(4)输入行数后,不同方法输出的杨辉三角效果
6、实现总结
平时的实验主要的目的是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。
本次试验主要是编写出杨辉三角,这次实验也是第一次的C#实验,真的是感触良多,这次实验过程中可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次实验我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到了很多问题,由于对C#是刚开始学习,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说在数组……通过这次实验之后,一定把以前所学过的知识重新温故。
这次实验终于顺利完成了,在实验中遇到了很多编程问题,最后在老师的辛勤指导和同学们的热心帮助下,终于游逆而解。
附录(主要源程序清单)
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
namespaceWindowsFormsApplication1
{
publicpartialclassForm1:
Form
publicForm1()
InitializeComponent();
privatevoidbutton1_Click(objectsender,EventArgse)
a[i]=1;
while(j>
privatevoidbutton2_Click(objectsender,EventArgse)
************************"
}}}