您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 刘秋香-c#第八章实验报告
C#实验报告(第七章)计科11205小专(1)定义磁盘类Disk及其派生类HardDisk(硬盘),Flash(闪盘)和CDROM(光盘),在其中定义记录磁盘容量的字段,并通过虚拟方法和重写方法来模拟对磁盘内容的写入和删除。1)主程序代码如下:classDisk{privatedoublecap;publicdoubleCap{get{returncap;}set{if(cap0)cap=0;elsecap=value;}}publicvirtualvoidwrite(){Console.WriteLine(正在向磁盘中写入……);}publicvoiddelete(){Console.WriteLine(正在删除磁盘内容……);}}classHardDisk:Disk{publicoverridevoidwrite(){Console.WriteLine(正在向硬盘中写入内容……);}publicnewvoiddelete(){Console.WriteLine(正在删除硬盘内容……);}}classFlash:Disk{publicoverridevoidwrite(){Console.WriteLine(正在向闪存上写入信息……);}publicnewvoiddelete(){Console.WriteLine(正在删除闪存上信息……);}}classCDROM:Disk{publicoverridevoidwrite(){Console.WriteLine(正在向CDROM上写入信息……);}}classProgram{staticvoidMain(string[]args){HardDiskh=newHardDisk();Flashf=newFlash();CDROMc=newCDROM();h.write();h.delete();f.write();f.delete();c.write();Console.ReadLine();}}(2)设计并编程实现规则平面几何图形(所谓规则及各边相等,各个内角也相等的等边图形)的继承层次,要求定义一个抽象基类shape,由他派生出4个派生类;等边三角形,正方形,等边五边形,等边六边形,并通过抽象的方法来实现计算各图形的面积。1)主程序代码如下:classProgram{staticvoidMain(string[]args){intlength;Sans3=newSan();Sis4=newSi();Wuw5=newWu();Liul6=newLiu();Console.Write(请输入边长:);length=int.Parse(Console.ReadLine());switch(length){case3:{s3.Length=length;Console.WriteLine(正三角形的面积为{0},s3.area());break;}case4:{s4.Length=length;Console.WriteLine(正四边形的面积为{0},s4.area());break;}case5:{w5.Length=length;Console.WriteLine(正五边形的面积为{0},w5.area());break;}case6:{l6.Length=length;Console.WriteLine(正六边形的面积为{0},l6.area());break;}}Console.ReadLine();}}publicabstractclassShape{privatedoublelength;publicdoubleLength{get{returnlength;}set{if(value0)length=0;elselength=value;}}publicabstractdoublearea();}publicclassSan:Shape{publicoverridedoublearea(){returnLength*Length*Math.Sqrt(3)/4;}}publicclassSi:Shape{publicoverridedoublearea(){returnLength*Length;}}publicclassWu:Shape{publicoverridedoublearea(){returnLength*Length*(25+(10*Math.Sqrt(5)))/4;}}publicclassLiu:Shape{publicoverridedoublearea(){returnLength*Length*3*Math.Sqrt(3)/2;}}(3)以委托对象作为方法的参数,对学生类对象分别按照姓名。年龄和年级来比较两个学生对象,实现程序以不同的排列方法来输出学生信息。1)主程序代码如下:publicdelegateintzhuan(Zhuanz1,Zhuanz2);publicclassZhuan{publiczhuanw;privatestringname;publicstringName{get{returnname;}}privateintage;publicintAge{get{returnage;}}privateintgrade;publicintGrade{get{returngrade;}}publicZhuan(stringname,intage,intgrade){this.name=name;this.age=age;this.grade=grade;}publicvoidsort(Zhuan[]Z,zhuanz){intl=Z.Length;for(inti=l-1;i0;i--)for(intj=0;ji;j++)if(z(Z[j],Z[j+1])0){Zhuanw=Z[j+1];Z[j+1]=Z[j];Z[j]=w;}for(intk=0;kl;k++)Console.WriteLine(Z[k]);}publicoverridestringToString(){returnstring.Format({0}{1}岁{2}年级,name,age,grade);}publicintZname(Zhuanz1,Zhuanz2){returnz1.Name.CompareTo(z2.Name);}publicintZage(Zhuanz1,Zhuanz2){returnz1.Age-z2.Age;}publicintZgrade(Zhuanz1,Zhuanz2){returnz1.Grade-z2.Grade;}}classProgram{staticvoidMain(string[]args){ZhuanW=newZhuan(,2,2);Zhuan[]Z=newZhuan[6];Z[0]=newZhuan(魏巍,25,1);Z[1]=newZhuan(小专,21,0);Z[2]=newZhuan(小娇,20,2);Z[3]=newZhuan(乐平,22,3);Z[4]=newZhuan(大鹏,22,4);Z[5]=newZhuan(桂荣,21,5);Console.WriteLine(请输入排列方式(1【姓名】或2【年龄】或3【年级】):);ints=int.Parse(Console.ReadLine());switch(s){case1:W.w=newzhuan(W.Zname);W.sort(Z,W.w);break;case2:W.w=newzhuan(W.Zage);W.sort(Z,W.w);break;case3:W.w=newzhuan(W.Zgrade);W.sort(Z,W.w);break;}Console.ReadLine();}}(4)在第七章习题的设计题(4)的book类中,添加每卖出一份图书时,就触发一个事件。在订购着中处理该事件,输出销售数据信息。1)主程序代码如下:publicdelegatevoidSaleDelegate(boolsold);classProgram{staticvoidMain(string[]args){BookSalessale1=newBookSales();Bookbook1=newBook(我是小笨蛋,桂荣,12);Bookbook2=newBook(七里香,周杰伦,1314.520);Console.WriteLine(书名:{0},作者:{1},库存数量:{2}\n,book1.Title,book1.Author,book1.Count);Console.WriteLine(书名:{0},作者:{1},价格:{2}\n,book2.Title,book2.Author,book2.Price);book1.Sold=true;book1.Count-=1;sale1.sale(book1);book1.ChangeSold();Console.WriteLine(\n书名:{0},作者:{1},库存数量:{2},book1.Title,book1.Author,book1.Count);Console.ReadLine();}}publicclassBook{privatestringtitle;publicstringTitle{get{returntitle;}set{title=value;}}privatestringauthor;publicstringAuthor{get{returnauthor;}set{author=value;}}privatedoubleprice;publicdoublePrice{get{returnprice;}set{if(value0)price=0;elseprice=value;}}privateintcount;publicintCount{get{returncount;}set{if(value0)count=0;elsecount=value;}}privateboolsold=false;publicboolSold{get{returnsold;}set{sold=value;}}publicBook(stringtitle,stringauthor,doubleprice){this.title=title;this.author=author;this.price=price;}publicBook(stringtitle,stringauthor,intcount){this.title=title;this.author=author;this.count=count;}publiceventSaleDelegateOnSale;publicvoidChangeSold(){if((OnSale!=null)&&(sold==true))OnSale(sold);}}classBookSales{publicvoidsale(Bookbook){book.OnSale+=newSaleDelegate(book_OnSale);}voidbook_OnSale(boolsold){Console.WriteLine({0}售出1本,DateTime.Now);}}
本文标题:刘秋香-c#第八章实验报告
链接地址:https://www.777doc.com/doc-5239879 .html