標題:
C# 7 509 尋找及排序資料
[打印本頁]
作者:
may
時間:
2024-1-8 22:43
標題:
C# 7 509 尋找及排序資料
TQC+ 物件導向程式語言
最新一次更新時間:2024-01-05 17:44:52
1. 題目說明:
請新增一個主控台應用程式,加入C:\ANS.CSF\CS05資料夾中的CSD05.cs進行編寫。依下列題意進行作答:輸入指定數字,在檔案中尋找及排序資料,再將處理後資料寫入至新檔案,使輸出值符合題意要求。檔案名稱請另存新檔為CSA05.cs,儲存於C:\ANS.CSF\CS05資料夾,再進行評分。
請使用正斜線(/)作為檔案路徑的分隔符號。
2. 設計說明:
請撰寫程式,讀取read.txt檔案內容,內含22位學生的資料,第一個欄位代表序號,目前檔案中沒有按照序號排列。
使用者輸入一個正整數n(n≧5),從read.txt檔案內容中,搜尋出序號1-n的學生資料,按序號由小而大寫入write.txt檔案中,檔案寫入完成後要關閉。若輸入文字或不在指定範圍的數字,請輸出【error】。
若該數超出總筆數,則該數指定為總筆數。
3. 輸入輸出:
輸入說明
一個正整數n(n≧5),若該數超出總筆數,則該數指定為總筆數
輸出說明
將取得的學生資料寫入write.txt檔案中
範例輸入1
5
範例輸出1
Alt text
範例輸入2
100
範例輸出2
Alt text
4. 評分項目:
(1) 符合設計說明輸出正確格式配分 20
作者:
may
時間:
2024-1-9 09:48
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace CSA05
{
class CSA05
{
public struct Record
{
public int Num;
public string Line;
public Record(int num, string line)
{
this.Num = num;
this.Line = line;
}
public override string ToString()
{
return String.Format("[{0}] {1}", this.Num, this.Line);
}
};
static void Main(string[] args)
{
try
{
int row = Convert.ToInt32(Console.ReadLine());
if (row < 5) { throw new Exception(); }
//TODO
StreamReader sr1 = new StreamReader("read.txt");
string results = getStr(sr1, row);
System.IO.File.WriteAllText("write.txt", results);
}
catch
{
Console.Write("error");
}
Console.ReadKey();
}
static string getStr(StreamReader sr1, int number)
{
sr1.BaseStream.Position = 0;
//TODO
string line;
string[] columns;
List<Record> dataset = new List<Record>();
while ((line = sr1.ReadLine()) != null)
{
if (line.Trim().Length == 0)
{
continue; // skip the empty line
}
columns = line.Split(',');
Record record = new Record(int.Parse(columns[0]), line);
dataset.Add(record);
}
dataset.Sort((record1, record2) => {
return record1.Num - record2.Num;
});
StringBuilder results = new StringBuilder();
int count = Math.Min(number, dataset.Count);
for (int i = 0; i < count; i++)
{
Record r = dataset[i];
results.Append(r.Line);
results.Append("\n");
}
return results.ToString();
}
}
}
複製代碼
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/)
Powered by Discuz! 7.2