- 说明:这是武汉理工大学计算机学院【可视化编程C#】课程的第二次实验代码。
- >>点击查看武汉理工大学计算机专业课程资料汇总
- >>点击查看WUTer计算机专业实验汇总
- 谨记:纸上得来终觉浅,绝知此事要躬行。
实验目的:
掌握C#的基本流程控制语句,掌握面向对象程序的设计方法,理解继承的概念、掌握继承的使用方法、能够利用继承建立父类和子类。
实验内容2.1:
故宫的门票实行的是淡季票价和旺季票价,淡季从11月1日—3月31日,票价为40元,学生票20元。旺季从4月1日—10月31日,票价为60元,学生票20元。
另外,故宫为一些特殊人群提供了门票优惠政策:
①1.2米以下的儿童免票
②大中小学生门票20元
③离休人员免票
④60岁及以上老年人享受半价优惠
根据参观月份和参观者的类型,输出实际的门票价格。使用嵌套if和switch结构实现。
实验代码2.1:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 实验2._1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("------票价查询系统------\n" +
" 1、普通人员\n" +
" 2、1.2米以下儿童\n" +
" 3、大中小学生\n" +
" 4、离休人员\n" +
" 5、60岁以及以上老人\n");
while (true)
{
Console.Write("请输入符合您条件的序号:");
String str = Console.ReadLine();
int choice = Convert.ToInt32(str);
Console.WriteLine();
DateTime dt = DateTime.Now;
String date = String.Format("{0:yyyy年MM月dd日 HH:mm:ss dddd}", dt);
switch (choice)
{
case 1:
Console.WriteLine("当前时间:{0}", date);
if (4 <=DateTime.Now.Month && DateTime.Now.Month <= 10)
{
Console.WriteLine("您的票价:60元。");
}
else
{
Console.WriteLine("您的票价:40元。");
}
break;
case 2:
Console.WriteLine("当前时间:{0}", date);
Console.WriteLine("您的票价是:0元。");
break;
case 3:
Console.WriteLine("当前时间:{0}", date);
Console.WriteLine("您的票价是:20元。");
break;
case 4:
Console.WriteLine("当前时间:{0}", date);
Console.WriteLine("您的票价是:0元。");
break;
case 5:
Console.WriteLine("当前时间:{0}", date);
if (4 <= DateTime.Now.Month && DateTime.Now.Month <= 10)
{
Console.WriteLine("您的票价是:30元。");
}
else
{
Console.WriteLine("您的票价是:20元。");
}
break;
default:
Console.WriteLine("您的输入有误!");
break;
}
Console.WriteLine();
}
}
}
}
运行结果2.1:
实验内容2.2:
编写一个控制台应用程序,完成下列功能,并写出运行程序后输出的结果。
①创建一个类A,在A中编写一个可以被重写的带int类型参数的方法MyMethod,并在该方法中输出传递的整型值加10后的结果。
②再创建一个类B,使其继承自类A,然后重写A中的MyMethod方法,将A中接收的整型值加50,并输出结果。
③在Main方法中分别创建类A和类B的对象,并分别调用MyMethod方法。
实验代码2.2:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 实验2._2
{
class Program
{
static void Main(string[] args)
{
Console.Write("请输入Num初始值:");
String str = Console.ReadLine();
int num = Convert.ToInt32(str);
ClassA classA = new ClassA();
ClassB classB = new ClassB();
Console.WriteLine("调用ClassA中方法返回的结果是: {0}" , classA.MyMethod(num));
Console.WriteLine("调用ClassB中方法返回的结果是: {0}" , classB.MyMethod(num));
}
}
}
class ClassA {
public virtual int MyMethod(int NumA) {
int rNumA = NumA + 10;
return rNumA;
}
}
class ClassB : ClassA {
public override int MyMethod(int NumB) {
int rNumB = NumB + 50;
return rNumB;
}
}