- 课程设计意义与目标
- 课程设计的意义
《数据库课程设计》是在学生学习完《数据库》以后进行的设计性集中实践课程,通过课程集中实践,目的是使学生能加深对理论教学内容的理解,学会可视化编程技术的综合应用,培养学生分析问题的解决问题的能力。
-
- 课程设计的目标
通过课程集中实践,要求学生加深对讲授内容的理解,累积经验、学会独立上机调试程序;并且逐步达到综合运用封装、继承和多态等C#难点知识,更深地理解面向对象程序设计的基本概念与方法,从而学会利用C#语言解决一般应用问题,能设利用可视化编程技术开发复杂和综合性的计算机管理信息系统,并为后续专业课程的学习奠定程序设计基础。
- 课程设计的题目
- 设计题目概述
图书管理系统
-
- 开发环境搭建
开发语言:C#
开发工具:Visual Studio 2010
数据库管理工具:SQL Server 2008
- 系统的设计与实现
- 物理数据模型设计
private void BindData()
{
dgvData.DataSource = BLLDB.TSB.GetModelList("");
}
private void BorrowForm_Load(object sender, EventArgs e)
{
dgvData.AutoGenerateColumns = false;
InitCBX();
BindData();
cbxWork.SelectedIndex = 0;
}
private void dgvData_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (dgvData.SelectedRows.Count == 1)
{
TSB model = (TSB)dgvData.SelectedRows[0].DataBoundItem;
ISBN = model.BKISBN;
}
}
private bool CheckInput()
{
if (string.IsNullOrEmpty(txtName.Text.Trim()))
{
txtName.Focus();
tip.Show("必须输入", txtName, 1000);
return false;
}
else if (string.IsNullOrEmpty(cbxAddress.Text))
{
cbxAddress.DroppedDown = true;
tip.Show("必须选择", cbxAddress, 1000);
return false;
}
else if (string.IsNullOrEmpty(cbxWork.Text.Trim()))
{
cbxWork.DroppedDown = true;
tip.Show("必须选择", cbxWork, 1000);
return false;
}
else if (string.IsNullOrEmpty(cbxYear.Text.Trim()))
{
cbxYear.DroppedDown = true;
tip.Show("必须选择", cbxYear, 1000);
return false;
}
else
{
return true;
}
}
private void borrow_Click(object sender, EventArgs e)
{
if (CheckInput() && ISBN != null)
{
string msg = MakeIdentifying();
DZB model = new DZB()
{
DZID = msg,
DZADDRESS = cbxAddress.Text,
DZDUTY = cbxWork.Text,
DZNAME = txtName.Text,
DZYEAR = int.Parse(cbxYear.Text),
BKISBN = ISBN
};
if (BLLDB.DZB.Add(model) == true)
{
MessageBox.Show("借书成功");
}
else
{
MessageBox.Show("借书失败");
}
}
}
private string MakeIdentifying()
{
int num = 0;
char[] str = new char[] { '1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
};
Random r = new Random();
string msg = null;
while (true)
{
int rand = r.Next(0, 10);
msg += str[rand];
num++;
if (num == 5)
break;
}
return msg;
}
书库查询:
private void BindData(string msg)
{
dgvData.DataSource = BLLDB.SKB.GetViewModelList(msg);
}
private void SKQuiry_Load(object sender, EventArgs e)
{
dgvData.AutoGenerateColumns = false;
BindData("");
}
private void cbxType_SelectedIndexChanged_1(object sender, EventArgs e)
{
if (cbxType.SelectedIndex == 1)
{
cbxSelect.DataSource = BLLDB.SKB.GetAddressModelList("");
cbxSelect.DisplayMember = "SKADDRESS";
cbxSelect.ValueMember = "SKADDRESS";
}
else if (cbxType.SelectedIndex == 0)
{
cbxSelect.DataSource = BLLDB.SKB.GetModelList("");
cbxSelect.DisplayMember = "SKID";
cbxSelect.ValueMember = "SKID";
}
}
private void cbxSelect_SelectedIndexChanged_1(object sender, EventArgs e)
{
string txt = cbxSelect.Text;
if (cbxType.SelectedIndex == 0)
{
StringBuilder str = new StringBuilder();
str.Append(" SKID=" + "'" + txt + "'");
BindData(str.ToString());
}
else if (cbxType.SelectedIndex == 1)
{
StringBuilder str = new StringBuilder();
str.Append(" SKADDRESS=" + "'" + txt + "'");
BindData(str.ToString());
}
}
个人体会及建议
在这次课设中,基本都是在学习新知识的过程,后面理解了就开始自己写,用户负责借书,用户的增删改,添加用户,管理员负责查询书库,书库的增删改查,查询图书,图书的增删改查,借书记录的增删改查,在这个过程中不仅了解了动软生成软件的机制,而且可熟练的利用这个工具,在这个工具的基础之上,我写出了更多好用的函数供自己使用。在windows应用开发上了解更多控件和控件属性的使用和结合,可以做出功能和界面相对完整的程序,总之,在这次课设中受益匪浅。