高校学生就业管理系统-课程设计报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《高校学生就业管理系统》课程设计报告
题目:高校学生就业管理系统专业:网络工程
班级:
姓名:
指导教师:
成绩:
计算机学院
2017年12月8日
目录
一、题目概述(内容及要求) (1)
二、需求分析 (1)
2.1高校就业管理系统 (1)
2.2高校就业管理系统数据流图 (1)
2.3高校就业系统管理系统功能框图 (1)
三、概要设计 (2)
3.1数据模型(E-R图) (2)
3.2数据库表格结构设计 (3)
四、详细设计 (4)
4.1登录界面 (4)
4.2修改界面 (5)
4.3查询界面 (14)
五、软件测试 (23)
5.1划分等价类并编号 (23)
5.2有效测试用例 (23)
5.3无效测试用例 (24)
六、总结 (24)
参考文献 (25)
一、题目概述(内容及要求)
实现院系、专业、毕业生信息管理(设有就业标志,初值为‘待业’);实现职业类型、职业信息(职业号、类型号、需求数量、聘用数量、用人单位)登记;实现毕业生就业登记(学号、职业号),自动修改相应学生的就业标志和职业的聘用数量,并保证聘用数量不大于需求数量;创建存储过程查询毕业生的人数、待业人数、就业人数和就业率;创建存储过程查询各专业的毕业生就业率;创建 check 约束限制毕业生性别必须为‘男’或‘女’;建立表间关系。

二、需求分析
2.1高校就业管理系统
高校就业管理系统化可以完成对学生信息的修改、查询(就业率,已就业信息,未就业信息,公司信息)、添加(学生基本信息,院系信息,公司信息)、退出功能。

初步完成了对高校就业信息的管理,界面设计简洁,使用简单。

2.2高校就业管理系统数据流图
图2.1 高校就业管理系统数据流图
2.3高校就业系统管理系统功能框图
图2.2 高校就业系统管理系统功能框图
三、概要设计
3.1数据模型(E-R图)
图3 高校学生就业管理E_R图
3.2数据库表格结构设计
表3.1 学院信息表
表3.2 专业信息表
表3.3 员工信息表
表3.4 用户信息表
表3.5 用人单位信息表
表3.6 学生信息表
表3.7 职业信息表
类型名称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 != "")
{
string s = "select c5.学号,姓名,出生年月,籍贯,院系名称,专业名称,就业标志,用人单位,类型名称 from type right join (select c4.学号,姓名,出生年月,就业标志,籍贯,院系名称,专业名称,c4.职业号,类型号,用人单位 from profesion_student right join (select c3.学号,姓名,出生年月,就业标志,籍贯,院系名称,专业名称,职业号 from dbo.employment right join (select 学号,姓名,出生年月,就业标志,籍贯,院系名称,专业名称from department join (select 学号,姓名,出生年月,就业标志,籍贯,院系名称,专业编号 from academy join (select 学号,姓名,出生年月,院系编号,籍贯 ,就业标志,专业编号 from student_info where 就业标志='已就业')c1 on academy.院系编号=c1.院系编号)c2 on department.专业编号=c2.专业编号)c3 on employment.学号=c3.学号)c4 on profesion_student.职业号=c4.职业号) c5 on type.类型号=c5.类型号 where 院系名称='"+ comboBox5.Text.Trim() + "'order by c5.学号";
dataGridView1.DataSource = DataConnection.GetDataSuoce(s).Tables[0];
}
else
MessageBox.Show("院系名称为空请选择....");
}
private void button4_Click(object sender, EventArgs e)
{
if (comboBox7.Text != "")
{
string s = "select c5.学号,姓名,出生年月,籍贯,院系名称,专业名称,就业标志,用人单位,类型名称 from type right join (select c4.学号,姓名,出生年月,就业标志,籍贯,院系名称,专业名称,c4.职业号,类型号,用人单位 from profesion_student right join (select c3.学号,姓名,出生年月,就业标志,籍贯,院系名称,专业名称,职业号 from dbo.employment right join (select 学号,姓名,出生年月,就业标志,籍贯,院系名称,专业名称from department join (select 学号,姓名,出生年月,就业标志,籍贯,院系名称,专业编号 from academy join (select 学号,姓名,出生年月,院系编号,籍贯 ,就业标志,专业编号 from student_info where 就业标志='已就业')c1 on academy.院系编号=c1.院系编号)c2 on department.专业编号=c2.专业编号)c3 on employment.学号=c3.学号)c4 on profesion_student.职业号=c4.职业号) c5 on type.类型号=c5.类型号 where 专业名称='" + comboBox7.Text.Trim() + "'order by c5.学号";
dataGridView1.DataSource = DataConnection.GetDataSuoce(s).Tables[0];
}
else
MessageBox.Show("专业名称为空请选择....");
}
查询未就业信息界面的设计如图4.5所示:
图4.5 查询未就业信息界面设计
代码如下:
private void tabPage5_Click(object sender, EventArgs e)
{
comboBox8.Items.Clear();
comboBox9.Items.Clear();
comboBox8.Text = "";
comboBox9.Text = "";
string sql = "select 专业名称 from department order by 专业编号 asc";
SqlDataReader dr = DataConnection.GetSqlDataReader(sql);
while (dr.Read())
{
comboBox9.Items.Add(dr["专业名称"]);
}
sql = "select 院系名称 from academy order by 院系编号asc";
dr = DataConnection.GetSqlDataReader(sql);
while (dr.Read())
{
comboBox8.Items.Add(dr["院系名称"]);
}
}
private void button5_Click(object sender, EventArgs e)
{
if (comboBox8.Text != "")
{
string sql = "select student_info.学号,姓名,出生年月,籍贯,院系名称,专业名称,就业标志from student_info,academy,department where student_info.院系编号=academy.院系编号 and student_info.专业编号=department.专业编号 and 就业标志='待就业' and 院系名称='" + comboBox8.Text.Trim() + "'order by student_info.学号";
dataGridView2.DataSource = DataConnection.GetDataSuoce(sql).Tables[0];
}
else
MessageBox.Show("院系名称为空请选择....");
}
private void button6_Click(object sender, EventArgs e)
{
if (comboBox9.Text != "")
{
string sql = "select student_info.学号,姓名,出生年月,籍贯,院系名称,专业名称,就业标志from student_info,academy,department where student_info.院系编号=academy.院系编号 and student_info.专业编号=department.专业编号 and 就业标志='待就业' and 专业名称='" + comboBox9.Text.Trim() + "'order by student_info.学号";
dataGridView2.DataSource = DataConnection.GetDataSuoce(sql).Tables[0];
}
else
MessageBox.Show("专业名称为空请选择....");
}
查询公司信息界面如图4.6所示:
图4.6 查询公司信息界面设计
代码如下:
private void tabPage6_Click(object sender, EventArgs e)
{
string sql = "select 用人单位,类型名称,需求数量,聘用数量 from profesion_student,type where type.类型号=profesion_student.类型号";
dataGridView3.DataSource = DataConnection.GetDataSuoce(sql).Tables[0];
}
五、软件测试
考虑到各种因素和条件的限制,我们决定采用黑盒测试方案。

即我们不考虑所编写程序的具体结构,而是根据软件所需要的应该完成高校学生就业管理系统的各种功能,设计一些合法的测试用例和不合法的测试用例,在相应的功能模块下指定输出测试语句,来测试相应的功能是否实现。

特别是根据边界条件设计一些边界测试用例。

以检查系统是否能正确的完成修改功能,得到正确的就业率。

或者是对不合法的输入和操作能够正确的识别。

5.1划分等价类并编号
表5.1 划分等价类
5.2有效测试用例
表5.2 有效的测试用例
5.3无效测试用例
表5.3 无效测试用例
六、总结
通过这次软件方向专业实训,让我知道做一个项目是多么不容易。

既要实现预期的功能,又要是界面尽可能的华丽、美观。

在完成课设的过程中,遇到了很多困难。

先是设计界面;然后实现系统的功能,基本上实现了高校学生就业管理的功能;并对系统进行优化,使外观尽可能的美观,但是由于能力有限,界面设计还是不美观。

虽然这样,但还是让我学到了如何去布局,去设计一个项目;而不是代码的拼凑,功能的简单实现。

这次课设已经快结束了,这让我学到了课本上无法学到的东西,如何去设计一个项目的界面,如何高效的实现项目的功能等。

参考文献
[1]飞思科技产品研发中心. ORACLE 9i 数据库高级管理[M]. 北京:电子工业出版社,2002.
[2]赵松涛. ORACLE 9i 中文版数据库系统管理[M]. 北京:人民邮电出版社,2003.
[3]张莉. SQL Server数据库原理及应用教程[M]. 北京:清华大学出版社,2003.
[4]李晓喆. SQL Server 2000管理及应用系统开发[M]. 北京:人民邮电出版社,2004.。

相关文档
最新文档