资源描述
目录
一、题目概述(内容及规定) 1
二、需求分析 1
2.1高校就业管理系统 1
2.2高校就业管理系统数据流图 1
2.3高校就业系统管理系统功能框图 1
三、概要设计 2
3.1数据模型(E-R图) 2
3.2数据库表格构造设计 2
四、详细设计 3
4.1登录界面 3
4.2修改界面 5
4.3查询界面 10
五、软件测试 15
5.1划分等价类并编号 15
5.2有效测试用例 15
5.3无效测试用例 16
六、总结 16
参照文献 16
一、题目概述(内容及规定)
实现院系、专业、毕业生信息管理(设有就业标志,初值为‘待业’); 实现职业类型、职业信息(职业号、类型号、需求数量、聘任数量、用 人单位)登记; 实现毕业生就业登记(学号、职业号),自动修改相应学生就业标志 和职业聘任数量,并保证聘任数量不不不大于需求数量; 创立存储过程查询毕业生人数、待业人数、就业人数和就业率; 创立存储过程查询各专业毕业生就业率; 创立 check 约束限制毕业生性别必要为‘男’或‘女’; 建立表间关系。
二、需求分析
2.1高校就业管理系统
高校就业管理系统化可以完毕对学生信息修改、查询(就业率,已就业信息,未就业信息,公司信息)、添加(学生基本信息,院系信息,公司信息)、退出功能。初步完毕了对高校就业信息管理,界面设计简洁,使用简朴。
2.2高校就业管理系统数据流图
图2.1 高校就业管理系统数据流图
2.3高校就业系统管理系统功能框图
图2.2 高校就业系统管理系统功能框图
三、概要设计
3.1数据模型(E-R图)
图3 高校学生就业管理E_R图
3.2数据库表格构造设计
表3.1 学院信息表
列 名
数据类型
与否为空
阐明
院系编号
char(4)
NOT NULL
主键
院系名称
char(20)
NULL
表3.2 专业信息表
列 名
数据类型
与否为空
阐明
专业编号
char(6)
NOT NULL
主键
专业名称
char(20)
NULL
表3.3 员工信息表
列名
数据类型
与否为空
阐明
学号
char(10)
NULL
职业号
char(10)
NULL
表3.4 顾客信息表
列名
数据类型
与否为空
阐明
顾客名
char(10)
NULL
密码
char(10)
NULL
权限
char(10)
NULL
表3.5 用人单位信息表
列名
数据类型
与否为空
阐明
职业号
char(10)
NOT NULL
主键
类型号
char(10)
NULL
需求数量
int
NULL
聘任数量
int
NULL
用人单位
char(20)
NULL
表3.6 学生信息表
列名
数据类型
与否为空
阐明
姓名
char(20)
NULL
性别
char(2)
NOT NULL
Check(男,女)
出生年月
char(10)
NULL
籍贯
char(20)
NULL
专业编号
char(6)
NULL
院系编号
char(4)
NULL
就业标志
char(20)
NULL
初值为“待就业”
表3.7 职业信息表
列名
数据类型
与否为空
阐明
类型号
char(10)
NULL
主键
类型名称
char(20)
NULL
四、详细设计
4.1登录界面
登陆界面设计如图4.1所示:
图4.1 登陆界面设计
代码如下:
private void button1_Click(object sender,EventArgs e)
{
if (textBox1.Text != "")
{
if (textBox2.Text != "")
{
DataConnection.getConn();
string id = textBox1.Text.Trim();
string pwd = textBox2.Text.Trim();
string sql = "select count(*) from [login] where 顾客名='" + id + "' and 密码='" + pwd + "'";
int state = DataConnection.GetCountInfoBySql(sql);
if (state == 0 || state > 1)
{
MessageBox.Show("顾客名或密码错误!!!");
}
else
{
Form1 f2 = new Form1();
f2.Show();
this.Hide();
}
DataConnection.CloseConn();
}
else
{
MessageBox.Show("密码为空!!!请输入....");
}
}
else
{
MessageBox.Show("顾客名为空!!!请输入....");
}
}
private void button2_Click(object sender,EventArgs e)
{
textBox1.Text = "";
textBox2.Text = "";
}
4.2修改界面
修改界面设计如图4.2所示:
图4.2 修改界面设计
代码如下:
private void button7_Click(object sender,EventArgs e)
{
if (textBox1.Text != "")
{
string id = textBox1.Text.Trim();
if (radioButton3.Checked == true)
{
if (comboBox1.Text != "")
{
if (comboBox4.Text != "")
{
string a = "select sum(需求数量) from profesion_student,type where profesion_student.类型号=type.类型号 and profesion_student.用人单位='" + comboBox1.Text.Trim() + "'and 类型名称='" + comboBox4.Text.Trim() + "'";
int b = DataConnection.GetCountInfoBySql(a);
a = "select sum(聘任数量) from profesion_student,type where profesion_student.类型号=type.类型号 and profesion_student.用人单位='" + comboBox1.Text.Trim() + "' and 类型名称='" + comboBox4.Text.Trim() + "'";
int c = DataConnection.GetCountInfoBySql(a);
if (c < b)
{
string sql = "update student_info set 就业标志 = '已就业' where 学号='" + id + "'";
DataConnection.UpdateDate(sql);
sql = "select 学号 from employment where 学号='" + id + "'";
if (DataConnection.GetCountInfoBySql(sql) == 0)
{
sql = "insert into employment(学号)values ('" + id + "')";
DataConnection.UpdateDate(sql);
}
string s = "select 职业号 from profesion_student,type where profesion_student.类型号 =type.类型号 and profesion_student.用人单位='" + comboBox1.Text.Trim() + "' and 类型名称 ='" + comboBox4.Text.Trim() + "'";
s = DataConnection.GetDataString(s).Trim();
sql = "select count(*) from employment where 职业号='" + s + "'";
int d = DataConnection.GetCountInfoBySql(sql);
sql = "update profesion_student set 聘任数量=" + d + " where 职业号='" + s + "'";
DataConnection.UpdateDate(sql);
sql = "update employment set 职业号='" + s + "' where 学号='" + id + "'";
DataConnection.UpdateDate(sql);
}
else
MessageBox.Show("公司聘任数量已达上线!!!");
}
else
MessageBox.Show("类型号为空!!!请选取....");
}
else
{
MessageBox.Show("用人单位为空!!!请选取....\n否则,将就业状况修改为待就业!!!");
radioButton2.Checked = true;
string s = "update student_info set 就业标志='待就业' where 学号='" + id + "'";
DataConnection.UpdateDate(s);
string sql = "select 学号 from employment where 学号='" + id + "'";
int h = DataConnection.GetCountInfoBySql(sql);
s = "select 职业号 from employment where 学号='" + id+"'";
s = DataConnection.GetDataString(s).Trim();
if (DataConnection.GetCountInfoBySql(sql) > 0)
{
sql= "delete from employment where 学号= '" + id + "'";
int f = DataConnection.UpdateDate(sql);
}
sql = "select count(*) from employment where 职业号='" + s + "'";
int d = DataConnection.GetCountInfoBySql(sql);
sql = "update profesion_student set 聘任数量=" + d + " where 职业号='" + s + "'";
DataConnection.UpdateDate(sql);
}
}
else
MessageBox.Show("学号为空!!!请输入....");
}
}
private void tabPage2_Click(object sender,EventArgs e)
{
comboBox2.Items.Clear();
comboBox1.Items.Clear();
comboBox4.Items.Clear();
comboBox6.Items.Clear();
radioButton3.Checked = false;
radioButton1.Checked = false;
radioButton2.Checked = false;
radioButton4.Checked = false;
string sql = "select 专业名称 from department order by 专业编号 asc";
SqlDataReader dr = DataConnection.GetSqlDataReader(sql);
while (dr.Read())
{
comboBox2.Items.Add(dr["专业名称"]);
}
sql = "select distinct 用人单位 from profesion_student";
dr = DataConnection.GetSqlDataReader(sql);
while (dr.Read())
{
comboBox1.Items.Add(dr["用人单位"]);
}
sql = "select 类型名称 from dbo.type";
dr = DataConnection.GetSqlDataReader(sql);
while (dr.Read())
{
comboBox4.Items.Add(dr["类型名称"]);
}
sql = "select 院系名称 from academy order by 院系编号 asc";
dr = DataConnection.GetSqlDataReader(sql);
while (dr.Read())
{
comboBox6.Items.Add(dr["院系名称"]);
}
if (textBox1.Text != "")
{
string id = textBox1.Text.Trim();
string sql1 = "select 姓名 from student_info where 学号='" + id + "'";
textBox2.Text = DataConnection.GetDataString(sql1);
sql1 = "select 性别 from student_info where 学号='" + id + "'";
string s = DataConnection.GetDataString(sql1);
if (s == "男")
radioButton4.Checked = true;
if (s == "女")
radioButton1.Checked = true;
sql1 = "select 出生年月 from student_info where 学号='" + id + "'";
textBox3.Text = DataConnection.GetDataString(sql1);
sql1 = "select 籍贯 from student_info where 学号='" + id + "'";
textBox4.Text = DataConnection.GetDataString(sql1);
sql1 = "select 专业名称 from student_info,department where student_info.专业编号=department.专业编号 and 学号='" + id + "'";
comboBox2.Text = DataConnection.GetDataString(sql1);
sql1 = "select 院系名称 from student_info,academy where student_info.院系编号=academy.院系编号 and 学号='" + id + "'";
comboBox6.Text = DataConnection.GetDataString(sql1);
sql1 = "select 就业标志 from student_info where 学号='" + id + "'";
string s1 = DataConnection.GetDataString(sql1).Trim();
if (s1 == "待就业")
{
radioButton2.Checked = true;
}
if (s1 == "已就业")
{
radioButton3.Checked = true;
}
sql1 = "select 用人单位 from profesion_student,employment where profesion_student.职业号=employment.职业号 and employment.学号='" + id + "'";
comboBox1.Text = DataConnection.GetDataString(sql1);
sql1 = "select 类型名称 from type,profesion_student,employment where type.类型号=profesion_student.类型号 and profesion_student.职业号=employment.职业号 and employment.学号='" + id + "'";
comboBox4.Text = DataConnection.GetDataString(sql1);
}
else
MessageBox.Show("学号为空!!!请输入....");
}
private void button1_Click(object sender,EventArgs e)
{
if (textBox1.Text != "")
{
string sql = "select 院系编号 from academy where 院系名称='" + comboBox6.Text.Trim() + "'";
string a = DataConnection.GetDataString(sql).Trim();
sql = "select 专业编号 from department where 专业名称='" + comboBox2.Text.Trim() + "'";
string b = DataConnection.GetDataString(sql).Trim();
if (radioButton1.Checked == true)
{
sql = "update student_info set 性别='" + radioButton1.Text + "' where 学号='" + textBox1.Text.Trim() + "'";
int g = DataConnection.UpdateDate(sql);
}
if (radioButton4.Checked == true)
{
sql = "update student_info set 性别='" + radioButton4.Text + "' where 学号='" + textBox1.Text.Trim() + "'";
int f = DataConnection.UpdateDate(sql);
}
sql = "update student_info set 姓名='" + textBox2.Text.Trim() + "',出生年月='" + textBox3.Text.Trim() + "',籍贯='" + textBox4.Text.Trim() + "',专业编号='" + b + "',院系编号='" + a + "' where 学号='" + textBox1.Text.Trim() + "'";
int d = DataConnection.UpdateDate(sql);
}
else
MessageBox.Show("学号为空!!!请输入....");
}
4.3查询界面
查询就业率界面设计如图4.3所示:
图4.3 查询就业率界面设计
代码如下:
private void tabPage3_Click(object sender,EventArgs e)
{
string sql = "select count(*) from student_info";
int a=DataConnection.GetCountInfoBySql(sql);
label3.Text = a.ToString();
sql = "select count(*) from student_info where 就业标志='已就业'";
int b = DataConnection.GetCountInfoBySql(sql);
label5.Text = b.ToString();
sql = "select count(*) from student_info where 就业标志='待就业'";
label4.Text = DataConnection.GetCountInfoBySql(sql).ToString();
float c =(float) b / a;
label6.Text = c.ToString();
comboBox3.Items.Clear();
sql = "select 专业名称 from department order by 专业编号 asc";
SqlDataReader dr = DataConnection.GetSqlDataReader(sql);
while (dr.Read())
{
comboBox3.Items.Add(dr["专业名称"]);
}
comboBox3.Text = "";
label10.Text = "";
}
private void button2_Click(object sender,EventArgs e)
{
//comboBox3.Text = "";
label10.Text = "";
if (comboBox3.Text != "")
{
string sql = "select count(*) from student_info,department where student_info.专业编号=department.专业编号 and 专业名称='" + comboBox3.Text + "'";
int a = DataConnection.GetCountInfoBySql(sql);
sql = "select count(*) from student_info,department where student_info.专业编号=department.专业编号 and 就业标志='已就业' and 专业名称='" + comboBox3.Text + "'";
int b = DataConnection.GetCountInfoBySql(sql);
if (a == 0)
{
label10.Text = "该专业学生人数为0";
}
else
{
float c = (float)b / a;
label10.Text = c.ToString();
}
}
else
MessageBox.Show(“专业为空!!!请选取….”);
}
查询已就业信息界面设计如图4.4所示:
图4.4 查询已就业信息界面设计
代码如下:
private void tabPage4_Click(object sender,EventArgs e)
{
comboBox5.Items.Clear();
comboBox7.Items.Clear();
comboBox5.Text = "";
comboBox7.Text = "";
string sql = "select 专业名称 from department order by 专业编号 asc";
SqlDataReader dr = DataConnection.GetSqlDataReader(sql);
while (dr.Read())
{
comboBox7.Items.Add(dr["专业名称"]);
}
sql = "select 院系名称 from academy order by 院系编号 asc";
dr = DataConnection.GetSqlDataReader(sql);
while (dr.Read())
{
comboBox5.Items.Add(dr["院系名称"]);
}
}
private void button3_Click(object sender,EventArgs e)
{
if (comboBox5.Text != "")
{
s
展开阅读全文