Board logo

標題: C# 7 505 成績搜尋 [打印本頁]

作者: may    時間: 2024-1-8 22:38     標題: C# 7 505 成績搜尋

TQC+ 物件導向程式語言
最新一次更新時間:2024-01-05 17:42:54

1. 題目說明:
請新增一個主控台應用程式,加入C:\ANS.CSF\CS05資料夾中的CSD05.cs進行編寫。依下列題意進行作答:輸入尋找資料,再於文字檔內尋找及輸出找到的資料,使輸出值符合題意要求。檔案名稱請另存新檔為CSA05.cs,儲存於C:\ANS.CSF\CS05資料夾,再進行評分。
請使用正斜線(/)作為檔案路徑的分隔符號。

2. 設計說明:
請撰寫程式,讀取read.txt檔案內容,內含13位學生的資料,每列資料以逗號隔開,後三個數字代表學生成績,讓使用者輸入總成績的條件,判斷並輸出檔案中符合條件有幾名學生、學生姓名及總成績,需分行顯示。
可使用的比較運算子包括>、<、=、>=、<=,若輸入不合規定的資料,請輸出【error】。

3. 輸入輸出:
輸入說明
運算子 總分(中間以一半形空白格分隔)

輸出說明
符合條件的學生位數、學生姓名及總成績(姓名與總成績中間以一半形空白格分隔)

範例輸入1
> 290
範例輸出1
3
Cherry 299
Frank 300
James 300

範例輸入2
<1000
範例輸出2
error

4. 評分項目:
(1) 符合設計說明輸出正確格式        配分20
作者: may    時間: 2024-1-9 09:44

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.IO;
  7. using System.Collections;

  8. namespace CSA05
  9. {
  10.     class CSA05
  11.     {
  12.         static void Main(string[] args)
  13.         {
  14.             try
  15.             {
  16.                 string data = Console.ReadLine();
  17.                 string[] score = data.Split(' ');
  18.                 if (score.Length != 2) { throw new Exception(); }
  19.                 ArrayList res = new ArrayList();
  20.                 int i = 0;
  21.                 using (StreamReader sr = new StreamReader(AppDomain.CurrentDomain.BaseDirectory + "/read.txt", Encoding.UTF8))
  22.                 {
  23.                     while (!sr.EndOfStream)
  24.                     {
  25.                         string line = sr.ReadLine();
  26.                         string[] student = line.Split(',');
  27.                         int ss = Convert.ToInt32(student[3]) + Convert.ToInt32(student[4]) + Convert.ToInt32(student[5]);

  28.                         switch (score[0])
  29.                         {
  30.                             case ">":
  31.                                 if (ss > Convert.ToInt32(score[1]))
  32.                                 {
  33.                                     i++; res.Add(student[0].ToString() +" " + ss.ToString());
  34.                                 }
  35.                                 break;
  36.                             case "<":
  37.                                 if (ss < Convert.ToInt32(score[1]))
  38.                                 {
  39.                                     i++; res.Add(student[0].ToString() + " " + ss.ToString());
  40.                                 }
  41.                                 break;
  42.                             case "=":
  43.                                 if (ss == Convert.ToInt32(score[1]))
  44.                                 {
  45.                                     i++; res.Add(student[0].ToString() + " " + ss.ToString());
  46.                                 }
  47.                                 break;
  48.                             case "<=":
  49.                                 if (ss <= Convert.ToInt32(score[1]))
  50.                                 {
  51.                                     i++; res.Add(student[0].ToString() + " " + ss.ToString());
  52.                                 }
  53.                                 break;
  54.                             case ">=":
  55.                                 if (ss >= Convert.ToInt32(score[1]))
  56.                                 {
  57.                                     i++; res.Add(student[0].ToString() + " " + ss.ToString());
  58.                                 }
  59.                                 break;
  60.                         }
  61.                     }
  62.                 }
  63.                 Console.Write("{0}\n{1}", i,string.Join("\n",res.ToArray()));
  64.             }
  65.             catch
  66.             {
  67.                 Console.Write("error");
  68.             }
  69.             Console.ReadKey();
  70.         }


  71.     }
  72. }
複製代碼





歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://seed.istak.org.tw/) Powered by Discuz! 7.2