本文实例为大家分享了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; } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。