From cbbe3ae4ada5399826c9ea0c5f13842df0ee37d9 Mon Sep 17 00:00:00 2001 From: Z1131857044 <1131857044@qq.com> Date: Sat, 15 Jul 2023 01:25:46 +0800 Subject: [PATCH] =?UTF-8?q?CSharp=5F=E6=9D=8E=E6=B5=A9=E6=BA=90=5F?= =?UTF-8?q?=E7=84=A126?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hw1/hw1/Program.cs | 151 +++++++++++++++++++++++++++++++++++---------- 1 file changed, 118 insertions(+), 33 deletions(-) diff --git a/hw1/hw1/Program.cs b/hw1/hw1/Program.cs index e4f0e15..4d234d5 100644 --- a/hw1/hw1/Program.cs +++ b/hw1/hw1/Program.cs @@ -1,4 +1,5 @@ using System; +using static System.Net.Mime.MediaTypeNames; namespace Homework1 { @@ -11,7 +12,7 @@ public static void Main(string[] args) // 该程序用于Debug { try { - progress.Start(i*((i%2==0)?1:-1)); + progress.Start(i * ((i % 2 == 0) ? 1 : -1)); } catch (Exception e) { @@ -19,9 +20,9 @@ public static void Main(string[] args) // 该程序用于Debug } if (i % 3 != 0) { - progress.Add(i-1); + progress.Add(i - 1); } - else progress.Sub(i-1); + else progress.Sub(i - 1); if (i == 6 || i == 7) { @@ -43,8 +44,8 @@ public interface IProgress /// 如果之前进度条已经加载完成,则将进度清零开始下一次加载,返回true,但如果requiredProgress<0,应当报错 /// 如果之前进度条尚未加载完成,返回false /// - public bool Start(int requiredProgress); - + public bool Start(int requiredProgress); + public void Add(int addProgress); //增加addProgress的进度 public void Sub(int subProgress); //减少subProgress的进度 public void Double(); //进度翻倍 @@ -57,36 +58,120 @@ public interface IProgress public class Progress : IProgress { + private int flag; + static private int num=0; + public int Num + { + get { return num; } + set { } + } + private int requiredProgress; + public int RequiredProgress + { + get { return requiredProgress;} + set + { + requiredProgress = (value <= 0) ? 0 : value; + num += 1; + } + } + private int finishedProgress; + public int FinishedProgress + { + get { return finishedProgress; } + set + { + finishedProgress = (value <= 0) ? 0 : ((value > requiredProgress) ? requiredProgress : value); + } + } + public bool Start(int requiredProgress) + { + try + { + if (requiredProgress < 0) + { + flag = 0; + throw new Exception("requiredProgress less than zero!"); + } + else + { + flag = 1; + this.requiredProgress = requiredProgress; + } + } + catch(Exception e) + { + throw new Exception("requiredProgress less than zero!"); + } + if (this.requiredProgress == finishedProgress) + { + finishedProgress = 0; + return true; + } + return false; + } + public void Add(int addProgress) + { + if (flag == 1) + { + finishedProgress += addProgress; + finishedProgress = (finishedProgress <= 0) ? 0 : ((finishedProgress > requiredProgress) ? 0 : finishedProgress); + } + else + { + } + } + public void Sub(int subProgress) + { + if (flag == 1) + { + finishedProgress -= subProgress; + finishedProgress = (finishedProgress <= 0) ? 0 : ((finishedProgress > requiredProgress) ? 0 : finishedProgress); + } + else { } + } + public void Double() + { + if (flag == 1) + { + finishedProgress = finishedProgress * 2; + } + else { } + } + public (int FinishedProgress, int RequiredProgress) GetProgress() + { + return (finishedProgress,requiredProgress); + } // 一个进度条 // 只允许修改Progress类中的代码 // 要求实现IProgress中的要求 } -/* - * 输出示例: -RequiredProgress must be positive. (Parameter 'Homework1.Progress') -(0, 0) -(1, 2) -(0, 2) -(2, 2) -RequiredProgress must be positive. (Parameter 'Homework1.Progress') -(2, 2) -(0, 6) -(6, 6) -(7, 8) -(0, 8) -(8, 8) -RequiredProgress must be positive. (Parameter 'Homework1.Progress') -(8, 8) -(0, 12) -(12, 12) -(13, 14) -(0, 14) -(14, 14) -RequiredProgress must be positive. (Parameter 'Homework1.Progress') -(14, 14) -(0, 18) -(18, 18) -(19, 20) - */ -} \ No newline at end of file + /* + * 输出示例: + RequiredProgress must be positive. (Parameter 'Homework1.Progress') + (0, 0) + (1, 2) + (0, 2) + (2, 2) + RequiredProgress must be positive. (Parameter 'Homework1.Progress') + (2, 2) + (0, 6) + (6, 6) + (7, 8) + (0, 8) + (8, 8) + RequiredProgress must be positive. (Parameter 'Homework1.Progress') + (8, 8) + (0, 12) + (12, 12) + (13, 14) + (0, 14) + (14, 14) + RequiredProgress must be positive. (Parameter 'Homework1.Progress') + (14, 14) + (0, 18) + (18, 18) + (19, 20) + */ +}