我的编程空间,编程开发者的网络收藏夹
学习永远不晚

C#实现学生管理系统

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

C#实现学生管理系统

本文实例为大家分享了C#实现学生管理系统的具体代码,供大家参考,具体内容如下

添加3个类,分别实现 IComparer接口,实现对Student类的三个字段的排序。

1、学生类:学号、姓名、年龄
2、请选择:1、添加学生信息。2、删除学生信息 2、查询学生信息。
3、重复的学号不能添加。
4、查询学生信息功能中有:1、查询所有(按学号排序)2、查询所有(按姓名排序),2、查询所有(按年龄排序)4、按学号查询(查没有,则打印查无此学生)5、退出

学生类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _01
{

    class Student
    {
        public string Num { get; set; }//学号
        public string Name { get; set; }//姓名
        public int Age { get; set; }//年龄
        //创建带参的构造方法
        public Student(string num,string name,int age) {
            this.Num = num;
            this.Name = name;
            this.Age = age;
        }
        //创建无参的构造方法,在本次代码中未使用
        public Student() { }
        //重写了Tostring()的方法将字典中的值输出打印
        public override string ToString()
        {

            return $"学号:{Num}姓名:{Name}年龄:{Age}";
        }
        //创建比较器用于比较
        public int CompareTo(Student other)
        {
            return this.Num.CompareTo(other.Num);
        }

    }
}

工具类(Utility)

工具类中封装了一些方法用于调用,使得主方法中的代码简洁

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _01
{
    //判断输入的数字是否正确
    class Utility
    {
        public static int readMenuSelection() {
        int c;
        for (; ; ) {
             c = int.Parse(Console.ReadLine()); 
            if (c != 1 && c != 2 && c != 3 && c != 4) {
                    Console.WriteLine("选择错误,请重新输入:"); 
            } else break;
        }
        return c;
    }
        public static int readMenuSelection2()
        {
            int c;
            for (; ; )
            {
                c = int.Parse(Console.ReadLine());
                if (c != 1 && c != 2 && c != 3 && c != 4&&c!=5)
                {
                    Console.WriteLine("选择错误,请重新输入:");
                }
                else break;
            }
            return c;
        }

        //用于确认选择的输入。该方法从键盘读取‘Y'或'N',并将其作为方法的返回值。
        public static string readConfirmSelection()
        {
            string b;
            for (; ; )
            {
                b = Console.ReadLine();
                //将输入的值转换成小写的字母,用于用户区分大小写的输入
                string c = b.ToLowerInvariant();
                if (c.Equals("y")||c.Equals("n"))
                {
                    break;
                }
                else
                {
                    Console.WriteLine("选择错误,请重新输入:"); 
                }
            }
            return b;
        }
        //创建添加的方法
       public static void AddStudent(Dictionary<string, Student> dc)
        {
            bool Flag = true;
            while (Flag)
            {
                Console.WriteLine("请输入学号:");
                string num = Console.ReadLine();

                Console.WriteLine("请输入姓名:");
                string name = Console.ReadLine();

                Console.WriteLine("请输入年龄:");
                int age = int.Parse(Console.ReadLine());
                Student student = new Student(num, name, age);
                //判断输入的学号是否重复
                if (!dc.ContainsKey(num))
                {
                    dc.Add(student.Num, student);
                    Console.WriteLine("添加成功");
                }
                else
                {
                    Console.WriteLine("已存在,添加失败");
                }

                Console.WriteLine("是否继续添加(Y/N)):");
                string b = Utility.readConfirmSelection();
                if (b.Equals("n"))
                {
                    Flag = false;
                }

            }
            }
        //创建一个输出全部信息的方法
        public static void Print(Dictionary<string,Student> dc) {
            //循环遍历,将 Dictionary<K,V> 类中的值赋值给item
            //需要重写Tostring方法,否则输出的值为该值得命名空间
            foreach (var item in dc.Values)
            {
                Console.WriteLine(item);
            }
        
        }
        //删除学生信息
        public static void DeleteStudent(Dictionary<string, Student> dc) {
            Console.WriteLine("请输入要删除的学生学号");
            string num = Console.ReadLine();
            //判断num值是否在该类中
            if (dc.ContainsKey(num))
            {
                //根据提供的num移除目标
                dc.Remove(num);
                Console.WriteLine("删除成功");
            }
            else
            {
                Console.WriteLine("该学号的学生信息不存在");
            }


        }
        //将排序后的元素输出
        internal static void Print(List<Student> students)
        {
            foreach (var item in students)
            {
                Console.WriteLine(item);
            }
        }
        //按照学号查询,如果没查到返回查无此人
        public static void QueryByNum(Dictionary<string, Student> dc)
        {
            Console.WriteLine("请输入你要查询的学号");
            string num = Console.ReadLine();
            //
            if (dc.ContainsKey(num))
            {
                Console.WriteLine(dc[num]);
            }
            else
            {
                Console.WriteLine("查无此人");
            }
        }
        //按年龄排序
        public static void Age(Dictionary<string, Student> dc)
        {
            List<Student> students = new List<Student>();
            //字典中无序,将字典中的值存放到有序的list集合中
            students.AddRange(dc.Values);
            //调用NameSort的方法
            students.Sort(new AgeSort());
            Utility.Print(students);
        }

        //按名字排序
        public static void NameSort(Dictionary<string, Student> dc)
        {
            List<Student> students = new List<Student>();
            //字典中无序,将字典中的值存放到有序的list集合中
            students.AddRange(dc.Values);
            //调用NameSort的方法
            students.Sort(new NameSort());
            Utility.Print(students);
        }

        //按学号排序
        public static void NumSort(Dictionary<string, Student> dc)
        {
            List<Student> students = new List<Student>();
            //字典中无序,将字典中的值存放到有序的list集合中
            students.AddRange(dc.Values);
            //调用NameSort的方法
            students.Sort(new NumSort());
            Utility.Print(students);

        }
    }
}

比较器

创建三个比较器用于比较排序,使用IComparer<>接口

1.年龄比较器

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _01
{
    class NameSort : IComparer<Student>
    {
        public int Compare(Student x, Student y)
        {
            return x.Name.CompareTo(y.Name);
        }
    }
}

2.姓名比较器`

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _01
{
    class NameSort : IComparer<Student>
    {
        public int Compare(Student x, Student y)
        {
            return x.Name.CompareTo(y.Name);
        }
    }
}

3.学号比较器

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _01
{
    //构造比较器,进行比较
    class NumSort : IComparer<Student>
    {
        public int Compare(Student x, Student y)
        {
            return x.Num.CompareTo(y.Num);
        }
    }
}

主方法中的代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
namespace _01
{
    class Program
    {
        static void Main(string[] args)
        {
            Student stu1 = new Student("007","李华",12);
            Student stu2 = new Student("004", "张三", 13);
            //Dictionary<数据类型,数据类型> 对象名 = new Dictionary<数据类型,数据类型>();

            Dictionary<string, Student> ha = new Dictionary<string, Student>();
            //将学生类对象添加到字典中
            ha.Add(stu1.Num,stu1);
            ha.Add(stu2.Num,stu2);

            bool Flag = true;
            while (Flag)
            {
            Console.WriteLine("请选择:1、添加学生信息。2、删除学生信息 3、查询学生信息;4.退出");
            int a = Utility.readMenuSelection();
            switch (a)
            {
                case 1:
                    //添加
                    Utility.AddStudent(ha);
                    //输出
                    Utility.Print(ha);
                    break;
                case 2:
                    //删除
                    Utility.DeleteStudent(ha);
                    Utility.Print(ha);
                    break;
                case 3:
                        //查询
                        Console.WriteLine("1、查询所有(按学号排序)2、查询所有(按姓名排序),3、查询所有(按年龄排序)" +
                       "4、按学号查询(查没有,则打印查无此学生)5、退出");
                        int q = Utility.readMenuSelection2();
                        switch (q)
                        {
                            case 1:
                                //查询所有(按学号排序)
                               Utility.NumSort(ha);
                                break;
                            case 2:
                                //查询所有(按姓名排序)
                                Utility.NameSort(ha);
                                break;
                            case 3:
                                //查询所有(按年龄排序)
                                Utility.Age(ha);
                                break;
                            case 4:
                                //按学号查询(查没有,则打印查无此学生)
                                Utility.QueryByNum(ha);
                                break;
                            case 5:
                                //退出
                                break;
                            default:
                                break;
                        }
                        break;
                case 4:
                    Console.WriteLine("确认是否退出(Y/N)");
                    string b = Utility.readConfirmSelection();
                    if (b.Equals("y"))
                    {
                        Flag = false;
                    }
                    //退出
                    break;
                default:
                    break;
            }

            }
            Console.ReadKey();

        }

 
    }
}

以上就是用一些简单的代码完成一个简易的学生管理系统

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

C#实现学生管理系统

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

C#实现学生管理系统

这篇文章主要为大家详细介绍了C#实现学生管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
2022-11-13

C#实现学生成绩管理系统

这篇文章主要为大家详细介绍了C#实现学生成绩管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
2022-11-13

JavaWeb实现学生管理系统

JavaWeb实现学生管理系统 一、项目介绍二、项目结构三、前期准备1.配置maven环境,在pom.xml配置文件中配置项目所依赖的jar包2.在MySql数据库中,创建登录注册表login和学生信息表student(1)登录注册
2023-08-16

C#实现简单学生成绩管理系统

这篇文章主要为大家详细介绍了C#实现简单学生成绩管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
2022-11-13

Android实现学生管理系统

本文实例为大家分享了Android实现学生管理系统的关键性代码,供大家参考,具体内容如下 局部效果图: 实现代码: 1、布局
2022-06-06

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录