【可视化编程】实验2:C#程序设计基础

计科2019-04-14 15:25:17

相关说明

  • 文章内容:可视化编程实验

  • 所属课程:可视化编程

  • 授课学院:武汉理工大学计算机学院

  • 作者主页:https://blog.csdn.net/cxh_1231

实验目的:

  掌握C#的基本流程控制语句,掌握面向对象程序的设计方法,理解继承的概念、掌握继承的使用方法、能够利用继承建立父类和子类。


实验内容1:

  故宫的门票实行的是淡季票价和旺季票价,淡季从11月1日—3月31日,票价为40元,学生票20元。旺季从4月1日—10月31日,票价为60元,学生票20元。
  另外,故宫为一些特殊人群提供了门票优惠政策:

  ①1.2米以下的儿童免票
  ②大中小学生门票20元
  ③离休人员免票
  ④60岁及以上老年人享受半价优惠

  根据参观月份和参观者的类型,输出实际的门票价格。使用嵌套if和switch结构实现。


实验代码1:

手机端无法正常显示代码缩进以及字符间空格
获取更好的代码视觉体验请用电脑端打开此文章

 1using System;  
2using System.Collections.Generic;  
3using System.Linq;  
4using System.Text;  
5using System.Threading.Tasks;  
6namespace 实验2._1  
7{  
8    class Program  
9    {
 
10        static void Main(string[] args)  
11        
{  
12            Console.WriteLine("------票价查询系统------\n" +  
13                " 1、普通人员\n" +  
14                " 2、1.2米以下儿童\n" +  
15                " 3、大中小学生\n" +  
16                " 4、离休人员\n" +  
17                " 5、60岁以及以上老人\n");  
18            while (true)  
19            {  
20                Console.Write("请输入符合您条件的序号:");  
21                String str = Console.ReadLine();  
22                int choice = Convert.ToInt32(str);  
23                Console.WriteLine();  
24                DateTime dt = DateTime.Now;  
25                String date = String.Format("{0:yyyy年MM月dd日 HH:mm:ss dddd}", dt);  
26                switch (choice)  
27                {  
28                    case 1:  
29                        Console.WriteLine("当前时间:{0}", date);  
30                        if (4 <=DateTime.Now.Month && DateTime.Now.Month <= 10)  
31                        {  
32                            Console.WriteLine("您的票价:60元。");  
33                        }  
34                        else  
35                        {  
36                            Console.WriteLine("您的票价:40元。");  
37                        }  
38                        break;  
39                    case 2:  
40                        Console.WriteLine("当前时间:{0}", date);  
41                        Console.WriteLine("您的票价是:0元。");  
42                        break;  
43                    case 3:  
44                        Console.WriteLine("当前时间:{0}", date);  
45                        Console.WriteLine("您的票价是:20元。");  
46                        break;  
47                    case 4:  
48                        Console.WriteLine("当前时间:{0}", date);  
49                        Console.WriteLine("您的票价是:0元。");  
50                        break;  
51                    case 5:  
52                        Console.WriteLine("当前时间:{0}", date);  
53                        if (4 <= DateTime.Now.Month && DateTime.Now.Month <= 10)  
54                        {  
55                            Console.WriteLine("您的票价是:30元。");  
56                        }  
57                        else  
58                        {  
59                            Console.WriteLine("您的票价是:20元。");  
60                        }  
61                        break;  
62                    default:  
63                        Console.WriteLine("您的输入有误!");  
64                        break;  
65                }  
66                Console.WriteLine();  
67            }  
68        }  
69    }  
70}  


运行结果1:


实验内容2:

  编写一个控制台应用程序,完成下列功能,并写出运行程序后输出的结果。
  ①创建一个类A,在A中编写一个可以被重写的带int类型参数的方法MyMethod,并在该方法中输出传递的整型值加10后的结果。
  ②再创建一个类B,使其继承自类A,然后重写A中的MyMethod方法,将A中接收的整型值加50,并输出结果。
  ③在Main方法中分别创建类A和类B的对象,并分别调用MyMethod方法。


实验代码2:

手机端无法正常显示代码缩进以及字符间空格
获取更好的代码视觉体验请用电脑端打开此文章

 1using System;  
2using System.Collections.Generic;  
3using System.Linq;  
4using System.Text;  
5using System.Threading.Tasks;  
6namespace 实验2._2  
7{  
8    class Program  
9    {
 
10        static void Main(string[] args)  
11        
{  
12            Console.Write("请输入Num初始值:");  
13            String str = Console.ReadLine();  
14            int num = Convert.ToInt32(str);  
15            ClassA classA = new ClassA();  
16            ClassB classB = new ClassB();  
17            Console.WriteLine("调用ClassA中方法返回的结果是: {0}" , classA.MyMethod(num));              
18            Console.WriteLine("调用ClassB中方法返回的结果是: {0}" , classB.MyMethod(num));  
19        }  
20    }  
21}  
22class ClassA {  
23    public virtual int MyMethod(int NumA) {  
24        int rNumA = NumA + 10;  
25        return rNumA;  
26    }  
27}  
28class ClassB : ClassA {  
29    public override int MyMethod(int NumB) {  
30        int rNumB = NumB + 50;  
31        return rNumB;  
32    }  
33}  


运行结果2:


您的支持就是我们前进的动力