实验3cC#程序设计.docx
《实验3cC#程序设计.docx》由会员分享,可在线阅读,更多相关《实验3cC#程序设计.docx(20页珍藏版)》请在冰豆网上搜索。
![实验3cC#程序设计.docx](https://file1.bdocx.com/fileroot1/2022-12/12/39055ed6-b1b8-41dc-8baf-e04bc40e0990/39055ed6-b1b8-41dc-8baf-e04bc40e09901.gif)
实验3cC#程序设计
实验报告三
姓名
张凤强
学号
0907052201
系别
计算机
班级
2
专业
软件工程
实验日期
2011-3-28
课程名称
C#程序设计
指导教师
肖蕾
一、实验名称:
实验3
二、实验目的:
1.掌握数组的声明实例化和初始化
2.掌握数组元素的引用
3.掌握一位数组的操作
4.掌握二维数组的操作
5.了解System.array累常用方法和属性的使用
6.了解指针的基本操作
实验4-1求若干学生的平均升高最高身高最低身高以及高于平均身高的人数
实验要求:
已知学生的身高求学生的平均升高最高身高最低身高以及高于平均身高的人数
实验4-2统计各分数段学生的人数和百分比
实验要求:
已知学生的英语成绩求各分数段学生的人数和百分比
实验4-3冒泡排序法
实验要求:
产生随机数利用冒泡法排序
实验4-4选择法排序
实验要求:
对学生的成绩选择法排序
实验4-5两个矩阵相加和相减
实验要求:
随机产生两个矩阵对矩阵要相加和相减
实验4-6打印杨辉三角
实验要求:
打印出杨辉三角
实验4-7使用System.array方法操作数组
实验要求:
使用System.array方法操作数组并排序
四、实验材料、工具、或软件
WindowsXPProfessionalSP3
VisualStudio2005
五、实验步骤、结果(或记录)
1。
求100-300之间不能被3整除的数并显示(每行显示5个)
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
namespace被三整除
{
classProgram
{
staticvoidMain(string[]args)
{
intn,num=0;
Console.WriteLine("100~~300被三整除的数:
");
for(n=100;n<301;n++)
{
if(n%3!
=0)
{
num++;
Console.Write("{0,5}",n);
if(num%5==0)Console.WriteLine();
}
}
Console.ReadKey();
}
}
}
代码
结果
2。
利用循环求1-100的和,以及1-100中所有奇数、偶数的和,并将结果显示。
代码
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
namespace偶数的和
{
classProgram
{
staticvoidMain(string[]args)
{
intnum1=0,num2=0,num=0;
for(inti=1;i<101;i++)
{
num=num+i;
if(i%2==0)
{
num1=num1+i;
}
else
{
num2=num2+i;
}
}
Console.WriteLine("1~100之和为:
{0}",num);
Console.WriteLine("偶数之和为:
{0}",num1);
Console.WriteLine("奇数之和为:
{0}",num2);
Console.ReadKey();
}
}
}
结果
3。
.实现一个简单的菜单程序,运行时显示“MENU:
A(add) D(select)S(sort)Q(quit),Selectone:
”
提示用户输入,A表示增加,D表示删除,S表示排序,Q表示退出,输入为A,D,S时分别提示“数据已经增加、删除、排序。
”输入为Q时程序结束。
代码
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
namespace菜单程序
{
classProgram
{
staticvoidMain(string[]args)
{
intflag=0;
while(flag!
=1)
{
Console.WriteLine("MENU:
A(add)D(delect)S(sort)Q(quit),Selectone:
");
Console.WriteLine("inputyourselect");
charch=char.Parse(Console.ReadLine());
switch(ch)
{
case'A':
Console.WriteLine("数据已增加");break;
case'D':
Console.WriteLine("数据已删除");break;
case'S':
Console.WriteLine("数据已排序");break;
case'Q':
Console.WriteLine("退出程序¨°");flag=1;Environment.Exit(0);break;
}
}
Console.ReadKey();
}
}
}
结果
实验4-1求若干学生的平均升高最高身高最低身高以及高于平均身高的人数
代码:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
namespaceConsoleApplication1
{
classProgram
{
staticvoidMain(string[]args)
{
int[]height=newint[10]{156,150,167,178,180,176,173,154,155,158};
inti,sumHeight,avgHeight,maxHeight=0,minHeight=500,overAvg=0;
Console.WriteLine("学生身高如下:
");
for(i=0;i<10;i++)
Console.Write("{0,4}",height[i]);
for(i=0;i<10;i++)
{
sumHeight+=height[i];
if(height[i]>maxHeight)maxHeight=height[i];
if(height[i]}
avgHeight=sumHeight/10;
for(i=0;i<10;i++)
{
if(height[i]>avgHeight)overAvg++;
}
Console.WriteLine("\n平均身高={0},最高身高={1},最低身高={2}",avgHeight,maxHeight,minHeight);
Console.WriteLine("高于平均身高的学生人数={0}",overAvg);
Console.ReadKey();
}
}
实验结果:
实验4-2统计各分数段学生的人数和百分比代码:
结果:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
namespaceConsoleApplication1
{
classProgram
{
staticvoidMain(string[]args)
{
int[]score=newint[10]{80,90,67,89,78,85,45,69,77,95};
inti,ANum=0,BNum=0,CNum=0,DNum=0;
Console.WriteLine("学生成绩如下:
");
for(i=0;i<10;i++)
Console.Write("{0,4}",score[i]);
for(i=0;i<10;i++)
{
switch(score[i]/10)
{
case10:
case9:
ANum++;
break;
case8:
BNum++;
break;
case7:
case6:
CNum++;
break;
default:
DNum++;
break;
}
}
Console.WriteLine("\n优(90~100)分数段的学生人数={0},所占百分比={1:
#{},##%}",ANun,ANum/10.0);
Console.WriteLine("良(80~89)分数段的学生人数={0},所占百分比={1:
#{},##%}",BNun,BNum/10.0);
Console.WriteLine("中(60~79)分数段的学生人数={0},所占百分比={1:
#{},##%}",CNun,CNum/10.0);
Console.WriteLine("差(0~59)分数段的学生人数={0},所占百分比={1:
#{},##%}",DNun,DNum/10.0);
Console.ReadKey();
}}
}
实验4-3冒泡排序法
代码
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
namespaceConsoleApplication2
{
classProgram
{
publicstaticvoidDisplayMatrix(int[]A)
{
foreach(intiinA)Console.Write("{0,4}",i);
Console.WriteLine();
}
staticvoidMain(string[]args)
{
inti,t;
int[]A=newint[10];
RandomrNum=newRandom();
for(i=0;iConsole.WriteLine("原-始º?
数ºy组Á¨¦:
êo");
DisplayMatrix(A);
intN=A.Length;
for(intloop=1;loop<=N-1;loop++)
{
for(i=0;i<=N-1-loop;i++)
if(A[i]{
t=A[i];
A[i]=A[i+1];
A[i+1]=t;
}
}
Console.WriteLine("降¦Ì序¨°数ºy组Á¨¦");
DisplayMatrix(A);
Console.ReadKey();
}
}
}
}
}
结果
实验4-4选择法排序
代码
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
namespaceConsoleApplication1
{
classProgram
{
publicstaticvoidDisplayMatrix(int[]A)
{
foreach(intiinA)Console.Write("{0,4}",i);
Console.WriteLine();
}
staticvoidMain(string[]args)
{
inti,t,MaxI;
int[]A=newint[10];
RandomrNum=newRandom();
for(i=0;iConsole.WriteLine("原始数组:
");
DisplayMatrix(A);
intN=A.Length;
for(intloop=0;loop<=N-2;loop++)
{
MaxI=loop;
for(i=loop;i<=N-1;i++)
if(A[i]>A[MaxI])
MaxI=i;
t=A[loop];
A[loop]=A[MaxI];
A[MaxI]=t;
}
Console.WriteLine("降序数组:
");
DisplayMatrix(A);
Console.ReadLine();}
}
结果
实验4-5两个矩阵相加和相减
代码:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
namespaceConsoleApplication1
{
classProgram
{
publicstaticvoidDisplayMatrix(int[,]A)
{
for(inti=0;i{
for(intj=0;jConsole.Write("{0,4}",A[i,j]);
Console.WriteLine();
}
}
staticvoidMain(string[]args)
{
inti,j;
int[,]A=newint[4,4];
int[,]B=newint[4,4];
int[,]C=newint[4,4];
int[,]D=newint[4,4];
RondomrNum=newRondom();
for(i=0;i<4;i++)
for(j=0;j<4;j++)
A[i,j]=rNum.Next(10,101);
Console.WriteLine("数组A上的内容:
");DisplayMatrix(A);
for(i=0;i<4;i++)
for(j=0;j<4;j++)
B[i,j]=rNum.Next(10,101);
Console.WriteLine("数组B上的内容:
");DisplayMatrix(B);
Console.WriteLine("上三角形式显示数组A的内容:
");
for(i=0;i<4;i++)
{
for(intk=0;k
for(j=i;j<4;j++)
Console.Write("{0,4}",A[i,j]);
Console.WriteLine();
}
Console.WriteLine("下三角形式显示数组A的内容:
");
for(i=0;i<4;i++)
{
for(j=0;j
Console.Write("{0,4}",B[i,j]);
Console.WriteLine();
}
for(i=0;i<4;i++)
for(j=0;j<4;j++)
C[i,j]=A[i,j]+B[i,j];
Console.WriteLine("数组A和B相加之和:
");
DisplayMatrix(C);
for(i=0;i<4;i++)
for(j=0;j<4;j++)
C[i,j]=A[i,j]-B[i,j];
Console.WriteLine("数组A和B相加之差:
");
DisplayMatrix(D);
Console.ReadKey();
}}}
}
结果:
实验4-6打印杨辉三角
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
namespaceConsoleApplication1
{
classProgram
{
staticvoidMain(string[]args)
{
int[,]A=newint[10,10];
inti,j;
for(i=0;i<10;i++)
for(j=0;j<=i;j++)
A[i,j]=1;
for(i=0;i<10;i++)
for(j=0;j<=i;j++)
{
A[i,j]=A[i-1,j]+A[i-1,j-1];
}
for(i=0;i<10;i++)
{
for(j=0;j<=i;j++)Console.Write("{0,5}",A[i,j]);
Console.WriteLine();
}
Console.ReadKey();
}
}}
}
结果
实验4-7使用System.array方法操作数组
代码:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
namespaceConsoleApplication1
{
classProgram
{
?
staticvoidMain(string[]args)
{
inti;
int[]A={80,90,67,89,78,85,45,69,77,95};
Console.WriteLine("数组A的维数(即秩rank)":
{0},A.Rank);
Console.WriteLine("数组A的长度(元素总数)":
{0},A.Length);
Console.WriteLine("数组A的内容:
");
//A.Length==A.GetLength(0)
for(i=0;iConsole.Write("{0,4}",A[i]);
Array.Sort(A);
Console.WriteLine("\N数组A排序后的内容:
");
for(i=0;iConsole.Write("{0,4}",A[i]);
Array.Reverse(A);
Console.WriteLine("\N数组A排序反转后的内容:
");
for(i=0;iConsole.Write("{0,4}",A[i]);
Console.ReadKey();
}}
}
结果
实验4-8
代码usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
namespaceConsoleApplication1
{
classProgram
{
publicstaticvoidswap(int*pa,int*pb)
{
intt;
t=*pa;
*pa=*pb;
*pb=t;
}
staticvoidMain(string[]args)
{
inta,b,c;
int*pa,pb,pc;
Console.Write("请输入整数a:
");
Strings=Console.ReadLine();
a=int.Parse(s);
Console.Write("请输入整数b:
");
s=Console.ReadLine();
b=int.Parse(s);
Console.Write("请输入整数c:
");
s=Console.ReadLine();
c=int.Parse(s);
Console.WriteLine("原始数据:
a={0},b={1},c={2}",a,b,c);
pa=&a;pb=&b;pc=&c;
if(*pa>*pb)swap(pa,pb);
if(*pa>*pc)swap(pa,pc);
if(*pb>*pc)swap(pb,pc);
Console.WriteLine("升序排序:
a={0}b={1},c={2}",a,b,c);
Console.ReadKey();
}
}}
}
六、实验过程中存在问题和解决办法
没有问题
七、意见和建议
八、教师评语(或成绩)
教师签字:
年月日
备注:
实验报告的命名格式为:
学号-姓名-实验序号。
如805052103-刘闽-实验一