C#程序设计课程设计(论文)题目:药品销售管理系统的设计与实现院(系):电子与信息工程学院专业班级:学号:学生姓名:指导教师:教师职称:起止时间:课程设计(论文)任务及评语院(系):电子与信息工程学院教研室:网络工程学号学生姓名专业班级课程设计(论文)题目药品销售管理系统的设计与实现课程设计(论文)任务1.题目要达到的目标:完成系统的登陆、数据的插入删除修改统计等基本操作,程序要求具有较好的交互能力和方便性,尽可能的减少用户的工作量。2.数据库:采用关系数据库SQLServer2000。3.所使用的语言、工具:C#+SQLServer2000+WINDOWSXP。所采用的技术、系统结构:ADO数据库联接技术,系统结构为C/S结构。指导教师评语及成绩成绩:指导教师签字:年月日学生签字:____________辽宁工业大学课程设计说明(论文)书目录第一章概述.................................................1第二章问题定义.............................................2第三章需求分析.............................................3第四章数据库设计...........................................5第五章界面设计.............................................6第六章代码与注释..........................................11第七章设计总结............................................15参考文献...................................................16辽宁工业大学课程设计说明(论文)书1第一章概述本药品销售管理系统本着一切为用户着想的设计指导思想,力求做到界面美观大方,操作简捷明了,而且具备一个实用的操作系统的良好容错性,在用户出现误操作时能尽量及时地给出警告,以便用户能够及时进行改正。由于不同用户所使用的计算机资源总是会受到不同条件的限制,因此,我们就要充分利用的功能,在设计出自己的功能强大的软件的同时,尽可能地减少对系统资源的占用,并且还要力求做到通过使用本药品销售管理系统,尽量使单位的药品销售管理工作系统化、自动化和规范化,从而达到提高单位效率的目的。本系统开发的总体设计目标是使小型药品销售单位的工作人员能够轻松、快捷地完成本单位的药品信息管理任务。辽宁工业大学课程设计说明(论文)书2第二章问题定义销售人员:系统的操作人员,主要指销售各种药品信息的工作人员,需要通过密码才能进入。他们拥有对系统数据的修改、查询等操作权限。但不可以更改系统密码。访客人员:权限最低的登入人员,他们拥有对相关数据的查询权限,但不能对数据进行修改和删除。系统管理人员:指药品销售管理系统的管理人员,他们拥有所有权限,包括对系统数据的录入、修改、查询、删除等操作权限。可以对系统密码进行更改,可以管理用户信息、权限。辽宁工业大学课程设计说明(论文)书3第三章需求分析一、主要功能:本系统主要用于小型药品销售单位的药品信息管理,采用面向对象的设计思想,以菜单和表单的形式进行各表单的调用,其系统功能分析是在系统开发的总体任务的基础上完成的。因此,本系统应该主要完成和实现如下功能:初始化系统数据;录入药品的基本信息数据;药品基本信息数据的修改和删除;药品信息的基本设定;浏览药品的信息;查询药品的具体参数;药品信息:在该项内容中将包括的数据库项有药品编号、药品名称、药品进价、药品售价、药品规格、药品种类、药品库存。药品信息的基本设定:通过该模块可以设定药品编号、药品名称、药品进价、药品售价、药品规格、药品种类、药品库存、销售量。二、数据流图(DFD):(略)三、数据字典(DD):药品信息=药品编号+药品名称+药品进价+药品售价+药品规格+药品种类+药品库存+销售量;应用在了药品信息维护界面。四、程序流程图系统主界面验证登录口令密码是否正确?调用系统菜单是否辽宁工业大学课程设计说明(论文)书4五、功能结构图:药品销售管理系统模块药品信息设定模块药品信息设定药品编号药品名称药品进价药品售价库存种类药品规格销售量要求重新输入或退出系统药品销售管理系统药品信息管理药品信息添加药品信息删除药品信息查找退出辽宁工业大学课程设计说明(论文)书5第四章数据库设计一、概念设计:系统ER图二、逻辑设计:下面列出主要的数据库表设计:药品信息表:序号中文名字段名类型备注0药品编号数字型主键1药品名称文本型arar2药品进价数字型3药品售价数字型4药品规格文本型5药品类型文本型6库存量数字型7销售量数字型三、物理设计建立索引是加快查询速度的有效手段。用户可以根据应用环境的需要,在基本表上建立一个或多个索引,以提供多种存取路径,加快查找速度。一般说来,建立与删除索引由数据库管理员DBA或表的属主(owner),即建立表的人,负责完成。系统在存取数据时会自动选择合适的索引作为存取路径,用户不必也不能显示地选择索引。在RDBMS中索引一般采用B+树、HASH索引来实现。B+树索引具有动态平衡的优点。HASH索引具有查找速度快的特点。索引是关系数据库的内部实现技术,属于内模式范畴。用户使用CREATEINDEX语句定义索引时,可以定义索引是唯一索引、非唯一索引录入录入员录入数据1n管理员编号管理数据药品信息nn辽宁工业大学课程设计说明(论文)书6或聚簇索引。至于某一个索引是采用B+树,还是HASH索引则由具体的RDBMS来决定。第五章界面设计一、登陆窗口如下所示:若输入的密码不符合,即弹出对话框,提示该用户无法进入系统。登陆界面用户名或密码错误辽宁工业大学课程设计说明(论文)书7密码正确,根据登陆所用账户的权限分别显示相应界面二、药品销售管理系统访客界面顾客根据查询结果可以找到是否有自己所需要的药品及此药品的库存和售价,方便顾客。辽宁工业大学课程设计说明(论文)书8三、药品销售管理系统销售员界面根据药品编号或名称查询想要销售的商品后,操作员根据售价输入销售数量来确认收款,系统会自动给出找零,程序具有较好的完整性会发现大多数收款错误,避免出现错误数据。成功销售药品四、药品销售管理系统管理员界面辽宁工业大学课程设计说明(论文)书9通过点击不同功能按钮进入不同功能界面进行操作五、药品信息维护辽宁工业大学课程设计说明(论文)书10管理员通过此界面完成对药品信息的查询、更新、删除等操作;六、管理员授权新用户管理员通过此界面完成删除已存在的用户或者授权新的用户操作七、账目统计通过此界面来完成对某一天销售情况的简单统计,帮助用户了解销售情况,减少用户的工作量辽宁工业大学课程设计说明(论文)书11第六章代码与注释一、登录窗口代码usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;namespace药品销售管理系统{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoidIncEro()//错误次数加1{//如果在同一个连接中,SqlDataReader没有关闭,那么是不能执行Updata//之类的语句的所以单独另写一个函数来自增ErrorTimes//再建一个连接即可using(SqlConnectionconn=newSqlConnection(Server=Localhost;IntegratedSecurity=SSPI;DataBase=MedicalSale;)){conn.Open();using(SqlCommandupdatecmd=conn.CreateCommand()){updatecmd.CommandText=updateT_UserssetErrorTimes=ErrorTimes+1whereUserName=@UN;updatecmd.Parameters.Add(newSqlParameter(UN,textBox1.Text));updatecmd.ExecuteNonQuery();}}}privatevoidResetEro()//重置错误次数辽宁工业大学课程设计说明(论文)书12{using(SqlConnectionconn=newSqlConnection(Server=Localhost;IntegratedSecurity=SSPI;DataBase=MedicalSale;)){conn.Open();using(SqlCommandupdatecmd=conn.CreateCommand()){updatecmd.CommandText=updateT_UserssetErrorTimes=0whereUserName=@UN;updatecmd.Parameters.Add(newSqlParameter(UN,textBox1.Text));updatecmd.ExecuteNonQuery();}}}privatevoidbutton2_Click(objectsender,EventArgse){this.Close();}privatevoidbutton1_Click(objectsender,EventArgse){try{if(textBox1.Text==||textBox2.Text==){MessageBox.Show(用户名或密码不能为空!,提示,MessageBoxButtons.OK,MessageBoxIcon.Information);return;}stringstrcon=Server=Localhost;IntegratedSecurity=SSPI;DataBase=MedicalSale;SqlConnectionconn=newSqlConnection(strcon);conn.Open();SqlCommandcmd=conn.CreateCommand();cmd.CommandText=select*fromT_userswhereUserName=@UN;//利用参数化查询避免注入漏洞cmd.Parameters.Add(newSqlParameter(UN,textBox1.Text));//把textBox1.Text的值赋给参数UN来进行数据查询验证用户名SqlDataReaderreader=cmd.ExecuteReader();//利用reader验证错误次数if(reader.Read())//用户名存在{//获取此用户的错误次数intErrorTimes=reader.GetInt32(reader.GetOrdinal(ErrorTimes));辽宁工业大学课程设计说明(论文)书13if(ErrorTimes=3){MessageBox.Show(您登录错误次数过多无法登录,请联系管理员解决!,警告,MessageBoxButtons.OK,MessageBoxIcon.Warning);return;//别忘记return}//获取并验证密码stringDBpassword=reader.GetString(reader.GetOrdinal(Password)).TrimEnd();if(DBpassword==textBox2.Text){intPower=reader.GetInt32(reader.