系统设计内容
本系统主要用于中学生信息管理。 总体任务是实现中学生信息关系的系统化、规范化、自动化。 其主要任务是利用计算机对中学生信息进行查询、修改、增删等日常管理。 另外,还考虑到用户的登录权限,针对中学生信息和权限登录的中学生成绩管理系统。
本系统主要包括注册管理、教师管理、学生信息查询、添加、修改、删除等,其主要功能有:
(1)添加学生信息编译源码界面信息修改,包括录入中学生基本信息和成绩。
(2)学生信息查询,包括中学生基本信息、成绩查询。
(三)学生信息变更,包括中学生基本信息、成绩变更。
(四)学生信息的删除,包括中学生基本信息、成绩的变更。
(5)登录用户密码修改,用户登录系统后可以修改相应的用户密码。
(6)管理员用户管理用户名,包括添加新用户和删除用户。
泛函分析
中学生成绩管理系统采用Visual Studio 2019和SQL Server 2014数据库。 系统分为两类用户,即系统管理员和辅导员。
系统管理员进入中学生成绩管理系统的主要功能为:实现所有用户的添加、删除、修改、查看等管理员基本功能,参与开课、选课的管理,安排班主任的教学工作,管理员负责每门课程。 设置是可选的或强制的。 实现中学生成绩的变动管理。
辅导员进入中学生成绩管理系统的主要功能有:查询所管理班级的成绩、打印不及格中学生名单、录入中学生信息、更改自己的账户密码等。
数据项名称:账户 含义:用户的唯一标识 数据类型:char 宽度:10 数据项之间的关系:账户→密码
数据项名称:密码含义:登录时账户对应的唯一标识数据类型:char 宽度:10 数据项之间的关系:
数据项名称:学号 含义:学生的唯一标识 数据类型:char 宽度:10 数据项之间的关系:
数据项名称:学生姓名 含义:学生姓名 数据类型:char 宽度:10 数据项之间的关系:
数据项名称:性别 含义:学生性别 数据类型:char 长度:2 数据项之间的关系:学号 → 性别
数据项名称:院系 含义:学生所在院系 数据类型:char 长度:20 数据项之间的关系:(学号、学生姓名)→院系
数据项名称:专业 含义:学生专业 数据类型:char 长度:20 数据项之间的关系:(学号、学生姓名)→专业
数据项名称:成绩 含义:学生成绩 数据类型:char 长度:10 数据项之间的关系:
数据项名称:课程名称 含义:学生学习的课程名称 数据类型:char 长度:10 数据项之间的关系:课程编号 → 课程名称
数据项名称:班主任 含义:讲授该课程的班主任姓名 数据类型:char 长度:10 数据项之间的关系:(课程号、课程名称)→班主任
数据项名称:开设课程的院系 含义:开设课程的院系名称 数据类型:char 长度:10 数据项之间的关系:(课程号、课程名称)→开设课程的院系
数据项名称:课程编号 含义:课程的唯一标识符 数据类型:char 长度:4 数据项之间的关系:
数据项名称:Grade 含义:Grade 数据类型:int 长度:4 数据项之间的关系:(课程号、学号)→ Grade
数据结构
数据结构名称:学生信息表含义:学生基本信息组成:学生基本信息
数据结构名称:课程信息表含义:课程的基本信息组成:课程号+课程名称+班主任+院系
数据结构名称:学生成绩信息表含义:选课成绩信息组成:课程号+学生号+成绩
数据结构名称:登录信息表含义:登录时需要输入的信息组成:账号+密码
数据流
数据流名称:学生 描述:用于查询中学生基本信息 数据流来源:学生数据流 数据流目的地:学生 模块组成:学号、姓名、年级、院系、专业、性别
数据流名称:成绩描述:用于查询中学生各科考试成绩数据流来源:成绩数据流数据流目的地:成绩模块组成:课程号、学号、成绩
数据流名称:选修课 描述:用于查询每门课程的基本信息 数据流源:选修课数据流 数据流目的地:选修课 模块组成:课程号、课程名称、授课班主任、院系
数据流名称: 登录描述: 用于登录课程管理系统 数据流源: 登录数据流 数据流目的地: 登录信息 模块组成: 账号、密码
数据存储
数量:1 数据存储名称:学生信息存储描述: 用于存储中学生各种信息的输入数据流: 输出数据流: 学生信息表组成:学号+学生姓名+性别+院系+年级+专业
数量:2 数据存储名称:课程信息存储描述:用于存储课程各种信息的输入数据流:课程信息输出的数据流:课程基本信息表组成:课程号+课程名称主讲老师+开课部门
数量:3 数据存储器名称:成绩信息存储器描述:存储成绩各种信息输入的数据流:学生成绩信息输出的数据流:选课成绩信息表组成:课程号+学号+成绩
数量:4 数据存储器名称:登录信息存储器描述:用于存储中学生的各种登录信息 输入数据流:基本登录信息 输出数据流:登录信息表 组成:账号+密码
加工
处理流程描述 = {处理流程名称,描述,输入:{数据流},输出:{数据流},处理:{简要描述}}
流程名称: 登录界面 描述: 用户登录时的界面 输入数据流: 输入账号和登录密码 输出数据流: 进入操作选择界面 处理: 如果登录成功编译源码界面信息修改,则进入操作选择界面; 如果登录失败,则退出系统
处理流程名称:查询统计界面 描述:查询中学生信息、课程信息、学生成绩信息时界面输入数据流:学号、课程号 输出数据流:进入学习查询统计界面 处理:查看学生、课程、和学生成绩各种基本信息
流程名称:添加信息 接口说明:添加中学生、课程、学生成绩信息时接口输入数据流:学号、姓名、专业、院系、年级、课程号、课程名称、成绩、班主任、开学系 系输出数据流程:进入添加信息界面处理:添加中学生、课程、学生成绩等各种基本信息。
流程名称:删除信息 接口说明:删除信息时的界面 输入数据流:课程号、学号 输出数据流:删除信息 接口处理:删除中学生基本信息、课程、学生成绩
流程名称:修改信息界面说明:修改中学生、课程、学生成绩信息时的界面输入数据流程:学号、姓名、专业、院系、年级、课程号、课程名称、成绩、授课班主任、开设院系部门输出数据流程:进入添加信息界面进行处理:修改中学生、课程、学生成绩等各种基本信息。
流程名称:修改密码界面 描述:修改登录信息时的界面 输入数据流:账号、密码 输出数据流:进入更改登录信息界面 处理:修改登录信息的账号密码
处理流程名称:用户管理界面 描述:数据库管理员管理用户信息时的界面 输入数据流:账号、密码 输出数据流:进入用户管理界面 处理:管理用户的账号和密码
操作界面
登录界面源码
private void Button4_Click(object sender, EventArgs e)
{
this.Close();
}
private void Button3_Click(object sender, EventArgs e)
{
if (textBox1.Text == "" || textBox2.Text == "")
MessageBox.Show("提示:请输入用户名和密码!", "警告");
SqlConnection conn = new SqlConnection("Data Source=(local);Initial Catalog=Sperformance;Integrated Security=True;MultipleActiveResultSets=true");
conn.Open();
SqlCommand cmd = new SqlCommand("select * from 登陆信息表 where 账号='" + textBox1.Text.Trim() + "' and 密码='" + textBox2.Text.Trim() + "'", conn);
SqlDataReader sdr = cmd.ExecuteReader();
sdr.Read();
if (sdr.HasRows)
{
MessageBox.Show("登录成功!", "提示");
Form2 frm = new Form2();
frm.Owner = this;
frm.ShowDialog();
}
else
MessageBox.Show("提示:账号或密码错误!", "警告");
conn.Close();
sdr.Close();
}
添加信息界面源码
private void Button1_Click(object sender, EventArgs e)
{
string StuNo = sno.Text.Trim();
string StuName = name.Text.Trim();
string StuSex = sex.Text.Trim();
string StuMajor = major.Text.Trim();
string StuGrade = grade.Text.Trim();
string StuDept = depart.Text.Trim();
if (String.IsNullOrEmpty(StuNo))
{
MessageBox.Show("学号不能为空!");
}
if (String.IsNullOrEmpty(StuName))
{
MessageBox.Show("姓名不能为空!");
}
if (String.IsNullOrEmpty(StuMajor))
{
MessageBox.Show("专业不能为空!");
}
if (String.IsNullOrEmpty(StuGrade))
{
MessageBox.Show("年级不能为空!");
}
string mystr, mysql;
SqlConnection myconn = new SqlConnection();
SqlCommand mycmd = new SqlCommand();
mystr = "Data Source=.;Initial Catalog=Sperformance;Integrated Security=True;MultipleActiveResultSets=true";
myconn.ConnectionString = mystr;
myconn.Open();
mysql = string.Format ( " insert into 学生信息 values('{0}','{1}','{2}','{3}','{4}','{5}')", StuNo, StuName, StuSex, StuMajor, StuGrade, StuDept);
mycmd.CommandText = mysql;
mycmd.Connection = myconn;
int count = mycmd.ExecuteNonQuery();
if (count > 0)
{
MessageBox.Show("添加成功!");
}
else
{
MessageBox.Show("添加失败!");
}
sno.Clear(); name.Clear(); sex.Clear();
major.Clear(); grade.Clear(); depart.Clear();
cno.Clear(); score.Clear();
myconn.Close();
}
private void Button3_Click(object sender, EventArgs e)
{
string StuNo = sno.Text.Trim();
string StuCno = cno.Text.Trim();
string StuScore = score.Text.Trim();
string StuMajor = major.Text.Trim();
if (String.IsNullOrEmpty(StuNo))
{
MessageBox.Show("学号不能为空!");
}
if (String.IsNullOrEmpty(StuCno))
{
MessageBox.Show("课程号不能为空!");
}
string mystr, mysql;
SqlConnection myconn = new SqlConnection();
SqlCommand mycmd = new SqlCommand();
mystr = "Data Source=.;Initial Catalog=Sperformance;Integrated Security=True;MultipleActiveResultSets=true";
myconn.ConnectionString = mystr;
myconn.Open();
mysql = string.Format(" insert into 学生成绩信息 values('{0}','{1}','{2}')", StuNo, StuCno, StuScore);
mycmd.CommandText = mysql;
mycmd.Connection = myconn;
int count = mycmd.ExecuteNonQuery();
if (count > 0)
{
MessageBox.Show("添加成功!");
}
else
{
MessageBox.Show("添加失败!");
}
sno.Clear(); name.Clear(); sex.Clear();
major.Clear(); grade.Clear(); depart.Clear();
cno.Clear(); score.Clear();
myconn.Close();
}
private void Button4_Click(object sender, EventArgs e)
{
string CouCno = cno.Text.Trim();
string CouSname = cname.Text.Trim();
string TeaTname = name.Text.Trim();
string TeaDept = depart.Text.Trim();
if (String.IsNullOrEmpty(CouCno))
{
MessageBox.Show("课程号不能为空!");
}
if (String.IsNullOrEmpty(CouSname))
{
MessageBox.Show("课程名不能为空!");
}
if (String.IsNullOrEmpty(TeaTname))
{
MessageBox.Show("任课老师不能为空!");
}
if (String.IsNullOrEmpty(TeaDept))
{
MessageBox.Show("开设院系不能为空!");
}
string mystr, mysql;
SqlConnection myconn = new SqlConnection();
SqlCommand mycmd = new SqlCommand();
mystr = "Data Source=.;Initial Catalog=Sperformance;Integrated Security=True;MultipleActiveResultSets=true";
myconn.ConnectionString = mystr;
myconn.Open();
mysql = string.Format(" insert into 课程信息 values('{0}','{1}','{2}','{3}')", CouCno, CouSname, TeaTname, TeaDept);
mycmd.CommandText = mysql;
mycmd.Connection = myconn;
int count = mycmd.ExecuteNonQuery();
if (count > 0)
{
MessageBox.Show("添加成功!");
}
else
{
MessageBox.Show("添加失败!");
}
sno.Clear(); name.Clear(); sex.Clear();
major.Clear(); grade.Clear(); depart.Clear();
cno.Clear(); score.Clear(); cname.Clear();
myconn.Close();
}
后续代码大致相同,使用c#结合sql语句。 该项目在这里。