资源描述
数据库课程设计报告
课 题: 药物进销存管理系统
专业班级: 计算机科学与技术
学 号:
姓 名:
指引教师: 教师
学 院: 信息工程学院
6月18日
目录
摘 要 2
1 课程设计目和意义 3
2 需求分析 4
3.总体设计 5
4.详细设计 6
4 系统实现 0
5 系统调试 0
小结 0
参照文献 0
摘 要
信息时代已经来临,信息解决利器——计算机,应用于商品寻常管理,为经济管理当代化带来了从未有过动力和机遇,为商品销售领域发展提供了无限潜力。采用计算机管理信息系统已成为商品管理科学化和当代化标志,给销售商带来了明显经济效益和社会效益。
这个数据库系统是一种药物进销存管理系统,涉及药物销售界面、库存查询界面以及药物信息查询界面,分别有添加、删除、查阅等功能。药物进销存管理系统其开发重要涉及后台数据库建立和维护以及前端应用程序开发两个方面。对于前者规定建立起数据一致性和完整性强、数据安全性好库。而对于后者则规定应用程序功能完备,易使用等特点。通过度析,咱们使用visual Studio 以及SQL开发工具,运用其易于上手和强大数据库支持,以便咱们迅速开发出这个系统。
1 课程设计目和意义
药物管理是商品管理一种。某些大中型医院、药物专卖店或药房,往往存在对药物进销存管理问题。采用老式管理方式费工费时、效率低下。因而设计出一款可以满足需要软件,不但能使办公效率大大提高,也对管理科学性、安全性、可预见性方面提供了根据。
这对公司来说节约了成本、提高了可靠性,也更便于操作。
2 需求分析
这个系统是面向销售方。因此应从她们角度考虑,系统应以便她们对药物进行寻常管理,因此大体上涉及如下内容:药物销售管理、药物入库管理、库存管理、药物基本信息管理,在药物销售窗体中,功能基本上涉及基本药物查询及选购数量和总价,某些简朴计算涉及录入销售单价和数量之后自动计算出总额,在入库管理中,功能基本上涉及药物添加、删除和修改等等;在库存管理窗体中基本功能涉及基本库存信息浏览和查询等。
数据库方面,和前面功能相相应,涉及三个表:登录表、、库存表、药物信息表。
登录表中重要存储顾客账号和密码信息,库存表中存储涉及每一种药物现存量,药物信息表中存储每一种药物基本信息,涉及药物名称、用量等。库存与销售之间联系时这样,销售一次药物,库存信息表中相应药物数量减掉销售数量。
这些功能基本上满足了一种销售方对寻常药物管理需求,可以在一定限度上加快管理效率,提高管理效率和可靠性。
可行性分析
可行性分析是系统分析阶段第二项活动,它重要目是进一步明确系统目的、规模与功能,对系统开发背景、必要性和意义进行了调查分析并依照需要和也许提出开发系统初步方案与筹划。可行性分析是对系统进行全面、概要分析。通过调查分析,本系统设计重要有如下三个可行性:
.1 操作可行性
本系统操作简朴,易于理解,只需通过简朴指引,上手较快,运营环境规定低。
技术可行性
本系统运用Visual studio开发工具,并使用SQL Server 作为数据库管理系统,来实现医院药物进销存系统各种功能。SQL Server 属于主从时式数据库服务器这也是主从式数据库服务器特点,服务器自身重在数据管理,为客户端应用程序提供一致接口。
3.总体设计
本系统将涉及各种窗体制作,从而实现多项管理功能。期中涉及对药物信息管理,它专门用于对药物各种信息管理;对药物进货管理;对药物销售管理;对药物库存管理。在这些数据管理中,还可以实现某些数据自动计算功能。
总共11个窗体,分别为登陆窗体、菜单选取窗体和九个功能窗体。登陆窗体规定密码和顾客名都对的才干登陆,否则无法使用本系统;菜单选取窗体提示顾客进行相应功能选取;四个功能窗体分别完毕药物销售、药物进货、药物信息、库存管理功能。
后台数据库设计总共有三个表,涉及登录表、药物信息表、库存信息表。作为后台支持,分别和前面功能界面连接。
C/S模式
本系统事实上是基于C/S模式信息管理系统,客户机通过服务器去访问所需要数据库,在这里客户机就是指VB开发应用程序,服务器是指SQL Server 所用服务器,本系统用是本地服务器,系统模式图如下图2-1所示:
数据库
数据库管理系统
服务器
客户机
(VB)
图2-1 系统模式图
这里VB客户应用程序通过本地服务器连接到SQL Server 数据库,访问所需要数据信息。在学生学籍管理系统中,从而实现顾客对相应数据信息进行修改、查询和录入等操作,以达到对学生学籍方面工作各项管理。
C/S模式简介
C /S模式是一种两层构造系统:第一层是在客户机系统上结合了表达与业务逻辑;第二层是通过网络结合了数据库服务器。C/S模式重要由客户应用程序、服务器管理程序和中间件三个某些构成,如下是C/S模式某些长处:
l C/S交互性强。由于客户端有一套完整应用程序,在出错提示、在线协助等方面均有强大功能,并且可以在子程序间自由切换。
l C/S模式提供了更安全存取模式。由于CS配备是点对点构造模式,采用合用于局域网、安全性可以得到可靠保证。
l 响应速度快。由于客户端实现与服务器直接相连,没有中间环节。
l 操作界面美丽,形式多样,可以充分满足客户自身个性化规定。
保证SQL Server 服务器正常工作
1. SQL Server 安装完毕后,启动【服务管理器】,在如图2-2所示【SQL Server 服务管理器】界面中可以查看服务器服务与否正常启动。
图2-2 【SQL Server服务管理器】界面
2. 启动服务器上【公司管理器】,查看【公司管理器】与否可以正常管理。
测试SQL Server 和本地服务器连接
1. 启动【查询分析器】。由于【查询分析器】首选必要连接服务器,然后才干工作。浮现【连接到SQL Server】界面,在【SQL Server】文本框中输入本地服务器别名,或者单击按钮将客户机可以自动辨认别名添加进来。完毕设立后单击按钮。
2. 成功连接到本地数据库服务器界面。表白连接参数配备对的,如果不能浮现此界面,则需要仔细检查本地服务器参数与否对的。
另一方面 Vc与SQL建立联系各构成数据源;
4.详细设计
一. 前台应用程序设计
总共涉及11个窗体,其中有登录窗体、菜单选取窗体和九个功能窗体,九个功能窗体涉及药物信息查询窗体、药物库存查询窗体、药物销售窗体、药物入库窗体及药物修改窗体等。
登录窗体中涉及两个lebel控件、两个按钮控件、两个textbox控件,固然要对相应控件进行必要设立,
菜单选取窗体中就是几种简朴MenuStrip控件。分别进入功能子系统。
九个功能窗体如下:
药物销售窗体:
一种datagridview控件和三个button控件,三个textbook控件,三个label控件。
进货记录窗体资源
药物信息窗体
二. 后台数据库设计
一种数据库,三个基本表,为每一种表建立基本属性和主键。
流程图如下
开始
登陆
成功与否
否
是
删除记录
信息
修改
药物进出
药物信息
菜单选取
图1.流程图
:
概念构造设计
概念构造设计普通是使用E-R图对它描述工具进行设计,对需求分析阶段收集到数据进行分类、组织(汇集),形成实体、实体属性,标记实体码,拟定实体之间联系类型,设计E-R图
库存
药物信息
库存量
有效期至
价格
名称
生产日期
编号
编号
名称编号
成分
规格
功能
4 系统实现
1. 在药物销售窗体中, 先实现药物查询以便确认,并在datagridview中显示药物信息;
在查询按钮上代码如下
private void button2_Click(object sender,EventArgs e)
{
string userName = Box1.Text;
string password = Box2.Text;
string connString = "Data Source = . ;Initial Catalog = 医院药物进销存系统;Integrated Security = true";
SqlConnection connection = new SqlConnection(connString);
string sql = String.Format("select * from 药物信息 where ypcode = '{0}' or ypname = '{1}'",password,userName);
dataAdapter = new SqlDataAdapter(sql,connection);
dataset = new DataSet();
dataAdapter.Fill(dataset);
dataGridView1.DataSource = dataset.Tables[0];
}
2. 在确认交易按钮里添加如下代码:
private void button1_Click(object sender,EventArgs e)
{
string s = textBox3.Text;
string userName = Box1.Text;
string password = Box2.Text;
int i = Int32.Parse(s);
string connString = "Data Source = . ;Initial Catalog =医院药物进销存系统;Integrated Security = true";
SqlConnection connection = new SqlConnection(connString);
string sql = String.Format("select kcamount from 库存 where ypcode ='{0}' or ypname ='{1}'",password,userName);
SqlCommand command = new SqlCommand(sql,connection);
connection.Open();
int num = (int)command.ExecuteScalar();
int d;
d = num - i;
string sqll = String.Format("update 库存 set kcamount = '{0}' where ypcode ='{1}'",d,password);
SqlCommand commandl = new SqlCommand(sqll,connection);
int aa = (int)commandl.ExecuteNonQuery();
if (aa > 0)
{
MessageBox.Show("出售成功|");
}
3. 在药物信息检索中执行查询按钮中添加代码如下:
string userName = Box1.Text;
string password = Box2.Text;
string connString = "Data Source = . ;Initial Catalog = 医院药物进销存系统Integrated Security = true";
SqlConnection connection = new SqlConnection(connString);
string sql = String.Format("select * from 药物信息 where ypcode = '{0}' or ypname = '{1}'",password,userName);
dataAdapter = new SqlDataAdapter(sql,connection);
dataset = new DataSet();
dataAdapter.Fill(dataset);
dataGridView1.DataSource = dataset.Tables[0];
4药物入库代码如下:
库存TableAdapter.Update(医院药物进销存DataSet4.库存;
MessageBox.Show("您已成功修改药物信息,"您已成功修改药物信息",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
5 修改药物信息代码如下:
tring connString = "Data Source = . ;Initial Catalog = 医院药物进销存系统Integrated Security = true";
SqlConnection connection = new SqlConnection(connString);
DataTable dt = new DataTable();
string update = "update 药物信息 set ypname='" + textBox2.Text.ToString() + "',price='" + textBox7.Text.ToString() + "',chengfen='" + textBox5.Text.ToString () + "',guige='" + textBox3.Text.ToString () + "',yongliang='" + textBox6.Text.ToString () + "',ypcode='" + textBox1.Text.ToString () + "' where ypcode = '"+ textBox1 .Text + "'";
try
{
connection.Open();
SqlCommand cmd = new SqlCommand(update,connection);
int n = cmd.ExecuteNonQuery();
if (n > 0)
{
MessageBox.Show("修改药物成功");
}
else
{
MessageBox.Show("修改药物失败");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
connection.Close();
}
}
6 删除药物代码:
private void button1_Click(object sender,EventArgs e)
{
string bianhao = textBox1.Text;
tring connString = "Data Source = . ;Initial Catalog = 医院药物进销存系统Integrated Security = true";
try
{
connection.Open();
string sql = String.Format("delete from 药物信息 where ypcode={0}",bianhao);
SqlCommand cmd = new SqlCommand(sql,connection);
int num = (int)cmd.ExecuteNonQuery();
if (num > 0)
MessageBox.Show("删除成功","");
else
{
MessageBox.Show("删除失败 ","");
}
}
catch (Exception a)
{
MessageBox.Show(a.Message,"错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
finally
{
connection.Close();
}
}
5 系统调试
系统开始运营界面如图:
图2.登陆
输入账号和密码后(管理员、111111)将进入菜单选取窗体,如下图:
图5.菜单选取窗体
进入第一种进货信息后,执行查询,如下图所示:
查询单个药物
返回后进入第二个功能窗体,同样执行库存查询显示如下:
返回后进入药物销售窗体,
图8.药物销售管理窗体
返回后,进入下一种功能窗体:
新品入库(购买药物药物)
删除药物信息
修改库存信息
小结
在这次课程设计中,是对自己动手能力一次考验,通过教师解说、同窗协助和自己课后学习,学到了诸多有用知识,对数据库知识在软件工程应用中有了初步理解,为后来自己学习和工作奠定和坚实基本。
由于是第一次使用visual studio开发软件,在控件使用上显得很局限性,不断通过看视屏和资料徐徐掌握了某些常用控件用法,在数据库支持上也学到了诸多知识,固然第一次开发出一种较复杂系统,难免在软件质量上会有欠完善地方,由于时间急迫,没能做到尽善尽美,在功能上,也没什么特别出彩亮点,这是遗憾。固然在后来学习中会不断积累经验和知识,不断提高自己能力。
针对系统局限性尚有如下几种方面需要进一步完善和补充:
(1)界面有待进一步改进,使其更加美观。
( 2)检测系统错误需进一步完善。
(3)系统维护功能要更强。
(4)数据备份和恢复更完善。
在软件美化上,前几种功能窗体基本上还加了点图片,但自己没什么美术功底,因此此软件在外观上还是有诸多地方可以改进。
参照文献
夏邦贵编著.SQL Server数据库开发入门与范例解析.北京:机械工业出版社,
金林樵,唐军芳等编著.SQL Server数据库应用开发技术.北京:机械工业出版社,
C#100个编程实例程序
C#入门典型
Visual C#.net程序设计教程
某些源代码
1 登陆
private void button1_Click(object sender,EventArgs e){
string userName = txtname.Text;
string password = txtpwd.Text;
string connString = "Data Source = . ;Initial Catalog = 医院药物进销存系统;Integrated Security = true";
SqlConnection connection = new SqlConnection(connString);
string sql = String.Format("select count(*) from 账户密码表 where username ='{0}'and code ={1}",userName,password);
try
{
connection.Open();
SqlCommand command = new SqlCommand(sql,connection);
int num = (int)command.ExecuteScalar();
if (num > 0)
{
MessageBox.Show("","登录医院药物进销存系统̨?成¨¦功|",
MessageBoxButtons.OK,MessageBoxIcon.Information);
Form2 form = new Form2();
form.Show();
this.Visible = false;
}
else
{
MessageBox.Show("您输入有误","登录失败 ¹",MessageBoxButtons.OK,
MessageBoxIcon.Exclamation);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message,"操作数据库出错",
MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
}
}
2修改信息
private void button1_Click(object sender,EventArgs e)
{
string connString = "Data Source = . ;Initial Catalog = 医院药物进销存系统;Integrated Security = true";
SqlConnection connection = new SqlConnection(connectionString);
DataTable dt = new DataTable();
string update = "update 药物信息 set ypname='" + textBox2.Text.ToString() + "',price='" + textBox7.Text.ToString() + "',chengfen='" + textBox5.Text.ToString () + "',guige='" + textBox3.Text.ToString () + "',yongliang='" + textBox6.Text.ToString () + "',ypcode='" + textBox1.Text.ToString () + "' where ypcode = '"+ textBox1 .Text + "'";
try
{
connection.Open();
SqlCommand cmd = new SqlCommand(update,connection);
int n = cmd.ExecuteNonQuery();
if (n > 0)
{
MessageBox.Show("修改信息成¨¦功|!ê?");
}
else
{
MessageBox.Show("修改信息?");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
connection.Close();
}
}
3删除
private void button1_Click(object sender,EventArgs e)
{
string bianhao = textBox1.Text;
string connString = "Data Source = . ;Initial Catalog = 医院药物进销存系统;Integrated Security = true";
try
{
connection.Open();
string sql = String.Format("delete from 库存 where ypcode={0}",bianhao);
SqlCommand cmd = new SqlCommand(sql,connection);
int num = (int)cmd.ExecuteNonQuery();
if (num > 0)
MessageBox.Show("删除成功|","");
else
{
MessageBox.Show("删除失败 ","");
}
}
catch (Exception a)
{
MessageBox.Show(a.Message,"错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
finally
{
connection.Close();
}
}
private void button2_Click(object sender,EventArgs e)
{
textBox1.Text = null;
}
}
查询信息
string userName = Box1.Text;
string password = Box2.Text;
string connString = "Data Source = . ;Initial Catalog = 医院药物进销存系统Integrated Security = true";
SqlConnection connection = new SqlConnection(connString);
string sql = String.Format("select * from 药物信息 where ypcode = '{0}' or ypname = '{1}'",password,userName);
dataAdapter = new SqlDataAdapter(sql,connection);
dataset = new DataSet();
dataAdapter.Fill(dataset);
dataGridView1.DataSource = dataset.Tables[0];
展开阅读全文