日期:2014-05-17  浏览次数:20768 次

C#第四周 任务3.4 输出学号为奇数的所有学生
/* 
* 程序头部注释开始   
* 程序的版权和版本声明部分   
* 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);
                }
            }   
        }  
    }  

 
}
 
 
 


运行结果: