C#实现学生学籍管理系统 (Mysql)

本文介绍了一个学籍管理系统的整体设计,包括模块功能、数据库设计、窗体设计等内容。系统覆盖了用户登录、注册、专业、班级及学生的管理等功能,并详细展示了部分核心功能的实现代码。

GitHub地址https://github.com/Knock-man/studentStatusManagementSyatem

一、模块功能

设计一个用户登录界面,当用户未注册时,点击注册后跳转注册界面,注册后返回登录界面。
登录后菜单功能模块:

在这里插入图片描述

二、数据库设计

数据库名称:StudentStatusManagement
各实体属性
专业(专业编号,专业名称,专业描述)
班级(班级编号,班级名称,班级人数,班级描述,班主任)
学生(学生编号,学生名称,性别,年龄,学生描述)
课程(课程编号,课程学分,课程名称,课程说明)
用户(用户编号,用户名,密码)
E-R图设计
在这里插入图片描述
关系模式设计

专业(专业编号,专业名称,专业描述)
Major(majorId,majorName,majorExplain)

班级(班级编号,班级名称,班级人数,班级描述,班主任,专业编号)
Class(classId,className,classCount,classExplain,teacher,majorId)

学生(学生编号,学生名称,性别,年龄,,学生描述,班级编号)
Student(studentId,studentName,sex,age,studentExplain,classId)

课程(课程编号,课程学分,课程名称,课程说明)
Course(courseId,courseGrade,courseName,courseExplain)

选课(课程号,学生编号,成绩)
Choose(courseId,studentId,grade)

用户(用户编号,用户名,密码)
User(userId,userName,userPassword)

建表

#建库
CREATE DATABASE IF NOT EXISTS StudentStatusManagement;
#建专业表
CREATE TABLE IF NOT EXISTS Major(
	majorId CHAR(10) NOT NULL PRIMARY KEY,
	majorName CHAR(10),
	majorExplain CHAR(30)
)
#建课程表
CREATE TABLE IF NOT EXISTS Course(
	courseId CHAR(10) NOT NULL PRIMARY KEY,
	courseGrade CHAR(10),
	courseName CHAR(10),
	courseExplain CHAR(30)
)
#建用户表
CREATE TABLE IF NOT EXISTS USER(
	userId INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
	userName CHAR(20),
	userPassword CHAR(20)
)
#建班级表
CREATE TABLE IF NOT EXISTS Class(
	classId CHAR(10)  NOT NULL PRIMARY KEY,
	className CHAR(10),
	classCount CHAR(10),
	classExplain CHAR(30),
	teacher CHAR(10),
	majorId char(10),
	FOREIGN KEY(majorId) REFERENCES  Major(majorId)
)
#建学生表
CREATE TABLE IF NOT EXISTS Student(
	studentId char(10) NOT NULL PRIMARY KEY,
	studentName char(10), 
	sex char(10),
	age char(10),
	studentExplain char(30),
	classId char(10),
	FOREIGN KEY(classId) REFERENCES  Class(classId)
)
#建选课表 
CREATE TABLE IF NOT EXISTS Choose(
	courseId char(10) not null,
	studentId char(10) not null,
	grade char(10),
	PRIMARY KEY(courseId,studentId),
	FOREIGN KEY(courseId) REFERENCES  Course(courseId),
	FOREIGN KEY(studentId) REFERENCES  Student(studentId)
)

三、窗体设计

各窗体控件名:

用户登录:
窗体名:register
用户名:userName
密码:passWord
验证码:verification

用户注册:
窗体名:sign
用户名:userName
密码:passWord
确认密码:againPassword

主菜单:
窗体名:Menu


添加专业:
窗体名:AddProfessional
专业编号:zhuanyeId
专业名称:zhuanyeName
专业描述:describe

浏览专业:
窗体名:BrowseMajor

修改专业:
窗体名:UpdateMajor

添加课程:
窗体名:AddCourse
课程编号:courseId
课程学分:courseCredit
课程名称:courseName
课程说明:describe

浏览课程:
窗体名:BrowseCourse

添加班级:
窗体名:AddClass
班级号:classId
班级名称:className
班主任:teacher
班级人数:count
所属专业:major
说明:emplain

班级浏览:
窗体名:BrowseClass
班级号:classid


添加学生:
窗体名:AddStudent
学号:studentId
姓名:studentName
性别:sex
年龄:age
班级编号:classId

学生预览:
窗体名:BrowseStudent
学号:studentId

录入成绩:
窗体名:AddScore
学号:studentId
课程号:courseId
成绩:Score

成绩浏览:
窗体名:BrowseScore

(一)登录界面

在这里插入图片描述

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

namespace studentStatusManagementSyatem
{
   
   
    public partial class register : Form
    {
   
   
        public register()
        {
   
   
            InitializeComponent();
        }
        
         
        private void button2_Click(object sender, EventArgs e)
        {
   
   
            this.Hide();
            sign stu = new sign();
            stu.Show();
        }

        private void button1_Click(object sender, EventArgs e)
        {
   
   
            #region 连接数据库
            //定义连接字符串
            string connStr = "Database=StudentStatusManagement;Data Source=127.0.0.1;port=3306;User Id=root;";
            MySqlConnection conn = new MySqlConnection(connStr);//创建Connection对象
            conn.Open();//打开数据库
            #endregion
            if (userName.Text=="")
            {
   
   
                MessageBox.Show("用户名不能为空", "用户登录", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

            }
            else if (passWord.Text == "")
            {
   
   
                MessageBox.Show("密码不能为空", "用户登录", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            }
            else if (verification.Text == "")
            {
   
   
                MessageBox.Show("验证码不能为空", "用户登录", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            }
            else if (verification.Text != label4.Text)
            {
   
   
                MessageBox.Show("验证码错误,请重新输入", "用户登录", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            }
            else
            {
   
   
                //查询数据库账户信息
                string username = userName.Text;
                string password = passWord.Text;
                string sql = "SELECT COUNT(*) FROM USER WHERE userName='" + username + "' AND userPassword = '" + password + "'; ";
                MySqlCommand com = new MySqlCommand(sql, conn);
                if (Convert.ToInt32(com.ExecuteScalar())==0)
                {
   
   
                    MessageBox.Show("用户名或者密码错误,请重新输入", "用户登录", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                }
                else
                {
   
   
                    Menu stu = new Menu();
                    stu.Show();
                    this.Hide();
                }
            }
        }

        private void register_Load(object sender, EventArgs e)
        {
   
   
            Random rd = new Random();
            label4.Text = Convert.ToString(rd.Next(1000, 10000));
        }
    }
}

(二)注册界面

在这里插入图片描述

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

namespace studentStatusManagementSyatem
{
   
   
    public partial class sign : Form
    {
   
   
        public sign()
        {
   
   
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
   
   
            #region 连接数据库
            //定义连接字符串
            string connStr = "Database=StudentStatusManagement;Data Source=127.0.0.1;port=3306;User Id=root;";
            MySqlConnection conn = new MySqlConnection(connStr);//创建Connection对象
            conn.Open();//打开数据库
            #endregion
            if (userName.Text == "")
            {
   
   
                MessageBox.Show("用户名不能为空", "用户注册", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

            }
            else if (passWord.Text == "")
            {
   
   
                MessageBox.Show("密码不能为空", "用户注册", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            }else if (againPassword.Text == "")
            {
   
   
                MessageBox.Show("请再次输入密码", "用户注册", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

            }else if (passWord.Text != againPassword.Text)
            {
   
   
                MessageBox.Show("两次密码输入不一致", "用户注册", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            }
            else
            {
   
   
                string username = userName.Text;
                string password = passWord.Text;
                //账户存入数据库
                string sql = "insert into User set userName='" + username + "',userPassword='" + password + "'";
                MySqlCommand com = new MySqlCommand(sql, conn);
                com.ExecuteNonQuery();
                MessageBox.Show("注册成功", "用户注册", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                this.Hide();
                register stu = new register();
                stu.Show();

            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
   
   
            this.Hide();
            register stu = new register();
            stu.Show();
        }

        private void sign_Load(object sender, EventArgs e)
        {
   
   

        }
    }
}

(三)主菜单

在这里插入图片描述

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace studentStatusManagementSyatem
{
   
   
    public partial class Menu : Form
    {
   
   
        public Menu()
        {
   
   
            InitializeComponent();
        }

        private void 添加专业ToolStripMenuItem_Click(object sender, EventArgs e)
        {
   
   
            //打开添加专业窗口
            page.Text = "添加专业";
            AddProfessional stu = new AddProfessional();
            stu.Show();
            

        }

        private void 专业浏览ToolStripMenuItem_Click(object sender, EventArgs e)
        {
   
   

            //打开浏览专业窗口
            page.Text = "专业浏览";
            BrowseMajor stu = new BrowseMajor();
            stu.Show();
        }

        private void 添加课程ToolStripMenuItem_Click(object sender, EventArgs e)
        {
   
   
            page.Text = "添加课程";
            AddCourse stu = new AddCourse();
            stu.Show();

        }

        private void 课程浏览ToolStripMenuItem_Click(object sender, EventArgs e)
        {
   
   
            page.Text = "课程浏览";
            BrowseCourse stu = new BrowseCourse();
            stu.Show();
        }

        private void 退出系统ToolStripMenuItem_Click(object sender, EventArgs e)
        {
   
   
            this.Hide();
            register stu = new register();
            stu.Show();
        }

        private void 班级浏览ToolStripMenuItem_Click(object sender, EventArgs e)
        {
   
   
            BrowseClass stu = new BrowseClass();
            stu.Show();
            page.Text = "班级浏览";
        }

        private void 添加班级ToolStripMenuItem_Click(object sender, EventArgs e)
        {
   
   
            AddClass stu = new AddClass();
            stu.Show();
            page.Text = "添加班级";
        }

        private void 添加学生ToolStripMenuItem_Click(object sender, EventArgs e)
        {
   
   
            page.Text = "添加学生";
            AddStudent stu = new AddStudent();
            stu.Show();

        }

        private void 学生浏览ToolStripMenuItem_Click(object sender, EventArgs e)
        {
   
   
            page.Text = "学生预览";
            BrowseStudent stu = new BrowseStudent();
            stu.Show();
        }

        private void 录入成绩ToolStripMenuItem_Click(object sender, EventArgs e)
        {
   
   
            page.Text = "添加成绩";
            AddScore stu = new AddScore();
            stu.Show();
        }

        private void 成绩浏览ToolStripMenuItem_Click(object sender, EventArgs e)
        {
   
   
            page.Text = "成绩浏览";
            BrowseScore stu = new BrowseScore();
            stu.Show();

        }

        private void Menu_Load(object sender, EventArgs e)
        {
   
   

        }
    }
}

(四)专业管理模块

添加专业
在这里插入图片描述

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

namespace studentStatusManagementSyatem
{
   
   
    public partial class AddProfessional : Form
    {
   
   
       
        public AddProfessional()
        {
   
   
            InitializeComponent();
        }

        private void button2_Click(object sender, EventArgs e)
        {
   
   
            
            this.Hide();
        }

        private void button1_Click(object sender, EventArgs e)
        {
   
   
            #region 连接数据库
            //定义连接字符串
            string connStr = "Database=StudentStatusManagement;Data Source=127.0.0.1;port=3306;User Id=root;";
            MySqlConnection conn = new MySqlConnection(connStr);//创建Connection对象
            conn.Open();//打开数据库
            #endregion
            if (zhuanyeId.Text == "")
            {
   
   
                MessageBox.Show("专业编号不能为空不能为空", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            }else if (zhuanyeName.Text == "")
            {
   
   
                MessageBox.Show("专业名称不能为空不能为空", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            }
            else
            {
   
   

                //数据库取数据判断专业是否存在
                string zhuanyeid = zhuanyeId.Text;
                string zhuanyename = zhuanyeName.Text;
                string miaoshu = textBox1
评论 27
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值