题目
数据库:(25分)
要求:
建一个数据库
1、每个公交线路都有一个司机开,而且都配有一辆公交车。
2、司机性别只能为男或女,而且年龄在20-60之间;
3、有主键、外键和约束
4、请将下面的表中数据录入数据库
5、备份数据库到你的文件夹(Backinfo中)
16:14 2016/3/18
车牌号 生产厂商
A112 北京现代
A021 日本本田
A213 美国宝马
A345 上海大众
司机(Driver)
员工号 姓名 性别 年龄 电话号码 密码
E001 张三 男 22 123 122
E020 李四 女 32 111 111
E212 王五 男 23 123 222
线路编号 始发站 终点站 距离
1 琶洲 万胜围 20
2 体育西路 客村 30
3 官洲 大学城南 10
时间表(Timetable)
线路编号 员工号 车牌号 发车时间
1 E001 A112 2011-3-26 10:13:10
2 E020 A345 2011-3-22 11:10:22
3 E212 A213 2011-3-26 08:15:1
数据库编程(75)
根据以上数据库,开发一个简单的公交车管理系统,要求如下:
1、 做一个界面,能够显示上述表格,有参数输入和输出(10分)
2、 实现对每个表的增、删、改(20分)
3、 实现根据线路编号或者始发站查询线路详细信息(5分),……(不记得了,也是查询5分)
//4、 统计某个员工的平均发车次数(不太记得了),(还有两个统计)(15分)
5、 管理员权限设置可以修改任意表,普通司机只能修改自己的信息(10分)
6、 对于你的系统,需要有完整性校验功能,对于输错的数据或者异常应该有相应的提示(10分)
创建数据库
Create database test2011;
go
use test2011
go
create table Buses
(
BusID char(8) not null,
Supplier varchar(50) not null,
constraint PK_Buses primary key (BusID)
)
go
create table Driver
(
EmpID char(8) not null,
DName varchar(50) not null,
Sex char(2) check(Sex='男' or Sex='女'),
Age int check(Age>20 and Age<60),
Tel varchar(20) null,
Pwd varchar(50) null,
constraint PK_Driver primary key(EmpID)
)
go
create table Lines
(
LineID char(8) not null,
StartP varchar(50) not null,
EndP varchar(50) not null,
Distance int null,
constraint PK_Lines primary key(LineID)
)
go
Create table Timetable
(
LineID char(8) not null,
EmpID char(8) not null,
BusID char(8) not null,
StartTime smalldatetime null,
constraint PK_Timetable primary key(LineID,EmpID,BusID),
constraint FK_Timetable_Buses foreign key(BusID) references Buses(BusID),
constraint FK_Timetable_Driver foreign key(EmpID) references Driver(EmpID),
constraint FK_Timetable_Lines foreign key(LineID) references Lines(LineID),
)
go
insert into Buses values('A112','北京现代')
insert into Buses values('A021','日本本田')
insert into Buses values('A213','美国宝马')
insert into Buses values('A345','上海大众')
go
insert into Driver values('E001','张三','男','22','123','122')
insert into Driver values('E020','李四','女','32','111','111')
insert into Driver values('E212','王五','男','23','123','222')
go
insert into Lines values('1','琶洲','万胜围','20')
insert into Lines values('2','体育西路','客村','30')
insert into Lines values('3','官洲','大学城南','10')
go
insert into Timetable values('1','E001','A112','2011-3-26 10:13:10')
insert into Timetable values('2','E020','A345','2011-3-22 11:10:22')
insert into Timetable values('3','E212','A213','2011-3-26 08:15:1')
go
界面绘制
登录界面FormMain
管理员界面FormMain
司机界面FormDriver
函数接入
登录模块
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 Demo2011
{
public partial class FormLogin : Form
{
public FormLogin()
{
InitializeComponent();
}
private void btnLogin_Click(object sender, EventArgs e)
{
if (txtName.Text == "PJ" && txtPwdP.Text == "123")
{
FormMain fm = new FormMain();
fm.Show();
}
else if (txtName.Text != null && txtPwdP.Text != null)
{
string sql = @"SELECT [EmpID]
,[DName]
,[Sex]
,[Age]
,[Tel]
,[Pwd]
FROM [test2011].[dbo].[Driver]
WHERE DName=@DName and Pwd=@Pwd";
SqlParameter[] para = { new SqlParameter("@DName",txtName .Text),
new SqlParameter("@Pwd", txtPwdP.Text)};
DataTable dt = DBHelperSQL.TableSelect(sql,para);
if (dt != null)
{
FormDriver fd = new FormDriver(txtName.Text, txtPwdP.Text);
fd.Show();
}
else
{
MessageBox.Show("登录失败!\n请检查用户名和密码!");
}
}
else
{
MessageBox.Show("登录失败!");
}
}
private void btnregister_Click(object sender, EventArgs e)
{
}
}
}
司机界面代码
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 Demo2011
{
public partial class FormDriver : Form
{
string name;
string pwd;
public FormDriver(string name,string pwd)
{
this.name = name;
this.pwd = pwd;
InitializeComponent();
}
private void btnDUpdate_Click(object sender, EventArgs e)
{
string sql = @"UPDATE [test2011].[dbo].[Driver]
SET [DName] = @DName,
[Sex] =@Sex,
[Age] = @Age,
[Tel] = @Tel,
[Pwd] = @Pwd
WHERE [EmpID] =@EmpID";
SqlParameter[] para = { new SqlParameter("@EmpID", txtEmpID.Text),
new SqlParameter("@DName", txtDName.Text),
new SqlParameter("@Sex", txtSex.Text),
new SqlParameter("@Age", txtAge.Text),
new SqlParameter("@Tel", txtTel.Text),
new SqlParameter("@Pwd", txtPwd.Text)};
DBHelperSQL.TableChange(sql, para);
}
private void FormDriver_Load(object sender, EventArgs e)
{
string sql = @"SELECT [EmpID]
,[DName]
,[Sex]
,[Age]
,[Tel]
,[Pwd]
FROM [test2011].[dbo].[Driver]
WHERE DName=@DName and Pwd=@Pwd";
SqlParameter[] para = { new SqlParameter("@DName",name),
new SqlParameter("@Pwd", pwd)};
DataTable dt = DBHelperSQL.TableSelect(sql, para);
DataRow dr = dt.Rows[0];
txtEmpID.Text = dr["EmpID"].ToString();
txtDName.Text = dr["DName"].ToString();
txtSex.Text = dr["Sex"].ToString();
txtAge.Text = dr["Age"].ToString();
txtTel.Text = dr["Tel"].ToString();
txtPwd.Text = dr["Pwd"].ToString();
}
private void btnBack_Click(object sender, EventArgs e)
{
this.Close();
}
}
}