
C#大神救救孩子的期中考試吧
uj5u.com熱心網友回復:
第一題:
int studentCount = 0;
int menCount = 0;
int womenCount = 0;
@Total:
Console.WriteLine("請輸入班級總人數:");
var result = Console.ReadLine();
if (!int.TryParse(result, out studentCount))
{
Console.WriteLine("人數輸入錯誤,請輸入一個整數!");
goto @Total;
}
@Men:
Console.WriteLine("請輸入男生人數:");
result = Console.ReadLine();
if (!int.TryParse(result, out menCount))
{
Console.WriteLine("男生人數:輸入錯誤,請輸入一個整數!");
goto @Men;
}
@WoMen:
Console.WriteLine("請輸入女生人數:");
result = Console.ReadLine();
if (!int.TryParse(result, out womenCount))
{
Console.WriteLine("女生人數:輸入錯誤,請輸入一個整數!");
goto @WoMen;
}
var stuArr = new List<string>();
for (int i = 0; i < menCount; i++)
{
stuArr.Add("M");
}
for (int i = 0; i < womenCount; i++)
{
stuArr.Add("F");
}
Console.WriteLine("男生人數為:" + stuArr.FindAll(p => p == "M").Count);
Console.WriteLine("女生人數為:" + stuArr.FindAll(p => p == "F").Count);
uj5u.com熱心網友回復:
第二題:
decimal l = 0.00m;
decimal r = 0.00m;
@GetNum:
Console.WriteLine("請輸入第一個數:");
var result = Console.ReadLine();
if (!decimal.TryParse(result, out l))
{
Console.WriteLine("輸入錯誤,請輸入一個合法數字!");
goto @GetNum;
}
@GetNum2:
Console.WriteLine("請輸入第二個數:");
result = Console.ReadLine();
if (!decimal.TryParse(result, out r))
{
Console.WriteLine("輸入錯誤,請輸入一個合法數字!");
goto @GetNum2;
}
@Sym:
var symNum = 0;
Console.WriteLine("請輸入想要操作的方法(1=加 2=減 3=除):");
result = Console.ReadLine();
if (!int.TryParse(result, out symNum))
{
Console.WriteLine("輸入錯誤,請輸入一個合法整數!");
goto @Sym;
}
switch (symNum)
{
case 1:
result = Add(l,r);
break;
case 2:
result = Sub(l,r);
break;
case 3:
result = Ride(l,r);
break;
default:
Console.WriteLine("輸入錯誤,請輸入一個合法整數!");
goto @Sym;
}
Console.WriteLine("結果為:"+result);
uj5u.com熱心網友回復:
class Program
{
static void Main(string[] args)
{
Operator oper = OperatorFactory.CreateOperator(5, 4, OperatorEnum.Additive);
Console.WriteLine(oper.GetResult().ToString());
Console.ReadKey();
}
}
/// <summary>
/// 運算類
/// </summary>
public class Operator
{
/// <summary>
/// 第一位數
/// </summary>
public int Num1 { get; set; }
/// <summary>
/// 第二位數
/// </summary>
public int Num2 { get; set; }
/// <summary>
/// 獲取運算結果
/// </summary>
/// <returns></returns>
public virtual int GetResult()
{
return 0;
}
}
/// <summary>
/// 加法
/// </summary>
public class OperatorAdd : Operator
{
public override int GetResult()
{
return this.Num1 + this.Num2;
}
}
/// <summary>
/// 減法
/// </summary>
public class OperatorSub : Operator
{
public override int GetResult()
{
return this.Num1 - this.Num2;
}
}
/// <summary>
/// 乘法
/// </summary>
public class OperatorMul : Operator
{
public override int GetResult()
{
return this.Num1 * this.Num2;
}
}
/// <summary>
/// 運演算法則工廠
/// </summary>
public class OperatorFactory
{
public static Operator CreateOperator(int num1,int num2,OperatorEnum oper)
{
Operator opera = null;
switch (oper)
{
case OperatorEnum.Additive:
opera = new OperatorAdd();
break;
case OperatorEnum.Subduction:
opera = new OperatorSub();
break;
case OperatorEnum.Multiplication:
opera = new OperatorMul();
break;
default:
throw new ArgumentException("運演算法輸入例外!");
}
opera.Num1 = num1;
opera.Num2 = num2;
return opera;
}
}
/// <summary>
/// 運算子列舉
/// </summary>
public enum OperatorEnum
{
/// <summary>
/// 加法
/// </summary>
Additive = 1,
/// <summary>
/// 減法
/// </summary>
Subduction = 2,
/// <summary>
/// 乘法
/// </summary>
Multiplication = 3
}
uj5u.com熱心網友回復:
using System.Data;
int t = Calculate("55+99/3+66");
public int Calculate(string expression)
{
try
{
return (int)new DataTable().Compute(expression, null);
}
catch
{
return -99999; // 算式錯誤
}
}
uj5u.com熱心網友回復:
sorry,試了一下,是stringpublic string Calculate(string expression)
{
return new DataTable().Compute(expression, null).ToString();
}
uj5u.com熱心網友回復:
try
{
string total = string.Empty;
int Total = 0;//班級總人數
do
{
Console.WriteLine("請輸入班級學生總人數:");
total = Console.ReadLine();
} while (!int.TryParse(total,out Total));
//班級總人數陣列
string[] studens = new string[Total];
bool isOk = false;
do
{
Console.WriteLine("請輸入學生資訊[男生用字母M表示,女生用字母F表示]:");
string info = Console.ReadLine();
if (info.ToUpper() != "M" && info.ToUpper() != "F")
{
Console.WriteLine("請輸入有效的學生資訊[男生用字母M表示,女生用字母F表示]:");
continue;
}
else
{
int index = studens.Count(a => !string.IsNullOrWhiteSpace(a));//要插入陣列的索引
studens[index] = info;
}
//判斷當前錄入的人數是否已經達到了班級總人數
if (studens.Count(a => !string.IsNullOrWhiteSpace(a)) == Total)
{
isOk = true;
}
else
{
Console.WriteLine("學生資訊是否已錄入完畢[字母Y表示錄入完畢]:");
if (Console.ReadLine().ToUpper() == "Y")
isOk = true;
}
} while (!isOk);
Console.WriteLine("班級總人數:" + Total.ToString());
Console.WriteLine("其中男生總人數:" + studens.Count(a => a == "M").ToString());
Console.WriteLine("其中女生總人數:" + studens.Count(a => a == "F").ToString());
}
catch (Exception ex)
{
throw ex;
}
uj5u.com熱心網友回復:
第一題,明顯是要以ArrayList動態陣列進行計算,老師才能給分。這都寫的個啥啊
看demo:
public class TestDemo
{
[STAThread]
public static void Main(string[] args)
{
//動態陣列申明
ArrayList students = new ArrayList();
////實體化幾個Student類物件
Student rose = new Student("rose", ESex.M, "reading");
Student jack = new Student("jack", ESex.F, "singing");
Student mimi = new Student("mimi", ESex.F, "dancing");
////動態陣列添加元素
students.Add(rose);
students.Add(jack);
students.Add(mimi);
////遍歷元素
int F_Val = 0,
M_Val = 0;
for (int i = 0; i < students.Count; i++)
{
Student info = students[i] as Student;
if (info.Sex.ToString() == "F")
F_Val += 1;
if (info.Sex.ToString() == "M")
M_Val += 1;
}
int PersonVal = F_Val + M_Val;
Console.WriteLine($"男生人數:{1},女生人數{2},共計人數{3}", M_Val.ToString(), F_Val.ToString(), PersonVal.ToString());
Console.ReadKey();
}
/// <summary>
/// 學生資訊
/// </summary>
public class Student
{
public string Name { get; set; }
public ESex Sex { get; set; }
public string Hobbly { get; set; }
public Student(string name, ESex sex, string hobbly)
{
Name = name;
Sex = sex;
Hobbly = hobbly;
}
}
}
public enum ESex
{
M = 0,
F = 1
}
運行結果:
uj5u.com熱心網友回復:
謝謝你們,可是我的老師現場換題目了uj5u.com熱心網友回復:
你是拿我們打哈哈嗎?扼殺勞動人民的勞動成果。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/283528.html
標籤:C#
上一篇:動態陣列和三則運算,期中考
