2015上机 实现下拉显示员工名/员工号 按钮完成性别选择

题目

2015

首先,第一大题,10分,送分的题目:

1、创建文件夹“d:\研究生复试[你的中文姓名]\” 例: 张三,应创建“d:\研究生复试\张三”文件夹。 所有文档和答案都放在这个文件夹中。

2、在文件夹中建立一个readme文件(.txt或.doc均可),以说明所用的软件工具。

3、设计文档,文件名为Info.doc,数据库连接说明:如用户名,密码,ODBC/JDBC等数据源配置等(数据库连接方式及配置参数)如果必要,可以说明运行方式和相关参数 如果功能不能通过运行,则给出相应的源代码。

4、在你的目录中建立SOURCE目录,系统源文件放在该目录下

5、考完后请不要关机,人离开就可以了。

直接第二大题,数据库设计,35分
一、建立数据库,并建立以下各表 一个员工可以到多个不同公司上班。
员工关系表EMPLOYEE(员工号EmpNo,员工姓名EmpName,性别EmpSex,年龄EmpAge)

工作关系表WORKS(EmpNo员工号,CmpNo公司号,Salary薪水)

公司关系表COMPANY(CmpNo公司号,CmpName公司名)

要求:
1、在数据库中根据上述表的定义创建上述数据库,同时需建立相应的约束关系
2、将上面的数据输入到数据库中相应的表中

3、将数据库备份到你的文件夹下,命名为backupInfo

三、基于上述数据库,请使用sql server2005+vs2008或vs2010完成员工信息管理系统,并生成相应的可运行文件(文件名为你的名字)。

具体要求如下:

  1. 要求程序与数据库能进行有效连接,并具有完善的人机交互界面, 要求有参数输入界面和执行按钮,在界面上有结果输出展现区, 要求不要把所有操作全部集中在一个菜单内。

2.完成对员工关系表的添加,删除,修改和浏览四项功能。老师的性别要求用单选按钮实现。(15分)

3.统计和查询:

(1)根据员工号或员工名查找员工所在的公司名和工资,员工号或员工名不能文本输入,要求使用下拉菜单实现,并与数据库中现有信息一致(10分)

(2)统计年龄至少为40岁员工的总工资,工资按从大到小顺序排列;与数据库中现有信息一致(10分)

(3)查询至少具有两份工作员工的姓名和其公司名。(10分)

  1. 具有数据完整性校验功能,当出现数据异常和操作异常时,程序应给出清楚完整的异常提示信息。(10分)

解答

创建数据库

create table EMPLOYEE
(
EmpNo char(6) not null,
EmpName varchar(50) not null,
EmpSex char(2) null,
EmpAge int  null,
constraint PK_EMPLOYEE primary key (EmpNo)
)
go
create table COMPANY
(
CmpNo char(6) not null,
CmpName varchar(50) not null,
constraint PK_COMPANY primary key(CmpNo)
)
go
create table WORKS
(
EmpNo char(6) not null,
CmpNo char(6) not null,
Salary Numeric(8,2) default (0),
constraint PK_WORKS primary key(EmpNo,CmpNo),
constraint FK_WORKS_EMPLOYEE foreign key(EmpNo) references EMPLOYEE(EmpNo),
constraint FK_WORKS_COMPANY foreign key(CmpNo) references COMPANY(CmpNo)
)
go
insert into EMPLOYEE values('E01','张三','女','32')
insert into EMPLOYEE values('E02','李四','男','28')
insert into EMPLOYEE values('E03','王五','女','42')
insert into EMPLOYEE values('E04','赵六','男','37')
insert into EMPLOYEE values('E05','陈七','男','51')
go
insert into Company values('C01','腾讯')
insert into Company values('C02','阿里')
insert into Company values('C03','百度')
go
insert into WORKS values('E01','C01','8000')
insert into WORKS values('E01','C02','7000')
insert into WORKS values('E02','C02','9000')
insert into WORKS values('E02','C03','8000')
insert into WORKS values('E03','C01','12000')
insert into WORKS values('E04','C02','11000')
insert into WORKS values('E05','C03','12000')
go

主窗口设计

窗体实现

在这里插入图片描述

代码实现

namespace _2015
{
    public partial class FormMain : Form
    {
        public FormMain()
        {
            InitializeComponent();
        }


        private void 信息查询ToolStripMenuItem_Click_1(object sender, EventArgs e)
        {
            FormSearch fs = new FormSearch();
            fs.MdiParent = this;
            fs.Show();
        }

        private void 信息统计ToolStripMenuItem_Click_1(object sender, EventArgs e)
        {
            FormStatistics fs = new FormStatistics();
            fs.MdiParent = this;
            fs.Show();
        }

        private void 工人表维护ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            FormWorker fw = new FormWorker();
            fw.MdiParent = this;
            fw.Show();
        }
    }
}

统计窗口设计

在这里插入图片描述

代码实现

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 _2015
{
    public partial class FormStatistics : Form
    {
        public FormStatistics()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string sql = @"select b.EmpName 姓名,SUM(Salary) 薪水
                            from WORKS a,EMPLOYEE b
                            where a.EmpNo=b.EmpNo and b.EmpAge>=40
                            group by b.EmpName
                            order by 薪水 desc";
            dv.DataSource = DB.TableSelect(sql);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            string sql = @"select c.EmpName 员工姓名,b.CmpName 公司名
                            from WORKS a,COMPANY b,EMPLOYEE c
                            where a.CmpNo=b.CmpNo and c.EmpNo=a.EmpNo and c.EmpNo in(select EmpNo
														                            from WORKS
														                            group by EmpNo
														                            having COUNT(*)>1)";
            dv.DataSource = DB.TableSelect(sql);
        }
    }
}

查询窗口设计

在这里插入图片描述

代码实现

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace _2015
{
    public partial class FormSearch : Form
    {
        public FormSearch()
        {
            InitializeComponent();
        }

        private void FormSearch_Load(object sender, EventArgs e)
        {
            string sql = @"select * From EMPLOYEE";
            DataTable dt = DB.TableSelect(sql);
            cboEmpNo.DataSource = dt;
            cboEmpNo.DisplayMember = dt.Columns["EmpNo"].ToString();
            cboEmpNo.ValueMember = dt.Columns["EmpNo"].ToString();
            cboEmpName.DataSource = dt;
            cboEmpName.DisplayMember = dt.Columns["EmpName"].ToString();
            cboEmpName.ValueMember = dt.Columns["EmpName"].ToString();
            cboEmpNo.SelectedIndex = 0;
        }

        private void cboEmpName_SelectedIndexChanged(object sender, EventArgs e)
        {
            string sql = @"select c.EmpName 员工姓名,b.CmpName 公司名,a.Salary 薪水
                            from WORKS a,COMPANY b,EMPLOYEE c
                            where a.CmpNo=b.CmpNo and c.EmpNo=a.EmpNo and c.EmpNo=@EmpNo";
            SqlParameter[] para = { new SqlParameter("@EmpNo", cboEmpNo.SelectedValue.ToString()) };
            dv.DataSource = DB.TableSelect(sql, para);
        }
    }
}

员工表窗口设计

在这里插入图片描述

代码实现

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace _2015
{
    public partial class FormWorker : Form
    {
        public FormWorker()
        {
            InitializeComponent();
        }
        string sex;
        private void button1_Click(object sender, EventArgs e)
        {
            string sql = @"INSERT INTO [test2015].[dbo].[EMPLOYEE]
                               ([EmpNo]
                               ,[EmpName]
                               ,[EmpSex]
                               ,[EmpAge])
                         VALUES(@EmpNo,@EmpName,@EmpSex,@EmpAge)";
            SqlParameter[] para = { new SqlParameter("@EmpNo", textBox1.Text),
                                      new SqlParameter("@EmpName", textBox2.Text),
                                      new SqlParameter("@EmpSex", sex),
                                      new SqlParameter("@EmpAge", textBox3.Text)};
            DB.TableChange(sql, para);
            MyShow();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            string sql = @"DELETE FROM [2015].[dbo].[EMPLOYEE]
                            WHERE [EmpNo] = @EmpNo";
            SqlParameter[] para = { new SqlParameter("@EmpNo", textBox1.Text) };
            DB.TableChange(sql, para);
            MyShow();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            MyShow();
        }

        private void button4_Click(object sender, EventArgs e)
        {
            string sql = @"UPDATE [2015].[dbo].[EMPLOYEE]
                               SET [EmpName] = @EmpName
                                  ,[EmpSex] = @EmpSex
                                  ,[EmpAge] = @EmpAge
                             WHERE [EmpNo] = @EmpNo";
            SqlParameter[] para = { new SqlParameter("@EmpNo", textBox1.Text),
                                      new SqlParameter("@EmpName", textBox2.Text),
                                      new SqlParameter("@EmpSex", sex),
                                      new SqlParameter("@EmpAge", textBox3.Text) };
            DB.TableChange(sql, para);
            MyShow();
        }
        public void MyShow()
        {
            string sql = @"SELECT [EmpNo]
                              ,[EmpName]
                              ,[EmpSex]
                              ,[EmpAge]
                          FROM [2015].[dbo].[EMPLOYEE]";
            dv.DataSource = DB.TableSelect(sql);
        }

        private void radioButton1_CheckedChanged(object sender, EventArgs e)
        {
            RadioButton rb = (RadioButton)sender;
            sex= rb.Text;
        }

        private void radioButton2_CheckedChanged(object sender, EventArgs e)
        {
            RadioButton rb = (RadioButton)sender;
            sex = rb.Text;
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值