iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C#实现学生管理系统
  • 860
分享到

C#实现学生管理系统

C#学生管理系统C#学生系统C#学生管理 2022-11-13 14:11:38 860人浏览 安东尼
摘要

本文实例为大家分享了C#实现学生管理系统的具体代码,供大家参考,具体内容如下 添加3个类,分别实现 IComparer接口,实现对Student类的三个字段的排序。 1、学生类:学号

本文实例为大家分享了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();

        }

 
    }
}

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

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

--结束END--

本文标题: C#实现学生管理系统

本文链接: https://www.lsjlt.com/news/171612.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • C#实现学生管理系统
    本文实例为大家分享了C#实现学生管理系统的具体代码,供大家参考,具体内容如下 添加3个类,分别实现 IComparer接口,实现对Student类的三个字段的排序。 1、学生类:学号...
    99+
    2022-11-13
    C#学生管理系统 C#学生系统 C#学生管理
  • C++实现学生住宿管理系统
    本文实例为大家分享了C++实现学生住宿管理系统的具体代码,供大家参考,具体内容如下 功能 (1)学生信息包括:姓名、学号、年龄、性别、学院、年级等 (2)宿舍信息包括:宿舍编号、宿舍...
    99+
    2024-04-02
  • C++实现学生档案管理系统
    本文实例为大家分享了C++实现学生档案管理系统的具体代码,供大家参考,具体内容如下 课题描述: 1.为学生档案管理人员编写一个学生档案管理系统 ,用菜单选择方式完成下列功能: 2.学...
    99+
    2024-04-02
  • C#实现学生成绩管理系统
    本文实例为大家分享了C#实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 使用链表写学生成绩管理系统 链表可以灵活的展示增删改查 下面是结果演示 这是登录及部分添加 继续添...
    99+
    2022-11-13
    C#学生成绩管理系统 C#成绩管理系统 C#学生管理系统
  • C++实现学生宿舍管理系统
    本文实例为大家分享了C++实现学生宿舍管理系统的具体代码,供大家参考,具体内容如下 非常简易,完成个作业够用,仅供初学者参考,不喜勿喷。 #include<stdio.h>...
    99+
    2024-04-02
  • C++实现简单学生管理系统
    本文实例为大家分享了C++实现简单学生管理系统的具体代码,供大家参考,具体内容如下 实现学生管理,其中关键字可以自行替换。经过Visual C++6.0验证可执行成功。 #inclu...
    99+
    2024-04-02
  • C#开发Winform实现学生管理系统
    一、案例功能的实现 数据: --专业 create table ProfessionInfo ( ProfessionID int primary key identity(1,1...
    99+
    2024-04-02
  • C++实现学生信息管理系统(Map实现)
    本文实例为大家分享了C++实现学生信息管理系统的具体代码,供大家参考,具体内容如下 1、 作品的功能描述: 实现一个学生信息管理系统,通过对学生信息类中的成员进行增、删、改、查从而实...
    99+
    2024-04-02
  • JavaWeb实现学生管理系统
    JavaWeb实现学生管理系统 一、项目介绍二、项目结构三、前期准备1.配置maven环境,在pom.xml配置文件中配置项目所依赖的jar包2.在MySql数据库中,创建登录注册表login和学生信息表student(1)登录注册...
    99+
    2023-08-16
    servlet java 数据库
  • springboot实现学生管理系统
    本文实例为大家分享了SpringBoot实现学生管理系统,供大家参考,具体内容如下 一、创建springboot项目 点击下一步 点击下一步,选择要添加的依赖 点击下一步,...
    99+
    2024-04-02
  • C语言实现学生消费管理系统
    本文实例为大家分享了C语言实现学生消费管理系统的具体代码,供大家参考,具体内容如下 代码可以实现的功能: (1)直接从终端键盘输入信息(2)从磁盘文件录入学生信息(3)可以查询学生消...
    99+
    2022-11-13
    C语言学生消费系统 C语言消费管理系统 C语言学生管理系统
  • C语言实现班级学生管理系统
    本文实例为大家分享了C语言实现班级学生管理系统的具体代码,供大家参考,具体内容如下 下面是根据班级,这个人数较少的单位设计的学籍管理系统,录入时,要求班内序号由1开始  按顺序录入,...
    99+
    2024-04-02
  • C语言实现学生宿舍管理系统
    本文实例为大家分享了C语言实现学生宿舍管理系统的具体代码,供大家参考,具体内容如下 实现简单的学生宿舍基本信息管理,宿舍的基本信息包括楼号、房间号、面积、所容纳人数、已入住人数等,系...
    99+
    2024-04-02
  • 基于C语言实现学生管理系统
    本文实例为大家分享了C语言实现学生管理系统的具体代码,供大家参考,具体内容如下 1.目标要求: 1.学生成绩管理系统2.可增、删、改、查、浏览3.数据保存在文件中 2.C语言代码: ...
    99+
    2024-04-02
  • C#实现简单学生成绩管理系统
    本文实例为大家分享了C#实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 C#作业 用循环结构/数组实现 进入启动页面 管理员身份登入 用户名:师晓峰密码:88481234...
    99+
    2022-11-13
    C#学生成绩管理系统 C#学生管理系统 C#成绩管理系统
  • c语言实现学生管理系统详解
    目录infor.htest.cinfor.c总结 该学生管理系统的实现是通过分文件的方式来写的,infor.h 文件为头文件,源文件infor.c实现源文件tes...
    99+
    2024-04-02
  • C语言实现学生管理系统总结
    本文实例为大家分享了C语言实现学生管理系统的具体代码,供大家参考,具体内容如下 前言 本周完成了学生管理系统,在完成的过程中遇见了许多问题,今天来总结上周写管理系统一些比较困难的模块...
    99+
    2024-04-02
  • C语言实现学生信息管理系统
    本文实例为大家分享了C语言实现学生信息管理系统的具体代码,供大家参考,具体内容如下 #define _CRT_SECURE_NO_WARNINGS #include <stdi...
    99+
    2024-04-02
  • C语言实现简易学生管理系统
    本文实例为大家分享了C语言实现学生管理系统的具体代码,供大家参考,具体内容如下 首先我们在做一个管理系统之前要了解这个学生管理系统需要哪些功能,如:简单的增,删,改,查,即:录入成绩...
    99+
    2024-04-02
  • C++实现简单学生信息管理系统
    本文实例为大家分享了C++实现学生信息管理系统的具体代码,供大家参考,具体内容如下 编译环境: Microsoft Visual Studio 2019 3个头文件: Fileope...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作