数组处理Word文档下载推荐.docx
- 文档编号:22936911
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:18
- 大小:559.66KB
数组处理Word文档下载推荐.docx
《数组处理Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数组处理Word文档下载推荐.docx(18页珍藏版)》请在冰豆网上搜索。
*在一维数组的基础上派生出二维数组的处理(由设计者自定)
设计报告要求
1.封面
2.课程设计任务书
3.课程设计报告:
⑴系统总体方案
⑵设计思路和主要步骤
⑶各功能模块和流程图
⑷主要代码
⑸测试说明
⑹心得体会和参考资料
⑺说明
Ø
学生完成课程设计后,提交课程设计报告及软件;
设计报告要求文字通畅,排版规范;
设计报告文字不少于5000字,并装订成册。
版面要求
1.题目用黑体三号,段后距18磅(或1行),居中对齐;
2.标题用黑体四号,段前、段后距6磅(或0.3行);
3.正文用小四号宋体,行距为固定值“20”;
4.标题按“一”、“㈠”、“1”、“⑴”顺序编号。
上机时间安排
星期
周次
一
二
三
四
五
六
日
第17周
2-7
第18周
指导时间地点
上机时间:
双福校区信息技术实验室
课程设计报告:
⑴系统总体方案:
用模板类实现任意数据类型一维数组的基本操作,包括数组的输入、输出、赋值,求最大值、最小值、平均值、方差,数组的倒置、排序,查找,在数组中删除值、插入值;
并在一维数组的基础上派生出二维数组。
并将任意数据的二维数组进行加、减、乘等运算。
以菜单方式实现各类操作,并封装在一个类中
1.定义一个模板类。
其私有数据成员包括,数组x[]及数组的大小。
2.设计它的公有成员函数及其实现其功能的算法。
3.由一维数组派生出一个二维数组。
及其如何将二维数组与一维数组很好的结合起来。
并写出二维数组自身的公有成员函数。
4.定义一个二维数组的对象来分别调用一维数组与二维数组中的成员函数。
并以菜单的形式让用户自行决定他要进行的处理。
1.一维数组:
●数组数据输入………………………………………………………
●数组数据输出………………………………………………………
●数据的平均值输出…………………………………………………
●数据的最大值输出…………………………………………………
●数据的最小值输出…………………………………………………
●数据的方差输出……………………………………………………
●数组数据倒置输出…………………………………………………
●数组数据排序输出…………………………………………………
●数组数据查找………………………………………………………
●数组数据插入………………………………………………………
●数组数据删除………………………………………………………
2.二维数组:
●将一维数组转化为二维数组并输出………………………………
●将本二维数组+另二维数组并输出………………………………
●将本二维数组-另二维数组并输出………………………………
●将本二维数组*另二维数组并输出………………………………
3.主菜单:
1.数组数据输入函数:
template<
classT>
voidShuzu<
T>
:
array_in()
{
inti;
for(i=0;
i<
size;
i++)
{cout<
<
"
x["
i+1<
]="
;
cin>
>
x[i];
}
}
2.数组数据输出函数:
array_out()
for(i=0;
{
cout<
x[i]<
"
cout<
endl;
3.数组数据求平均值:
doubleShuzu<
average()
doubled=0;
for(i=0;
d+=x[i];
return(d/size);
4.数组数据求最大值:
TShuzu<
max()
Tm;
m=x[0];
for(i=1;
if(m<
x[i])
m=x[i];
return(m);
5.数组数据求最小值:
min()
if(m>
6.数组数据求方差:
fangcha()
{
Tsum=0;
doublea=0,ave,fa;
i++)
sum+=x[i];
ave=sum/size;
a+=(ave-x[i])*(ave-x[i]);
fa=a/size;
return(fa);
7.将数组数据倒置输出:
inversion()
Ttemp;
size/2;
{
temp=x[i];
x[i]=x[size-1-i];
x[size-1-i]=temp;
8.将数组数据排序输出:
sort()
inti,j,k;
Tt,m;
size-1;
k=i;
m=x[i];
for(j=i+1;
j<
j++)
if(m<
x[j])
{
m=x[j];
k=j;
}
if(i!
=k)
{
t=x[i];
x[i]=x[k];
x[k]=t;
9.数组数据查找:
find()
inti,flag=0;
Tnum;
请输入要查找的数:
num;
if(num==x[i])
{
flag=1;
break;
}
if(flag)
cout<
找到了,是第"
个数"
else
Nofind!
10.数组数据插入:
*"
insert()
Ty[M+1],n;
inti,m;
请输入要插入数位置:
m;
请输入要插入的数:
n;
if(i==m-1)
y[i]=n;
y[i+1]=x[i];
}
if(i>
m-1)
if(i<
y[i]=x[i];
}
=size;
x[i]=y[i];
size=size+1;
11.数组数据删除:
delet()
Ty[M-1];
请输入要删除数位置:
if(i==m)
y[i-1]=x[i];
m)
size=size-1;
12.将一维数组转化为二维数组并输出:
voiderShuzu<
shu_m_n()
请输入二维数组的行与列:
m>
input()
for(inti=0;
for(intj=0;
x[j+i*n]<
'
'
\n'
13.将本二维数组+另二维数组并输出:
operator+(erShuzu<
m2)
if(m==m2.get_m()&
&
n==m2.get_n())
两个矩阵可以相加!
for(inti=0;
{
for(intj=0;
x[j+i*n]+=m2.get_x(j+i*n);
else
两个矩阵不能相加!
14.将本二维数组-另二维数组并输出:
operator-(erShuzu<
两个矩阵可以相减"
x[j+i*n]-=m2.get_x(j+i*n);
两个矩阵不能相减!
15.将本二维数组*另二维数组并输出:
operator*(erShuzu<
size=m*m2.get_n();
Ty[M][M];
for(intj=0;
m2.get_n();
y[i][j]=0;
if(n==m2.get_m())
两个矩阵可以相乘!
for(i=0;
for(intj=0;
for(intk=0;
k<
k++)
y[i][j]+=((x[n*i+k])*(m2.get_x(m2.get_n()*k+j)));
x[i*m+j]=y[i][j];
n=m2.get_n();
两个矩阵不能相乘!
1.输入数组个数:
6
输入数组类型:
如果是int型请输入1:
如果是double型请输入2:
如果是float型请输入3:
2
2.选1,
3.选2,
4.选9
5.选10
6.选11,把100删除
7.选12
8.选15
七、实验体会
1、学写程序自己一定先要把框架打好,以及程序间的联系一定要想清楚,一些函数功能的实现也要开始想好,这样在编写代码的时候逻辑关系搞的会比较清楚,编写程序的时候不会因为程序庞大而把搞的太复杂,最后自己也搞乱了,搞不清楚变量和函数的关系,终于理解到编程的开始工作很重要,好的开始就成功了一大半。
其实写代码才是时间花的最少的。
2、要不断学习一些新的算法,比如在一维数组中那些功能函数每个函数都是一个算法。
那些小算法必须在此函数之外进行实现后,在放到里面去。
以后学习过程也一定要多积累经验
和方法
3、这次程序设计实训让我深刻的体会到IT这个行业真不是人干的,想干好这一行,首先要把自己变成植物人,没有感觉,不知疼痛,不懂寂寞,不解风情!
路漫漫其修远兮,吾将上下而求索!
4、我这个程序还有些许不足,比如如何实现客户自定义数据类型。
希望老师可以适当修改一下。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数组 处理