哈希表实现学生管理系统

。。。同学

项目介绍:

  1. 学习哈希表的使用
  2. 哈希表的增删改查
  3. 注意导入Collections
  4. 实现重复学号的冲突检测

考虑点个赞吗亲

using System;
using System.Collections;

namespace 哈希学生管理
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("欢迎使用王德发学生管理系统");
            Console.WriteLine("==========================");
            //尝试使用当前所学习的方法来实现,也尝试使用优化过的写法
            bool flag = true;//用来跳出循环
            Hashtable studentTable = new Hashtable();//建立学生表
            string studentSerial = "";
            string studentName = "";//先外部定义,防止下面不能使用
            while (flag)
            {
                //展示界面
                Console.WriteLine("请选择如下操作\nA:添加 B:查询 C:删除 D:修改 E:退出系统");
                //获取输入
                char key = Console.ReadLine().ToCharArray()[0];
                switch (key)
                {
                    /*
                     * 以下是主要业务逻辑
                     * 思想较为简单,望可以为参考者予以启发
                     */
                    case 'A':
                        //添加业务逻辑
                        //添加学生,需要获取学号作为键,获取姓名作为值
                        Console.Write("请输入学号为:");
                        studentSerial = Console.ReadLine();
                        if (!studentTable.ContainsKey(studentSerial))//要理解取反
                        {
                            Console.Write("请输入学生的姓名:");
                            studentName = Console.ReadLine();
                            studentTable.Add(studentSerial, studentName);//有种父类引用操作子类对象的感觉
                        }
                        else
                        {
                            Console.WriteLine("学号已存在,请重新输入!");
                        }
                        //此处也可使用python写法,会自动添加不存在的键值对
                        Console.WriteLine("********************************");
                        break;
                    case 'B':
                        //查询业务逻辑
                        Console.WriteLine("请输入要查询的学号:");
                        studentSerial = Console.ReadLine();//重新使用变量值
                        if (studentTable.ContainsKey(studentSerial))
                        {
                            Console.WriteLine("学生的姓名为:{0}", studentTable[studentSerial]);
                        }
                        else
                        {
                            Console.WriteLine("学号不存在,请检查输入!");
                        }
                        Console.WriteLine("********************************");
                        break;
                    case 'C':
                        //删除业务逻辑
                        Console.WriteLine("请输入要删除学生的学号:");
                        studentSerial = Console.ReadLine();
                        //添加一个学号是否存在的判断,联系一下方法
                        if (studentTable.ContainsKey(studentSerial))
                        {
                            Console.WriteLine("学生的姓名为:{0}", studentTable[studentSerial]);//这次打印需要写在前方
                            studentTable.Remove(studentSerial);
                        }
                        else
                        {
                            Console.WriteLine("学号不存在,请检查输入!");
                        }
                        Console.WriteLine("********************************");
                        break;
                    case 'D':
                        //修改业务逻辑
                        Console.Write("请输入要修改学生的学号:");
                        studentSerial = Console.ReadLine();
                        if (studentTable.ContainsKey(studentSerial))
                        {
                            Console.Write("请输入新姓名:");
                            studentName = Console.ReadLine();
                            studentTable[studentSerial] = studentName;
                        }
                        else
                        {
                            Console.WriteLine("学号不存在,请检查输入!");
                        }
                        Console.WriteLine("********************************");
                        break;
                    case 'E':
                        //退出系统
                        flag = false;
                        break;
                    default:
                        Console.WriteLine("输入有误,请重新输入!");
                        break;
                }
            }
        }
    }
}

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值