C#学生成绩管理系统
理想艺术!马 人气:0使用链表写学生成绩管理系统
链表可以灵活的展示增删改查
下面是结果演示
这是登录及部分添加
继续添加
继续添加及输出成绩
学生成绩查询
学生信息修改再输出
删除再输出
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; } } }
加载全部内容