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

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





