# C#平均值计算器具体实现

## 2. Avg.cs

Avg.cs的具体代码如下：

```  1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
6
7 namespace cs平均值计算器_20181024
8 {
9     public class Avg     //声明平均数的类
10     {
11         private double num1;    //声明操作数A
12         private double num2;    //声明操作数B
13         private double weight1; //声明权重A
14         private double weight2; //声明权重B
15
16         //声明四个变量的索引器
17         public double Num1
18         {
19             get
20             {
21                 return num1;
22             }
23             set
24             {
25                 num1 = value;
26             }
27         }
28         public double Num2
29         {
30             get
31             {
32                 return num2;
33             }
34             set
35             {
36                 num2 = value;
37             }
38         }
39         public double Weight1
40         {
41             get
42             {
43                 return weight1;
44             }
45             set
46             {
47                 weight1 = value;
48             }
49         }
50         public double Weight2
51         {
52             get
53             {
54                 return weight2;
55             }
56             set
57             {
58                 weight2 = value;
59             }
60         }
61
62         //检查输入的字符串是否能够转换为数字
63         public static bool CheckNum(string s1, string s2, string s3, string s4)
64         {
65             double num;
66             bool flag = true;   //声明标志信号flag
67
68             //四个字符串中若有任何一个无法转换为数字，flag都为假
69             if (!double.TryParse(s1, out num))
70                 flag = false;
71             else if (!double.TryParse(s2, out num))
72                 flag = false;
73             else if (!double.TryParse(s3, out num))
74                 flag = false;
75             else if (!double.TryParse(s4, out num))
76                 flag = false;
77
78             return flag;    //返回flag的值
79         }
80         //只检查两个数字的CheckNum
81         public static bool CheckNum(string s1, string s2)
82         {
83             double num;
84             bool flag = true;   //声明表示信号flag
85
86             //两个数中的任意一个无法转换为数字，flag都为假
87             if (!double.TryParse(s1, out num))
88                 flag = false;
89             else if (!double.TryParse(s2, out num))
90                 flag = false;
91
92             return flag;    //返回flag的值
93         }
94
95         //得到结果字符串
96         public virtual string GetResult()
97         {
98             return "两数没有做任何操作";
99         }
100     }
101
102     public class CalAvg:Avg     //声明计算算术平均值的类
103     {
104         //CalAvg的构造函数
105         public CalAvg(double num1, double num2)
106         {
107             Num1 = num1;
108             Num2 = num2;
109         }
110
111         //重载父方法中的GetResult()方法
112         public override string GetResult()
113         {
114             string result = "两数的算术平均值为：";
115             double num = (Num1 + Num2) / 2;
116             result += string.Format("{0:f}", num);  //将结果变为字符串并保留两位小数
117             return result;
118         }
119     }
120
121     public class CalWAvg : Avg  //声明计算加权平均值的类
122     {
123         //CalWAvg的构造函数
124         public CalWAvg(double num1, double num2, double weight1, double weight2)
125         {
126             Num1 = num1;
127             Num2 = num2;
128             Weight1 = weight1;
129             Weight2 = weight2;
130         }
131
132         //重载父方法中的GetResult()方法
133         public override string GetResult()
134         {
135             string result = "两数的加权平均值为：";
136             double num = (Num1 * Weight1 + Num2 * Weight2) / 2; //计算两数的加权平均值
137             result += string.Format("{0:f}", num);  //将结果变为字符串并保留两位小数
138             return result;
139         }
140     }
141 }```

## 3. Form1.cs

Form1.cs的代码如下：

``` 1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Data;
5 using System.Drawing;
6 using System.Linq;
7 using System.Text;
9 using System.Windows.Forms;
10
11 namespace cs平均值计算器_20181024
12 {
13     public partial class Form1 : Form
14     {
15         public Form1()
16         {
17             InitializeComponent();
18             this.Text = "平均数计算器";   //设置窗口标题
19         }
20
21         private void ButtonAvg_Click(object sender, EventArgs e)
22         {
23             string n1 = TextBoxNum1.Text;   //得到第一个数的字符串
24             string n2 = TextBoxNum2.Text;   //得到第二个数的字符串
25             if(!Avg.CheckNum(n1,n2))    //若输入的数字不符合规范，发出警告并返回
26             {
27                 MessageBox.Show("请输入符合规范的数字！", "警告",
28                     MessageBoxButtons.OK, MessageBoxIcon.Warning);
29                 return;
30             }
31
32             //创建CalAvg实例对象avg
33             Avg avg = new CalAvg(Convert.ToDouble(n1), Convert.ToDouble(n2));
34
35             LabelResult.Text = avg.GetResult(); //将结果显示到窗口上
36         }
37
38         private void ButtonWAvg_Click(object sender, EventArgs e)
39         {
40             string n1 = TextBoxNum1.Text;   //得到第一个数的字符串
41             string n2 = TextBoxNum1.Text;   //得到第二个数的字符串
42             string w1 = TextBoxWeight1.Text;//得到第一个权重的字符串
43             string w2 = TextBoxWeight2.Text;//得到第二个权重的字符串
44             if(!Avg.CheckNum(n1, n2, w1, w2))   //若输入的数字不符合规范，发出警告并返回
45             {
46                 MessageBox.Show("请输入符合规范的数字！", "警告",
47                     MessageBoxButtons.OK, MessageBoxIcon.Warning);
48                 return;
49             }
50
51             //创建CalWAvg实例对象avg
52             Avg avg = new CalWAvg(Convert.ToDouble(n1), Convert.ToDouble(n2),
53                 Convert.ToDouble(w1), Convert.ToDouble(w2));
54
55             LabelResult.Text = avg.GetResult(); //将结果显示到窗口上
56         }
57     }
58 }```

C#平均值计算器具体实现

(0)
(0)

0条