C#:【学生管理系统】--主要用哈希表传值写学生管理系统

C#写的一个简单小题,通过用哈希表传值,循环体执行实现信息的添加删除查询修改,然后退出系统。具体运行结果和代码如下:

开始运行,选择需要进行操作对应的 数字

先进行往里面添加信息,学号、姓名,这里我们先添加两个信息,添加完接着进行下一步操作

 

 这里演示一下查询信息,是以学号为关键值检索的,如下图,因为设置了循环体,没完成一步操作就返回初始界面再进行下一步操作

 删除也是同样的道理

 如果进行修改,此时输入刚才删除的学生学号,就检索不到信息,显示学号不存在!(同样道理,如果没有添加学生信息,当检索时,像查询、修改、删除都是不可能完成的!)

 正常情况下是完全可以修改的(把刚才的李钟硕修改成了csdn)

值得注意的是,当不按要求输入或输入错误时,会显示输入有误,请重新输入

 


在此做一些解释:

1、里面的长横线都是本人为了好看自己随便加的,为了适配自己电脑的控制台,这些都是可以随便修改的

2、写学生管理系统不止用哈希表来写

using System;
using System. Collections;
namespace 学生管理系统
{

    class Program
    {
        private static string name;//自动生成的静态对象
        private static object xuehao;

        static void Main(string[] args)
        {
            Console.WriteLine("                                                      学生管理系统");
            Console.WriteLine("▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅");
            Hashtable tb = new Hashtable();//哈希表就是根据关键值(key或value)直接进行数据访问
            menu();//方法,减少代码数量
            string s = Console.ReadLine();
            while (s != "5")
            {
                s = loop(s, tb);
            }
        }
        //菜单方法
        static void menu()
        {

            Console.WriteLine("");
            Console.WriteLine("");
            Console.WriteLine("请选择您要进行的操作!");
            Console.WriteLine("");
            Console.WriteLine("");
            Console.WriteLine("");
            Console.WriteLine("");
            Console.WriteLine("                                        1         2        3         4         5      ");
            Console.WriteLine("                                      添加      查询      删除      修改      退出");
            Console.WriteLine("");
            Console.WriteLine("");
            Console.WriteLine("▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅");

        }
        //设置几个循环体,执行完其中一个操作,自动返回
        static string loop(string s, Hashtable tb)
        {
            string XH;//学号,字符串
            string XM;//姓名,一样
            switch (s)//switch 是多分支选择语句
            {
                case "1":      //在这个语句里,当你选择了需要的操作,就会进行操作里的内容
                    Console.WriteLine("请输入需要添加的学生学号:");
                    XH = Console.ReadLine();
                    Console.WriteLine("请输入需要添加的学生姓名:");
                    XM = Console.ReadLine();
                    if (!tb.Contains(XH))   //Contains  包含    把信息存放到哈希表里,就相当于是一个盒子,可以进行存取
                    {
                        tb.Add(XH, XM);          //向表里添加姓名学号语句
                        Console.WriteLine("→→→→→→→→→" +
                            "→→→→→→→→→→→→→→→→→→ 添加成功!←←←←←←←←←←←←←←←←←←←←←←←←←←←");
                    }
                    else
                    {
                        Console.WriteLine("学号已存在,请重新添加!");
                    }

                    Console.WriteLine("▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅");

                    menu();
                    return Console.ReadLine();

                case "2":
               
                    Console.Write(" 请输入你要查询的信息 ");
                    Console.WriteLine("");
                    Console.WriteLine("");
                    Console.Write("               学生学号为:{0}", xuehao);
                    XH = Console.ReadLine();
                    if (tb.Contains(XH))
                    {
                     
                        name = (string)tb[XH];
                     
                        Console.WriteLine("               学生姓名为:{0}", name);
                        Console.WriteLine("");
                        Console.WriteLine("");
                        Console.WriteLine("→→→→→→→→→" +
    "→→→→→→→→→→→→→→→→→→ 查询成功!←←←←←←←←←←←←←←←←←←←←←←←←←←←");


                    }
                    else
                    {
                        Console.WriteLine("学生学号不存在!请重新输入!");

                    }
                    Console.WriteLine("▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅");
                    menu();
                    return Console.ReadLine();

                case "3":
                    Console.Write("");
                    Console.Write("请输入你要删除的学生学号:");
                    Console.Write("");
                    Console.Write("");
                    XH = Console.ReadLine();
                    if (tb.Contains(XH))
                    {
                        tb.Remove(XH);
                        Console.Write("");
                        Console.Write("");
                        Console.Write("→→→→→→→→→→→" +
    "→→→→→→→→→→→已成功删除学号为【{0}】的同学信息!←←←←←←←←←←←←←←←←←←←←←", XH);
                    }
                    else
                    {
                        Console.WriteLine("学号不存在!无法删除!");
                    }

                    Console.Write("");
                    Console.Write("");
                    Console.WriteLine("  ▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅");
                    menu();
                    return Console.ReadLine();


                case "4":
                    Console.Write("");
                    Console.Write("");
                    Console.Write("请输入要修改的学生学号:");
                    XH = Console.ReadLine();
                    if (tb.Contains(XH))
                    {
                        Console.Write("");
                        Console.Write("");
                        Console.Write("请输入修改后的学生姓名:");
                        Console.Write("");
                        Console.Write("");
                        Console.Write("");
                        Console.Write("");
                        Console.Write("");
                        Console.Write("");
                    

                        name = Console.ReadLine();
                        tb[XH] = name;
                    }
                    else
                    {
                        Console.Write("");
                        Console.Write("");
                        Console.Write("");
                        Console.Write("");
                        Console.Write("");
                        Console.Write("");
                        Console.WriteLine("→→→→→→→→" +
    "→→→→→→→→→→→→→→→→→→ 学号不存在!←←←←←←←←←←←←←←←←←←←←←←←←←←←");
                        Console.Write("");
                        Console.Write("");
                    }
                    Console.WriteLine("▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅");
                    menu();
                    return Console.ReadLine();

                case "5":
                    return "5";
            }
            Console.WriteLine("输入有误,请重新输入");
            return "5";
        }



            
           
           
            }
}

        
       
            


有更优的代码欢迎T我,I would be obliged!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

.WNB

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值