[C.C++] C#实现学生成绩管理系统

2356 0
黑夜隐士 2022-11-8 20:56:07 | 显示全部楼层 |阅读模式
本文实例为大家分享了C#实现学生成绩管理系统的具体代码,供大家参考,具体内容如下
使用链表写学生成绩管理系统
链表可以灵活的展示增删改查
下面是结果演示
这是登录及部分添加


继续添加


继续添加及输出成绩


学生成绩查询


学生信息修改再输出


删除再输出


0直接退出了
/*
  Author:马志勇
  date:2020-10-14
*/

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

namespace ConsoleApplication1
{
  class Program
  {
    static void Main(string[] args)
    {
     //2. 在用户登录界面提示用户输入用户名和密码,并根据用户名和密码决定  能否登录系统。
      //  3. 合法用户登陆成功后,在屏幕上显示如下功能菜单:
      //     1.学生成绩输入 2.学生成绩输出 3.学生成绩查询 4.学生成绩修改 0.退出系统
      //      提示用户输入选择号,用户输入正确的选择好后执行相应功能。执行完对应功  能后返回功能菜单。

      Console.WriteLine("欢迎来到成绩管理系统!");
      while (true) {
        Console.WriteLine("***请输入账号:");
        String userName = Console.ReadLine();
        Console.WriteLine("***请输入密码:");
        String userPassword = Console.ReadLine();
        if (userName.Equals("123456") && userPassword.Equals("456789"))
        {
          Console.WriteLine("***账号密码正确请进入");
          break;
        }
        else {
          Console.WriteLine("账号密码不一致,是否重新进入![1:重新输入---2:退出]");
          int n = int.Parse(Console.ReadLine());
          while (true) {
            if (n == 1 || n == 2)
            {
              break;
            }
            else {
              Console.WriteLine("***序号有误请重新输入!");
              n = int.Parse(Console.ReadLine());
            }
          }
          if (n==2) {
            Process.GetCurrentProcess().Kill();
          }
        }
      }

      showView();
      showChoice();

      StudentLinkedList link = new StudentLinkedList();

      while (true) {
        Console.WriteLine("***请选这些序号 ");
        int n = int.Parse(Console.ReadLine());
        switch (n) {
          //0.退出系统
          case 0: {
              Process.GetCurrentProcess().Kill();
              break;
            }
          //1.学生成绩输入
          case 1: {
              Console.WriteLine("***请输入ID账号:");
              int id = int.Parse(Console.ReadLine());
              Console.WriteLine("***请输入姓名:");
              String name = Console.ReadLine();
              Console.WriteLine("***请输入成绩:");
              int score = int.Parse(Console.ReadLine());
              link.add(getStudentNode(id, name, score));
              break;
            }
          //2.学生成绩输出
          case 2: {
              link.show();
              break;
            }
          // 3.学生成绩查询
          case 3:
            {
              Console.WriteLine("***请输入你要查找的id账号");
              int index = int.Parse(Console.ReadLine());
              Student student=link.search(index);
              Console.WriteLine(student.toString());
              break;
            }
          //4.学生成绩修改
          case 4:
            {
              Console.WriteLine("***[注]:只能修改成绩!");
              Console.WriteLine("***请输入你要修改的id账号");
              int index = int.Parse(Console.ReadLine());
              Console.WriteLine("***请输入你要修改的id分数");
              int score = int.Parse(Console.ReadLine());
              link.upThis(index, score);
              break;
            }
          case 5:
            {
              Console.WriteLine("***请输入你要删除的id账号");
              int index = int.Parse(Console.ReadLine());
              link.delete(index);
              break;
            }
          default: {
              break;
            }

        }
        showChoice();
      }
      Console.ReadKey();
    }

    //获取节点对象
    public static StudentNode getStudentNode(int id,String name,int score ) {
      return new StudentNode(new Student(id,name,score));
    }

    //启动界面
    // 1.学生成绩输入 2.学生成绩输出 3.学生成绩查询 4.学生成绩修改 0.退出系统
    public static void showView() {
      Console.WriteLine("|----------------------------程序启动---------------------------|");
      Console.WriteLine("|\t\t\t学生成绩管理系统\t\t\t|");
      Console.WriteLine("|---------------------------------------------------------------|");
      Console.WriteLine("|\t\t\t开发人姓名:马志勇\t\t\t|");
      Console.WriteLine("|\t\t\t开发时间:2020-20-14\t\t\t|");
      Console.WriteLine("|\t\t\t按任意键进入系统\t\t\t|");
      Console.WriteLine("|---------------------------------------------------------------|");
    }
    public static void showChoice() {
      Console.WriteLine("|---------------------------------------------------------------|");
      Console.WriteLine("|\t\t\t0.退出系统\t\t\t\t|");
      Console.WriteLine("|\t\t\t1.学生成绩输入\t\t\t\t|");
      Console.WriteLine("|\t\t\t2.学生成绩输出\t\t\t\t|");
      Console.WriteLine("|\t\t\t3.学生成绩查询\t\t\t\t|");
      Console.WriteLine("|\t\t\t4.学生成绩修改\t\t\t\t|");
      Console.WriteLine("|\t\t\t5.删除这个学生\t\t\t\t|");
      Console.WriteLine("|---------------------------------------------------------------|");
    }

  }

  class StudentLinkedList
  {
    //定义一个头结点啥都不放
    StudentNode head = null;
    public StudentLinkedList() {
      head=new StudentNode(null);
    }
    //添加 按照学号顺序顺序进行添加
    //如果学号相同则不能添加
    public void add(StudentNode node)
    {
      if (head.next == null)
      {
        head.next = node;
        return;
      }
      //否则定义一个变量临时变量进行处理;
      StudentNode temp = head;
      int id = node.s.getId();
      bool flag = false;
      while (true)
      {
        if (temp.next == null)
        {
          flag = false;
          break;
        }
        if (temp.next.s.getId() > id)
        {
          flag = false;
          break;
        }
        else if (temp.next.s.getId() == id)
        {
          //这个情况是有重复的就不能添加进去
          flag = true;
          break;
        }
        temp = temp.next;
      }
      if (flag)
      {
        Console.WriteLine("这个序号已经存在");
      }
      else {
        node.next=temp.next;
        temp.next = node;
      }
    }

    //删除
    //只能通过id进行删除
    public bool delete(int id) {
      if (head.next==null) {
        return false;
      }
      StudentNode temp = head;
      while (true) {
        if (temp.next==null) {
          return false;
        }

        if (temp.next.s.getId()==id) {
          break;
        }
        temp = temp.next;
      }
      if (temp.next.next != null)
      {
        temp.next = temp.next.next;
      }
      else {
        temp.next = null;
      }

      return true;
    }

    //修改
    //只能修改成绩
    public void upThis(int id,int score) {
      if (head.next == null)
      {
        Console.WriteLine("没有数据,无法修改!");
        return;
      }
      StudentNode temp = head.next;
      while (true) {
        if (temp==null) {
          Console.WriteLine("没有这个ID数据!");
          return;
        }
        if (temp.s.getId()== id) {
          temp.s.setScore(score);
          return;
        }
        temp = temp.next;
      }
    }

    //查询
    public Student search(int id)
    {
      if (head.next == null)
      {
        Console.WriteLine("没有数据,无法修改!");
        return null;
      }
      StudentNode temp = head.next;
      while (true)
      {
        if (temp == null)
        {
          Console.WriteLine("没有这个ID数据!");
          return null;
        }
        if (temp.s.getId() == id)
        {
          return new Student(temp.s.getId(), temp.s.getName(), temp.s.getScore());
        }
        temp = temp.next;
      }
    }

    //遍历
    public void show() {
      Console.WriteLine("ID\t\t姓名\t\t分数");
      StudentNode temp = head.next;
      while (true) {
        if (temp==null) {
          break;
        }
        Console.WriteLine(temp.s.getId()+"\t\t"+temp.s.getName()+"\t\t"+temp.s.getScore());
        temp = temp.next;
      }
    }
  }

  //创建一个链表进行处理这些数据
  class StudentNode
  {
    public Student s;
    public StudentNode next;
    public StudentNode(Student s)
    {
      this.s = s;
    }
  }
  //定义学生类
  class Student
  {
    private int id;
    private String name;
    private int score;
    public Student(int id, String name, int score)
    {
      this.id = id;
      this.name = name;
      this.score = score;
    }

    public void setId(int id)
    {
      this.id = id;
    }
    public int getId()
    {
      return this.id;
    }

    public String getName()
    {
      return this.name;
    }

    public void setName(String name)
    {
      this.name = name;
    }

    public int getScore()
    {
      return this.score;
    }

    public void setScore(int score)
    {
      this.score = score;
    }

    public String toString() {
      return "ID:"+getId() + "\t姓名:" + getName() + "\t成绩:" + getScore();
    }
  }

  //这是用户类
  class User
  {
    private String userName;
    private String userParsword;
    public User(String userName, String userParsword)
    {
      this.userName = userName;
      this.userParsword = userParsword;
    }
    public String getUserName()
    {
      return this.userName;
    }

    public void setName(String userName)
    {
      this.userName = userName;
    }

    public String getUserParsword()
    {
      return this.userParsword;
    }

    public void setUserParsword(String userParsword)
    {
      this.userParsword = userParsword;
    }
  }
}以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持中国红客联盟。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行