/*
* 程序头部注释开始
* 程序的版权和版本声明部分
* 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);
}
}
}
}
}
运行结果: