C#程序设计一、实验名称:C#实验二、实验目的:通过上机实际操作将平时课堂所学具体实现,通过该实验来检查自己的学习成功,并且发现平时学习中没有注意到的问题并解决之,从而加深对该门课程的以及C#语言的了解。三、实验步骤:实验一:C#编程环境实验目的:1.熟悉掌握C#开发环境的安装与配置2.熟悉开发环境,编写控制台和窗口两个版本的helloworld范例程序实验内容:实验1-1:编写一个控制台程序,并且输出“helloworld!”相关主要代码:usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespacehello_world{classSY1_2{staticvoidMain(string[]args){Console.WriteLine(HelloWorld!);}}}抓图结果:实验1-2:编写一个Windows应用程序,并且输出“helloworld!”相关主要代码:namespacehello_world2{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoidForm1_Load(objectsender,EventArgse){MessageBox.Show(HelloWorld,MessagefromC#);}}}抓图结果:实验二:C#编程基础实验目的:1.熟悉掌握C#的各种数据类型,常量、变量的表达形式;2.熟悉掌握C#的运算符和表达式;3.熟悉掌握C#的语言,会使用顺序、选择、循环等语句结构编写程序;4.熟悉掌握C#的数组,学会数组的定义、初始化以及数组的应用。实验内容:实验2-1:有红、黄、黑、白四色球各一个,放置在一个编号为1、2、3、4的四个盒子中,每个盒子放置一只球,它们的顺序不知。甲、乙、丙三人猜测放置顺序如下:甲:黑球在1号盒子,黄球在2号盒子;乙:黑球在2号盒子,白球在3号盒子;丙:红球在2号盒子,白球在4号盒子。结果证明甲、乙、丙三人各猜中了一半,给出四色球放置在盒中的情况。相关的主要代码:usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceSY2_1{classProgram{staticvoidMain(string[]args){inta,b,c,d;for(a=1;a=4;a++)for(b=1;b=4;b++)for(c=1;c=4;c++)if(a!=b&&b!=c&&c!=a){d=10-a-b-c;if((c==1&&b==4)&&(a==2&&d==3)){Console.Write(红球放置在{0}号,黄球放置在{1}号,,a,b);Console.WriteLine(黑球放置在{0}号,白球放置在{1}号,c,d);}}Console.Read();}}}抓图结果:实验2-2:采用筛选法求2-64之间的质数。相关主要代码:usingSystem;publicclassTestNumSort{publicstaticvoidMain(){intsieve,w;inti,j,p,k;boolflg=true;sieve=~0x0;p=3;for(i=0;i32;i++){w=0x1i;w=p;j=p;while(j+i32){sieve&=~w;w=p;j+=p;}k=i+1;while(((sievek)&0x01)==0){k++;i++;}p=p+2;}Console.WriteLine(2到64之间的素数有);Console.Write({0,4},2);p=3;w=1;for(i=0;i32;i++){if((sievei&0x01)!=0)Console.Write({0,3},p);p+=2;}Console.WriteLine();Console.Read();}}抓图结果:实验2-3:根据给出的公式编程计算兀的值,直至所加项小于1E-10为止。相关主要代码:usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceSY2_3{classProgram{staticvoidMain(string[]args){doublesum=0.5,t,t1,t2,t3,p=0.5*0.5;intodd=3,even=2,k;t=t1=t2=1.0;t3=1/2.0;while(t1e-10){even+=2;t2=1.0/odd;t1=t1*(odd-2)/(even-2);odd+=2;t3=t3*(1/2.0)*(1/2.0);t=t1*t3*t2;sum+=t;}Console.WriteLine(\nPI={0,10:f8},sum*6);Console.Read();}}}抓图结果:实验2-4:编程进行卡布列克运算。所谓卡布列克运算,是指任意一个四位数,只要它们各个位上的数字不全相同,就有这样的规律:1)把组成这个四位数的四个数字由大到小排列,形成由这四个数字构成的最大数字2)把组成这个四位数的四个数字由小到大排列,形成由这四个数字构成的最小的四位数3)求出以上两数之差,得到一个新的四位数重复以上过程,总能得到最后的结果是6174。相关的主要代码:usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceSY2_4{classProgram{staticvoidMain(string[]args){Console.Write(请输入一个4位整数);strings=Console.ReadLine();intnum=Convert.ToInt32(s);int[]each=newint[4];intmax,min,i,j,temp;while(num!=6174&&num!=0){i=0;while(num!=0){each[i++]=num%10;num=num/10;}for(i=0;i3;i++)for(j=0;j3-i;j++)if(each[j]=each[j+1]){temp=each[j];each[j]=each[j+1];each[j+1]=temp;}min=each[0]*1000+each[1]*100+each[2]*10+each[3];max=each[3]*1000+each[2]*100+each[1]*10+each[0];num=max-min;Console.WriteLine({0}-{1}={2},max,min,num);}Console.Read();}}}抓图的结果:实验2-5:数列A={1,1,3,7,17,41……}有以下性质:a=a=1;a=a+2a(i1)对于给定的n,数列的各个元素值由数列A的元素生成即以a/a的分数形式表示,然后对其进行排序相关的主要代码:usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceSY2_5{classProgram{staticvoidMain(string[]args){int[]A=newint[11];int[,]Fraction=newint[2,11];float[]B=newfloat[10];inti,n,j,pos,temp;floatftemp;A[0]=A[1]=1;Console.Write(\n请输入n(n=10)值:);strings=Console.ReadLine();n=Convert.ToInt32(s);for(i=2;in+1;i++)A[i]=A[i-2]+2*A[i-1];for(i=0;in;i++){B[i]=(float)A[i]/A[i+1];Fraction[0,i]=A[i];Fraction[1,i]=A[i+1];}for(i=0;in-1;i++){for(j=(pos=i)+1;jn;j++)if(B[j]B[pos])pos=j;if(i!=pos){ftemp=B[pos];B[pos]=B[i];B[i]=ftemp;temp=Fraction[0,pos];Fraction[0,pos]=Fraction[0,i];Fraction[0,i]=temp;temp=Fraction[1,pos];Fraction[1,pos]=Fraction[1,i];Fraction[1,i]=temp;}}for(i=0;in;i++)Console.Write({0}/{1},Fraction[0,i],Fraction[1,i]);Console.Read();}}}抓图的结果:实验三:C#面向对象程序基础实验目的:1.加深理解面向对象编程的概念,如类、对象、实例化等;2.熟练掌握类的声明格式,特别是类的成员定义,构造函数,初始化对象等;3.熟练掌握方法的声明,理解并学会使用方法的参数传递,方法的重载等实验内容:实验3-1:阅读程序相关程序代码:usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceSY3_1{classProgram{classCRect{privateinttop,bottom,left,right;publicstaticinttotal_rects=0;publicstaticlongtotal_rect_area=0;publicCRect(){left=top=right=bottom=0;total_rects++;total_rect_area+=getHeight()*getWidth();Console.WriteLine(CRect()Contructingrectanglenumber{0},total_rects);Console.WriteLine(Totalrectangleareasis:{0},total_rect_area);}publicCRect(intx1,inty1,intx2,inty2){left=x1;top=y1;right=x2;bottom=y2;total_rects++;total_rect_area+=getHeight()*getWidth();Console.WriteLine(CRect(int,int,int,int)Constructingrectanglenumber{0},total_rects);Console.WriteLine(Totalrectangleareasis:{0},total_rect_area);}publicCRect(CRectr){left=r.left;right=r.right;top=r.top;bottom=r.bottom;total_rects++;total_rect_area+=getHeight()*getWidth();Console.WriteLine(CRect(CRect&)Constructingrectanglenumber{0},total_rects);Console.WriteLine(Totalrectangleareasis:{0},total_rect_area);}publicintgetHeight(){return(topbottom?top-bottom:bottom-top);}publicintgetWidth(){returnrightleft?right-left:left-right;}publicstaticintgetTotalRects(){returntotal