。。。同学
项目介绍:
- 学习哈希表的使用
- 哈希表的增删改查
- 注意导入Collections
- 实现重复学号的冲突检测
考虑点个赞吗亲
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;
}
}
}
}
}