目录
一.课程设计说明 1
1.1项目概述 1
1.2设计任务和要求 1
1.3开发环境说明 1
二.需求分析阶段 1
2.1项目介绍 2
2.2数据需求分析 2
三.概念结构设计 3
3.1E-R图 4
3.2数据库设计 5
3.3数据字典 8
四.用户界面设计 11
4.1学生信息管理系统 12
4.2学生信息查询 12
4.3教师查询 12
4.4管理员查询 12
4.5专业负责人查询 13
五.程序设计 14
六.运行结果 28
七.总结
一.课程设计说明
1.1项目概述:
学生管理系统
一所大学希望建立一个数据库以便对学生进行管理。当一个学生进入学校时,他就会选择一个专业。每个学生也会指定一个指导老师。每个专业每年由一些课程组成。组成专业的课程的最小和最大数目分别是6和8。一般情况下给一个学生三次机会来通过这门课程的考试。有些特殊的课程可以在一个或多个专业中存在。大学可以有几个部门,每个部门都有一个部门负责人,每个课程都会分配一定数量的员工(称为课程合作人)来负责课程的教学
1.2设计任务与要求
建立数据库,来完成对学生进行管理的目的,要求要按照题目设定,包括学生、教师、管理员的学生管理系统的设计与开发。
1.3开发环境说明
采用SQL SERVER和Visual Studio 来进行系统开发。
二.功能需求分析阶段
2.1项目介绍
学生管理系统在学生方面,新生在校注册,注册时选择专业,从而学校分配指导教师完成在校学习的课程,学生也可通过学生管理系统查询个人信息,包括个人选修课信息,考试信息等。
在教师方面,教师可以通过学生管理系统查询任教的课程信息,以及对学生的考试成绩的录入。
在管理员方面,管理员可以通过管理员权限查询、增加、删除、修改所有信息。
2.2数据需求分析
总结如下:
2.3数据处理与任务需求
下面列出的是学生管理数据库应用应该支持的事务。
(1) 数据应该能够支持下述维护事务。
a) 创建和维护学校内学生的详细信息。
b) 创建和维护学校内教师的详细信息。
c) 创建和维护学校内课程的详细信息。
(2) 数据应该能够支持下述查询事务
a) 以报表形式列出学生的姓名,学号及其他详细信息
b) 以报表形式列出专业的名称、专业号及其他详细信息
c) 以报表形式列出课程的名称、课程号及其他详细信息
d) 列出某一给定学生的课程及成绩
e) 列出某一专业的课程信息
三、概念结构设计
3.1E-R图的分析和设计
3.2数据库逻辑设计
ER图和关系模式的转化
3.3数据字典
实体简介
学生(学号,姓名,性别,出生日期,民族,所在专业编号,指导教师编号,电话号码,家庭地址,信息备注)
课程(课程号,课程名,学分)
专业(专业号,专业名,专业负责人号)
教职工(教师号,姓名,性别,出生日期,民族,所在专业编号,职称,电话,家庭地址,信息备注)
)
专业课设表(专业号、课程号)
考试(课程号,学号,成绩,考试次数)
用户(用户编号,用户密码,用户类别)
(1) 学生表Student细节
(2) 4.2教师个人信息表TEACHER(教师号TNO,姓名TNAME,性别TSEX,出生日期TBIRTHDAY,名族TNATIVE,所在专业编号TDEPTNO,职称TPOSITION,电话STEL,家庭住址SADDRESS,备注信息SNOTE)
(3) 4.3专业表MAJOR(专业号MNO,专业名MNAME,专业负责人编号MTEACHER)
(4) 4.4课程表 COURSE(课程号CNO,课程名CNAME,学分CGRADE
授课教师CTEACHER)
(5) 4.5成绩表SC(学生号SNO,课程号CNO,成绩SCGRADE)
(6) 4.6专业课设表MC(专业号MNO,课程号CNO)
属性名 字段类型 长度 主键或外键 说明
(7) 4.7用户表YONGHU(用户编号YNO,用户密码YMIMA,用户类别LEIBIE)
四、用户界面设计
4.1学生信息管理系统
4.2学生信息查询
4.3教师查询
4.4管理员查询
4.5专业负责人查询
五、程序设计
源代码
FORM1//学生信息管理系统
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace 学生管理系统
{
publicpartialclassForm1 : Form
{
SqlConnection conn = newSqlConnection("Data Source=asus;Initial Catalog=xueshengguanli;Integrated Security=True");
staticpublicstring sn, sub;
public Form1()
{
InitializeComponent();
}
Form2 fr2 = newForm2(); Form3 fr3 = newForm3(); Form4 fr4 = newForm4(); Form5 fr5 = newForm5();
privatevoid button1_Click_1(object sender, EventArgs e)
{
string str = "Data Source=asus;Initial Catalog=xueshengguanli;Integrated Security=True";
SqlConnection conn = newSqlConnection(str);
conn.Open();
if (textBox1.Text == "" || textBox2.Text == "")
MessageBox.Show("请不要遗漏信息!");
if (radioButton1.Checked)
{
string cstr = "select * from YONGHU where LEIBIE='管理员'and YNO='" + textBox1.Text.Trim() + "'and YMIMA='" + textBox2.Text.Trim() + "'";
SqlCommand comm = newSqlCommand(cstr, conn);
SqlDataReader dr = comm.ExecuteReader();
if (dr.Read())
{
sn = textBox1.Text.Trim();
Form4 fm = newForm4();
fm.Show();
fr4.Show(); this.Visible = false;
}
else
{
MessageBox.Show("输入有误,请重新输入!");
textBox1.Text = ""; textBox2.Text = "";
}
}
if (radioButton2.Checked)
{
string cstr = "select * from YONGHU where LEIBIE='教师'and YNO='" + textBox1.Text.Trim() + "'and YMIMA='" + textBox2.Text.Trim() + "'";
SqlCommand comm = newSqlCommand(cstr, conn);
SqlDataReader dr = comm.ExecuteReader();
if (dr.Read())
{ sn = textBox1.Text.Trim(); fr3.Show(); this.Visible = false; }
else
{
MessageBox.Show("输入有误,请重新输入!");
textBox1.Text = ""; textBox2.Text = "";
}
}
if (radioButton3.Checked)
{
string cstr = "select * from YONGHU where LEIBIE='学生'and YNO='" + textBox1.Text.Trim() + "'and YMIMA='" + textBox2.Text.Trim() + "'";
SqlCommand comm = newSqlCommand(cstr, conn);
SqlDataReader dr = comm.ExecuteReader();
if (dr.Read())
{ sn = textBox1.Text.Trim(); fr2.Show(); this.Visible = false; }
else
{
MessageBox.Show("输入有误,请重新输入!");
textBox1.Text = ""; textBox2.Text = "";
}
}
if (radioButton4.Checked)
{
string cstr = "select * from YONGHU where LEIBIE='专业负责人'and YNO='" + textBox1.Text.Trim() + "'and YMIMA='" + textBox2.Text.Trim() + "'";
SqlCommand comm = newSqlCommand(cstr, conn);
SqlDataReader dr = comm.ExecuteReader();
if (dr.Read())
{ sn = textBox1.Text.Trim(); fr5.Show(); this.Visible = false; }
else
{
MessageBox.Show("输入有误,请重新输入!");
textBox1.Text = ""; textBox2.Text = "";
}
}
conn.Close(); conn.Dispose();
}
privatevoid button2_Click_1(object sender, EventArgs e)
{
Application.Exit();
}
privatevoid radioButton4_CheckedChanged(object sender, EventArgs e)
{
string str = "Data Source=asus;Initial Catalog=xueshengguanli;Integrated Security=True";
SqlConnection conn = newSqlConnection(str);
conn.Open();
string cstr = "select * from YONGHU where LEIBIE='学生'and YNO='" + textBox1.Text.Trim() + "'and YMIMA='" + textBox2.Text.Trim() + "'";
SqlCommand comm = newSqlCommand(cstr, conn);
SqlDataReader dr = comm.ExecuteReader();
{
if (dr.Read())
{
sn = textBox1.Text.Trim();
fr2.Show();
this.Visible = false;
}
else
{
MessageBox.Show("输入有误,请重新输入!");
textBox1.Text = ""; textBox2.Text = "";
}
}
conn.Close(); conn.Dispose();
}
privatevoid radioButton3_CheckedChanged(object sender, EventArgs e)
{
string str = "Data Source=asus;Initial Catalog=xueshengguanli;Integrated Security=True";
SqlConnection conn = newSqlConnection(str);
conn.Open();
string cstr = "select * from YONGHU where LEIBIE='教师'and YNO='" + textBox1.Text.Trim() + "'and YMIMA='" + textBox2.Text.Trim() + "'";
SqlCommand comm = newSqlCommand(cstr, conn);
SqlDataReader dr = comm.ExecuteReader();
{
if (dr.Read())
{ sn = textBox1.Text.Trim();
fr3.Show();