实验内容和答案.docx

上传人:b****0 文档编号:10036400 上传时间:2023-05-23 格式:DOCX 页数:21 大小:19.83KB
下载 相关 举报
实验内容和答案.docx_第1页
第1页 / 共21页
实验内容和答案.docx_第2页
第2页 / 共21页
实验内容和答案.docx_第3页
第3页 / 共21页
实验内容和答案.docx_第4页
第4页 / 共21页
实验内容和答案.docx_第5页
第5页 / 共21页
实验内容和答案.docx_第6页
第6页 / 共21页
实验内容和答案.docx_第7页
第7页 / 共21页
实验内容和答案.docx_第8页
第8页 / 共21页
实验内容和答案.docx_第9页
第9页 / 共21页
实验内容和答案.docx_第10页
第10页 / 共21页
实验内容和答案.docx_第11页
第11页 / 共21页
实验内容和答案.docx_第12页
第12页 / 共21页
实验内容和答案.docx_第13页
第13页 / 共21页
实验内容和答案.docx_第14页
第14页 / 共21页
实验内容和答案.docx_第15页
第15页 / 共21页
实验内容和答案.docx_第16页
第16页 / 共21页
实验内容和答案.docx_第17页
第17页 / 共21页
实验内容和答案.docx_第18页
第18页 / 共21页
实验内容和答案.docx_第19页
第19页 / 共21页
实验内容和答案.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

实验内容和答案.docx

《实验内容和答案.docx》由会员分享,可在线阅读,更多相关《实验内容和答案.docx(21页珍藏版)》请在冰点文库上搜索。

实验内容和答案.docx

实验内容和答案

实验三

1.编程实现数组的属性和方法

a)getLength()

b)Rank

c)Length

d)Sort()

e)Copy()

classSample

{

publicstaticvoidMain()

{

stringstr1="abcdasdasda";

Console.WriteLine("1)str1='{0}'",str1);

Console.WriteLine(str1.Length);

Console.WriteLine("Copy...");

stringstr2=String.Copy(str1);

Console.WriteLine("2)str2='{0}'",str2;

int[,]a=newint[,]{{10,11},{12,11},{11,22}};

Console.WriteLine(a.Length);

Console.WriteLine(a.GetLength(0));

Console.WriteLine(a.Rank);

Console.Read();

2.枚举类型题目

classProgram

{enumdirection{east=1,north,south,west}

structname

{publicintnumber;publicintdistance;}

staticvoidMain(string[]args)

{nameq;q.number=0;q.distance=0;

Console.WriteLine("请输入方向");

q.number=Convert.ToInt32(Console.ReadLine());

Console.WriteLine("请输入距离");

q.distance=Convert.ToInt32(Console.ReadLine());

directionnumber=(direction)q.number;

Console.WriteLine("您输入的方向是{0},您输入的距离是{1}",number,q.distance);

Console.Read();

}

}

3.编程实现:

12+22+…+2002

(实现过程中请使用foreach)

classProgram

{

staticvoidMain(string[]args)

{

int[]p=newint[200];

intsum=0;

for(inti=1;i<=200;i++)

p[i-1]=i*i;

foreach(intiinp)

{

sum+=i;

}

Console.WriteLine(sum);

Console.Read();

}

}

4.使用多维数组实现以下表格,统计每个系各个职称的平均教师人数,以及每个职称在各个系的平均教师人数。

计算机

英语

中文

思政

教授

4

5

2

4

讲师

9

10

8

9

助教

11

9

7

10

classProgram

{

staticvoidMain(string[]args)

{

int[,]sum={{4,5,2,4},{9,10,8,9},{11,9,7,10}};

string[]coureses={"计算机","英语","中文","思政"};

string[]teacher={"教授","讲师","助教"};

ints=0;

Console.WriteLine("各职称\t\t平均人数");

for(inti=0;i

{

s=0;

for(intj=0;j

(1);j++)

s+=sum[i,j];

sole.WriteLine("{0}\t\t{1}",coureses[i],s/sum.GetLength

(1));

}

Console.WriteLine("\n\n个系数\t\t平均人数");

for(inti=0;i

(1);i++)

{

s=0;

for(intj=0;j

s+=sum[j,i];

Console.WriteLine("{0}\t{1}",teacher[i],s/sum.GetLength(0));

}

Console.Read();

}

}

实验四

1.优化上次的枚举题目,要求用户输入的方向一定是在1-4之间,否则提示用户继续输入,直到用户输入正确为止。

classProgram

{

structGPS

{

publicobjectx;

publicdoubley;

}

enumdisrection{north=1,south,east,west}

staticvoidMain(string[]args)

{

Console.WriteLine("1)north,\n2)south,\n3)east,\n4)west,");

GPSt;

Console.WriteLine("你将有五次输入机会(数字为1—4的正整数):

");

for(inti=1;i>0;i++)

{

inta=Convert.ToInt16(Console.ReadLine());

if(a>0&&a<5)

{

Console.WriteLine("请输入距离:

");

doubleb=Convert.ToDouble(Console.ReadLine());

t.x=(disrection)a;

t.y=b;

Console.WriteLine("您所在的方位是:

{0},距离为:

{1}KM!

!

!

",t.x,t.y);

i=-1;

}

elseConsole.WriteLine("请重新输入一个数:

");

}

Console.ReadKey();

}

}

2.试试看:

随机产生5个数,求其中最大值。

(提示:

Randomnumber=newRandom();

number.Next()产生下一个数)

classProgram

{staticvoidMain(string[]args)

{int[]s=newint[5];//s数组中存放着需要的数字

Randomnumber=newRandom();

for(inti=0;i<5;i++)//遍历数组显示结果

{s[i]=number.Next();

Console.WriteLine(s[i]);}

intmax=s[0];

for(inti=1;i<=4;i++)

{if(s[i]>=max)

{max=s[i];}

}

Console.WriteLine(max);

Console.ReadKey();}}}

3.求一个3阶数字矩阵对角线的和,数字矩阵如下:

123

456

789

要求先显示这个矩阵,然后再显示结果,此例结果应该为25.

classProgram

{staticvoidMain(string[]args)

{

inti,j,sum=0;

int[,]a={{1,2,3},{4,5,6},{7,8,9}};

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

{Console.Write("{0}",a[i,j]);

Console.Write("");

}

Console.Write("\n");

}

for(intz=0;z<3;z++)

sum=sum+a[z,z];

sum=sum+a[0,2];

sum=sum+a[2,0];

Console.WriteLine("{0}",sum);

Console.ReadKey();

}

}

实验六

1.定义两个整型变量i=1,j=2,通过调用swap(intx,inty)来交换这两个变量的值,使得在主函数中输出交换后的值:

i=2,j=1.

classswap

{

publicinti;

publicintj;

publicswap(intx,inty)

{

j=x;

i=y;

}

publicstringDisplay()

{

returnString.Format("i={0},j={1}",i,j);

}

}

classProgram

{

staticvoidMain(string[]args)

{

swapswaps=newswap(1,2);

Console.WriteLine(swaps.Display());

Console.ReadKey();

}

}

}

2.定义一个数组sores={95,98,89,69,100,78,60,68,49},通过调用MaxMinScore(int[]s)这个方法返回数组中的最大值和最小值,并在主函数中输出。

classsores

{

publicvoidMaxMinScore(int[]s,outintmax,outintmin)

{

max=s[0];

min=s[0];

for(inti=1;i

{if(max

max=s[i];

elseif(min>s[i])

min=s[i];

}

}

}

classProgram

{

staticvoidMain(string[]args)

{

int[]sores={95,98,89,69,100,78,60,68,49};

soresa=newsores();

intm,n;

a.MaxMinScore(sores,outm,outn);

Console.WriteLine("最高分为{0}",m);

Console.WriteLine("最低分为{0}",n);

Console.ReadKey();

}

 

}

}

 

3.已知整型数组a={1,2,3};要求调用函数F(),输出a的长度以及a中的各个元素,当整型数组变为b={10,20,30,40},再次调用函数F(),输出b的长度以及b中的各个元素.(params运用)

classProgram

{

publicstaticvoidF(paramsint[]args)

{

Console.WriteLine("个数:

{0}",args.Length);

foreach(intiinargs)Console.Write("{0}",i);

Console.WriteLine();

Console.ReadKey();

}

staticvoidMain()

{

int[]a={1,2,3};

F(a);

F(10,20,30,40);

}

}

4.使用索引器初始化MyClass类中的publicstring[]FriendName=newstring[4]这个字段以及输出这个数组里的每一个元素。

classProgram

{

staticvoidMain(string[]args)

{

Testt=newTest();

t[0]="小红";

t[1]="小黑";

t[2]="小绿";

t[3]="小桃";

for(inti=0;i<4;i++)

{

Console.WriteLine(t[i]);

}

}

}

classTest

{

publicstring[]myData=newstring[4];

publicstringthis[intindex]

{

get{returnmyData[index];}

set{myData[index]=value;}

}

}

classMyClass

{

publicstring[]FriendName=newstring[4];

publicstringthis[intn]

{

get{returnFriendName[n];}

set{FriendName[n]=value;}

}

}

 

试一试:

试编程实现使用非整数下标访问索引器,在主函数中赋值如下:

tt["som"]=1234;

并在控制台输出这个值。

实验七

1.编写代码,定义一个基类MyClass,其中包含虚拟方法GetString().这个方法应返回存储在受保护字段myString中的字符串,该字段可以通过只写公共属性ContainedString来初始化。

(初始化请通过控制台由用户来输入)

2.从类MyClass中派生一个类MyDerivedClass.重写GetString()方法,使用该方法的基类执行代码从基类中返回一个字符串,但在返回的字符串中添加文本”outputfromderivedclass”.

 

classProgram

{

staticvoidMain(string[]args)

{

MyDerivedClasscc=newMyDerivedClass();

MyClassss=cc;

ss.ContainedString=Console.ReadLine();

Console.WriteLine(ss.GetString());

Console.Read();

}

classMyClass

{

protectedstringmyString;

publicvirtualstringGetString(){returnmyString;}

publicstringContainedString{set{myString=value;}}

}

classMyDerivedClass:

MyClass

{

publicoverridestringGetString()

{returnbase.GetString()+"(outputfromderivedclass)";}

}}

3.利用多态性计算圆和三角形的面积以及周长。

(半径、底以及高的值都通过实例化派生类的同时来指定)

classProgram

{

staticvoidMain(string[]args)

{Circlecc=newCircle

(1);

Shapess=cc;

Console.WriteLine("圆面积:

{0}",ss.GetArea());

Console.WriteLine("圆周长:

{0}",ss.GetPerimeter());

Cmjff=newCmj(1,3);

Smjmj=ff;

Console.WriteLine("三角形面积:

{0}",mj.Getmj());

Czczz=newCzc(1,2,3);

Szczc=zz;

Console.WriteLine("三角形周长:

{0}",zc.Getzc());

Console.ReadKey();

}}

classShape

{protecteddoubleradius;

publicShape(doubler){radius=r;}

publicvirtualdoubleGetArea(){return0;}

publicvirtualdoubleGetPerimeter(){return0;}

publicvirtualstringType{get{return"Shape";}}

publicstringDisplay()

{returnString.Format(Type,GetArea(),GetPerimeter());

}}

classCircle:

Shape

{publicCircle(doubler):

base(r){}

publicoverridedoubleGetArea()

{returnMath.PI*radius*radius;

}

publicoverridedoubleGetPerimeter()

{returnMath.PI*radius*2;

}

publicoverridestringType

{get

{return"圆";}}}

classSmj

{protecteddoubledd,hh;

publicSmj(doubled,doubleh){dd=d;hh=h;}

publicvirtualdoubleGetmj(){return0;}

publicvirtualdoubleGetzc(){return0;}

publicvirtualstringType{get{return"Smj";}}

publicstringDisplay()

{returnString.Format(Type,Getmj());}}

classCmj:

Smj

{publicCmj(doubled,doubleh):

base(d,h){}

publicoverridedoubleGetmj()

{returndd*hh/2;}

publicoverridestringType

{get

{return"三角形";}

}}

classSzc

{protecteddoubleaa,bb,cc;

publicSzc(doublea,doubleb,doublec){aa=a;bb=b;cc=c;}

publicvirtualdoubleGetzc(){return0;}

publicvirtualstringType{get{return"Smj";}}

publicstringDisplay()

{returnString.Format(Type,Getzc());}}

classCzc:

Szc

{publicCzc(doublea,doubleb,doublec):

base(a,b,c){}

publicoverridedoubleGetzc()

{returnaa+bb+cc;}

publicoverridestringType

{get

{return"三角周长";}}}

4.利用抽象方法和抽象类编程实现圆和正方形的面积。

(半径、长、宽的值通过实例化派生类的同时来指定)

实验八

1.试着编程实现使用接口实现多态性:

车辆有很多种,有自行车、三轮车、吉普车,当是自行车时,能够知道它有二个轮子,当是三轮车时能够知道它有三个轮子,而当是吉普车时,有四个轮子。

classProgram

{

publicstaticvoidMain()

{

cheliangcl=newbicyle();

cl.wheel();

cl=newsanluan();

cl.wheel();

cl=newjeep();

cl.wheel();

Console.ReadKey();

}

}

interfacecheliang

{

voidwheel();

}

classbicyle:

cheliang

{

publicvoidwheel()

{

Console.WriteLine("thisistwowheels");

}

}

classsanluan:

cheliang

{

publicvoidwheel()

{

Console.WriteLine("thisisthreewheels");

}

}

classjeep:

cheliang

{

publicvoidwheel()

{

Console.WriteLine("thisisfourwheels");

}

}

2.定义一个泛型类栈Stack,包含四个成员:

一个私有的数组items,一个pop方法,一个push方法实现进栈、出栈,一个构造函数,用来对数组items的大小进行初始化。

接着在主函数中进行调用,第一次压栈:

4,8,然后分别出栈,第二次压栈“aa”,”bb”,然后分别出栈。

classProgram

{

publicstaticvoidMain()

{

Stackstack=newStack(100);

stack.Push

(2);

stack.Push(4);

Console.WriteLine(stack.Pop());

Console.WriteLine(stack.Pop());

Stackstack2=newStack(100);

stack2.Push("aa");

stack2.Push("bb");

Console.WriteLine(stack2.Pop());

Console.WriteLine(stack2.Pop());

Conso

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2