[csharp]
/*
* 程序頭部注釋開始
* 程序的版權和版本聲明部分
* Copyright (c) 2011, 煙台大學計算機學院學生
* All rights reserved.
* 文件名稱:輸出學號為奇數的所有學生
* 作 者:薛廣晨
* 完成日期:2011 年 09 月 16 日
* 版 本號:x1.0
* 對任務及求解方法的描述部分
* 輸入描述:
* 問題描述: 輸入學號和姓名,對不存在的學號加到hashtable類的實例中,
* 對存在學號給出提示。結束輸入後,輸出學號為奇數的所有學生。
* 程序輸出:
* 程序頭部的注釋結束
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Student
{
class Program
{
static void Main(string[] args)
{
bool b = true;
Console.Write("請您輸入您想保存的學生數:");
int count = int.Parse(Console.ReadLine());
hashtable[] h = new hashtable[count];
int i = 1;
do
{
if (i < count)
{
Console.Write("請您輸入第{0}個學生的學號:", i);
int num = int.Parse(Console.ReadLine());
Console.Write("請您輸入第{0}個學生的姓名:", i);
String name = Console.ReadLine();
for (int k = 0; k < i - 1; ++k)
{
if (h[k].get_Number().Equals(num))
{
Console.WriteLine("該同學的信息已經保存了,請不要重復輸入!");
b = false;
break;
}
}
if (b)
{
h[i - 1] = new hashtable();
h[i - 1].set_Input(num, name);
++i;
}
}
else
{
Console.WriteLine("您輸入的學生數已達到您剛才預先設定值,請停止輸入!");
break;
}
Console.WriteLine();
Console.WriteLine("按0結束輸入,任意鍵繼續...");
if (Console.ReadLine() == "0")
break;
} while (true);
Console.WriteLine(" {0} {1}", h[0].num, h[0].name);
hashtable.output(h, i);
Console.ReadKey();
}
}
class hashtable
{
public int num;
public string name;
public hashtable(int num1, string name1)
{
num = num1;
name = name1;
}
public hashtable()
{
num = 0;
name = null;
}
public void set_Input(int num1, string name1)
{
num = num1;
name = name1;
}
public int get_Number()
{
return num;
}
public static void output(hashtable[] h, int i)
{
Console.WriteLine(" 學號 姓名");
for (int n = 0; n < i - 1; ++n)
{
if (h[n].get_Number() % 2 != 0)
{
Console.WriteLine(" {0} {1}", h[n].num, h[n].name);
}
}
}
}
}
運行結果: