C#实验报告(第七章) 计科11205 小专
(1)定义磁盘类Disk及其派生类HardDisk(硬盘),Flash(闪盘)和CDROM(光盘),在其中定义记录磁盘容量的字段,并通过虚拟方法和重写方法来模拟对磁盘内容的写入和删除。
1) 主程序代码如下:
class Disk {
private double cap; public double Cap { get
{ return cap;} set
{if(cap<0) cap=0; else cap=value;} }
public virtual void write() {
Console.WriteLine(\正在向磁盘中写入……\); }
public void delete() {
Console.WriteLine(\正在删除磁盘内容……\) ; } }
class HardDisk : Disk {
public override void write() {
Console.WriteLine(\正在向硬盘中写入内容……\); }
public new void delete() {
Console.WriteLine(\正在删除硬盘内容……\) ; } }
class Flash : Disk {
public override void write() {
Console.WriteLine(\正在向闪存上写入信息……\); }
public new void delete() {
Console.WriteLine(\正在删除闪存上信息……\); } }
class CDROM : Disk {
public override void write() {
Console.WriteLine(\正在向CDROM上写入信息……\);
} } class Program {
static void Main(string[] args) {
HardDisk h = new HardDisk(); Flash f = new Flash(); CDROM c = new CDROM(); h.write(); h.delete(); f.write(); f.delete(); c.write();
Console.ReadLine();}}
(2)设计并编程实现规则平面几何图形(所谓规则及各边相等,各个内角也相等的等边图形)
的继承层次,要求定义一个抽象基类shape,由他派生出4个派生类;等边三角形,正方形,等边五边形,等边六边形,并通过抽象的方法来实现计算各图形的面积。
1) 主程序代码如下: class Program {
static void Main(string[] args) {
int length;
San s3 = new San(); Si s4 = new Si(); Wu w5= new Wu(); Liu l6 = new Liu();
Console.Write(\请输入边长:\);
length = int.Parse(Console.ReadLine()); switch (length) {
case 3: {
s3.Length = length;
Console.WriteLine(\正三角形的面积为{0}\, s3.area()); break; } case 4: {
s4.Length = length;
Console.WriteLine(\正四边形的面积为{0}\, s4.area()); break; } case 5: {
w5.Length = length;
Console.WriteLine(\正五边形的面积为{0}\, w5.area()); break; } case 6:
{
l6.Length = length;
Console.WriteLine(\正六边形的面积为{0}\, l6.area()); break;
} }
Console.ReadLine(); } }
public abstract class Shape {
private double length; public double Length {
get { return length; } set {
if (value < 0) length = 0;
else length = value; } }
public abstract double area(); }
public class San : Shape {
public override double area() {
return Length * Length * Math.Sqrt(3) / 4; } }
public class Si : Shape {
public override double area()
{ return Length * Length; } }
public class Wu : Shape {
public override double area() {
return Length * Length * (25 + (10 * Math.Sqrt(5))) / 4; } }
public class Liu : Shape {
public override double area() {
return Length * Length * 3 * Math.Sqrt(3) / 2; } }
(3)以委托对象作为方法的参数,对学生类对象分别按照姓名。年龄和年级来比较两个学生对象,实现程序以不同的排列方法来输出学生信息。
1)主程序代码如下:
public delegate int zhuan(Zhuan z1, Zhuan z2); public class Zhuan {
public zhuan w; private string name; public string Name {
get { return name; } }
private int age; public int Age {
get { return age; } }
private int grade; public int Grade {
get { return grade; } }
public Zhuan(string name, int age, int grade) {
this.name = name; this.age = age; this.grade = grade; }
public void sort(Zhuan[] Z, zhuan z) {
int l = Z.Length;
for (int i = l - 1; i > 0; i--) for (int j = 0; j < i; j++)
if (z(Z[j], Z[j + 1]) > 0) {
Zhuan w = Z[j + 1]; Z[j + 1] = Z[j]; Z[j] = w; }
for (int k = 0; k < l; k++)
Console.WriteLine(Z[k]); }
public override string ToString() {
return string.Format(\岁 {2}年级\, name, age, grade); }
public int Zname(Zhuan z1, Zhuan z2) {
return z1.Name.CompareTo(z2.Name); }
public int Zage(Zhuan z1, Zhuan z2)
{
return z1.Age - z2.Age; }
public int Zgrade(Zhuan z1, Zhuan z2) {
return z1.Grade - z2.Grade; } }
class Program {
static void Main(string[] args) {
Zhuan W=new Zhuan (\,2,2); Zhuan[] Z = new Zhuan[6];
Z[0] = new Zhuan(\魏巍\, 25, 1); Z[1] = new Zhuan(\小专\, 21, 0); Z[2] = new Zhuan(\小娇\, 20, 2); Z[3] = new Zhuan(\乐平\, 22, 3); Z[4] = new Zhuan(\大鹏\, 22, 4); Z[5] = new Zhuan(\桂荣\, 21, 5);
Console.WriteLine(\请输入排列方式(1【姓名】或2【年龄】或3【年级】):\); int s = int.Parse(Console.ReadLine()); switch (s) {
case 1: W.w =new zhuan(W.Zname); W.sort(Z, W.w); break; case 2: W.w = new zhuan(W.Zage); W.sort(Z, W.w); break; case 3: W.w = new zhuan(W.Zgrade); W.sort(Z, W.w); break; }
Console.ReadLine(); } }
(4)在第七章习题的设计题(4)的book类中,添加每卖出一份图书时,就触发一个事件。在订购着中处理该事件,输出销售数据信息。
1)主程序代码如下:
public delegate void SaleDelegate(bool sold); class Program {
static void Main(string[] args) {
BookSales sale1 = new BookSales();
Book book1 = new Book(\我是小笨蛋\, \桂荣\, 12); Book book2 = new Book(\七里香\, \周杰伦\, 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(\书名:{0},作者:{1},库存数量:{2}\, book1.Title, book1.Author, book1.Count);
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库刘秋香 c#第八章实验报告在线全文阅读。
相关推荐: