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

2022-08-03,

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

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

《C#实现学生成绩管理系统.doc》

下载本文的Word格式文档,以方便收藏与打印。