收藏 分销(赏)

汽车销售管理系统.docx

上传人:pc****0 文档编号:8958897 上传时间:2025-03-09 格式:DOCX 页数:44 大小:559.74KB 下载积分:10 金币
下载 相关 举报
汽车销售管理系统.docx_第1页
第1页 / 共44页
汽车销售管理系统.docx_第2页
第2页 / 共44页


点击查看更多>>
资源描述
郑州科技学院 C#程序设计课程设计 题 目 汽车销售管理系统 姓 名 李鑫钰 专 业 计算机科学技术二班 学 号 2012一五056 指导教师 黄于欣 郑州科技学院信息工程学院 二○一五年十一月 目录 摘 要 1 1 前 言 2 1.1 研究背景 2 1.2 国内现状 3 1.3 研究内容 4 1.4 本人所做的工作 4 2 需求分析 5 2.1 开发设计思想 5 2.2 系统目标 5 3 概要设计 7 3.1 系统总体结构 7 3.2 员工行为分析 7 3.3 经理行为分析 8 3.4 管理员行为分析 8 3.5 数据库概念设计图 9 3.6 数据库物理机构设计图 10 4 主要模块详细设计 一三 4.1 登录模块分析 一三 4.2 购车建档模块分析 一三 5主要模块的实现 14 5.1 开发工具的选取 14 5.2 公共类的编写 一五 5.2.1 widows窗体.Config文件的配置 一五 5.3 主要模块的实现 16 5.3.1登录页面设计 16 5.3.2 购车建档设计 一八 6 安装与系统测试 37 6.1 安装Microsoft Visual Studio 2010 37 6.2 系统测试 38 6.2.1 测试计划 38 6.2.2 测试结果 38 参考文献 39 汽车销售管理系统的设计与实现 摘 要 随着计算机技术的广泛应用,为了使计算机更高效、更科学地管理汽车销售市场,基于目前汽车销售的现状,利用C#开发的一个汽车管理系统,并对该系统整个开发过程就行详细论述。该系统在设计方面采用B/S模式,使用C#技术和SQL Server 2005数据库进行基本页面的设计与功能实现,本系统的设计实施为销售管理系统的运行做基础,为销售管理系统管理工作提供良好的条件。 关键字:NET(C#);汽车销售管理系统;汽车销售 1 前 言 1.1 研究背景 该系统是基于汽车销售公司的系统,汽车销售公司都是以汽车营销为主,且大多数汽车销售公司在全国都设有连锁机构,随着企业的不断扩大规模,业务量日益增多,企业管理层通过自己的方式解决个地区之间在销售过程中遇到的种种问题。 根据各销售地区业务流量,系统基于中文版SQL Server 2005 设计,采用较先进的.Net(C#)技术进行开发,具有良好的稳定性和可靠性。 该销售管理系统,它可以完成对车辆信息的浏览、查询、修改及销售表单打印等功能,大大方便了销售员的管理。而且它对传统的手工劳动冲击不大,备有的用户手册使用户不至于不适应,这样操作起来,用户也能快速的接受。此系统是为了满足用户方便对该公司销售的汽车信息的查询,同时方便企业对汽车的各种管理与操作。 1.2 国内现状 汽车销售管理系统是销售行业的主要业务之一,汽车信息、用户信息日常工作管理成为及保存工作日趋繁重、复杂,且在日趋激烈的社会竞争中,客户量的多少是衡量一个企业在社会上的竞争力度,为此迫切需要一个能有效管理客户信息和对用户提出的需求做出快速反应的系统。目前国内现状是: ⑴国内众多中小企业迫切需要信息化管理,但是自己处于初步需求阶段,无法承受大型ERP、财务销售仓储一体信息化管理的中级阶段,自主开发的管理系统平台较低且功能单一,无法充分考虑到具体每一个单位、具体部分的实际需求。 ⑵销售数据标准化程度差,难以保证数据的唯一性和权威性。忽略了对销售数据的分析,使得销售经理需查询账单,才能了解销售情况,在一定程度上影响了对市场的判断。 ⑶没有注重对客户的管理,严重影响了企业对客户需求的了解,难以把握市场动态。 因此,开发一款功能全面操作简单的汽车销售管理系统是很有必要的,实现企业员工的集中管理、分散操作、信息共享,是传统的管理系统朝智能化,综合化得发展,并为近一步完善销售管理市场。 1.3 研究内容 汽车销售管理系统是典型的信息管理系统,其开发主要包括前端应用程序的开发及数据库的建立。前端得的应用程序要求应用程序功能完备、易使用等特点。对于数据库的建立要求数据一致性和完整性强,业务逻辑紧凑的数据库机构及操作方法。给予这些要求,我对SQL Sever 2005 数据库管理系统、SQL语言原理、C#程序设计语言、visual Studio 2010等进入了深入的学习和应用。最终顺利完成了汽车销售管理系统的设计与实现 1.4 本人所做的工作 为设计和实现汽车销售管理系统,针对该系统做了需求分析、功能划分、数据库模式分析、并为此设计了数据库结构和应用程序。实现了本系统的基本功能:登录管理员的权限判断,员工信息、车辆信息、用户信息的管理,保险、税费、活动等服务信息的管理。 2 需求分析 2.1 开发设计思想 (1) 减少系统对硬件的要求。本系统在装有操作系统的计算机上均可使用。 (2) 节约了人力资源。传统的手工式收集用户资料方式被计算机取代。 (3) 使用性:为汽车信息、用户信心、员工信息管理提供便捷的方法。 (4) 操作简单:保证系统适合于任何计算机水平的员工,尽可能的简单。 (5) 代码可读性好:系统机构清晰,代码简洁可读,方便日后的扩展。 2.2 系统目标 本系统主要实现以下目标: a) 员工管理。增加、修改和删除分类及员工权限管理。 b) 用户管理。对已在本公司购车的用户信息管理。 c) 用户选车、购车。根据用户需求查找适合用户需求的车辆。 d) 代办车务。在用户购车时,帮助用户代办汽车业务。 e) 管理员及公司员工登陆。 f) 管理员管理。 3 概要设计 3.1 系统总体结构 图3-1汽车销售系统功能结构图 3.2 员工行为分析 图3-2 销售员工工作流程图 3.3 经理行为分析 图3-3经理工作流程图 3.4 管理员行为分析 下面是看管理员的工作,其行为主要包括对用户权限的管理。如图3-4所示。 图3-4管理员行为分析图 3.5 数据库概念设计图 图3-5数据库逻辑设计图 3.6 数据库物理机构设计图 用户表(yonghu) 名称 类型 是否可为空 车辆编号 nchar(10) NO, 主键,外键 保险编号 nchar(10) NO, 主键,外键 用户姓名 vnchar(10) NO 性别 nchar(2) NO 贯籍 nvarchar(50) Yes 民族 nchar(2) Yes 出生年月 datetime Yes 学历 nvarchar(一五) Yes 证件类型 nchar(10) Yes 证件号码 nchar(一八) Yes 工作单位 varchar(50) Yes 联系地址 varchar(50) NO x nchar(12) NO 邮政编码 nchar(6) Yes 婚姻状况 nchar(10) Yes 汽车分类表(cars) 名称 类型 是否可为空 车辆编号 nchar(10) NO, 主键 厂牌型号 nvarchar(50) NO 发动机号 varchar(50) NO 车架号码 varchar(50) NO 车辆类型 char(10) NO 车辆性质 char(10) NO 车身颜色 char(10) NO 车辆价格 char(10) NO 出厂日期 datetime NO 保险表(baoxian) 名称 类型 是否可为空 保险编号 nchar(10) NO, 主键 保险名称 varchar(50) NO 分类名称 char(10) NO 员工信息表(YGB) 名称 类型 是否可为空 工号 nchar(10) NO, 主键 姓名 nchar(10) NO 性别 nchar(10) NO 贯籍 nchar(10) NO 生日 datetime YES 身份证号 nchar(一八) NO x nchar(12) NO 联系地址 varchar(50) NO 邮编 nchar(6) NO 部门 nchar(10) NO 职务 nchar(10) NO 销售表 名称 类型 是否可为空 工号 nchar(10) NO, 主键,外键 车辆编号 nchar(10) NO, 主键,外键 用户姓名 vnchar(10) NO 保险编号 nchar(10) NO, 主键,外键 销售日期 datetime NO 管理员信息表 名称 类型 是否可为空 userID int NO, 主键 user_name nchar(10) NO user_pswd varchar(50) NO user_power nchar(10) NO 4 主要模块详细设计 4.1 登录模块分析 图4-1登录模块分析 4.2 购车建档模块分析 图4-2购车建档模块分析 5主要模块的实现 5.1 开发工具的选取 .NET(c#)技术是开发软件的技术之一,它继承了Microsoft的两项主要技术:Active Server Page(ASP)和.NET Framework。利用. NET Framework提供的强大类库和预定义控件,.NET开发windows窗体应用程序非常的方便。其优点如下: 优良的性能。C# windows 窗体程序是在服务器上运行的编译好的代码。利用早期绑定、实时编译、本机优化和缓存服务来提高程序的性能。 强大的功能。由于 .NET技术基于公共语言运行库,因此 C# windows窗体应用程序开发人员可以利用整个平台的威力和灵活性。 简易性。C# Windows 窗体使执行常见任务变得容易,从简单的窗体提交和客户端身份验证到部署。 自定义性和扩展性。C#随附了一个设计周到的结构,它使开发人员可以在适当的级别"插入"代码。 安全性。借助内置的 Windows 身份验证和基于每个应用程序的配置,可以保证应用程序是安全的。 虽然.NET可以支持多种开发语言,但只有C#是为. NET Framework量身定做的,它拥有所有. NET Framework提供的优点,如资源回收、内存自动管理等,能够最完美地体现. NET 的功能。 正是基于以上原因,本系统采用.NET(C#)技术来实现。 5.2 公共类的编写 5.2.1 widows窗体.Config文件的配置 以下是本系统与数据库建立连接的源代码: public static SqlConnection GyDATE() { return new SqlConnection(x"Data Source=PC20110314一八pts;Initial Catalog=汽车销售管理;Integrated Security=True;Pooling=False;"); } 5.3 主要模块的实现 5.3.1登录页面设计 汽车销售管理系统有一个严格的身份验证,不同身份的用户有不同的操作权限。用户权限分为员工、经理、管理员三种,其中员工只能操作极少的页面,经理可以查看员工销售统计和管理员工信息。管理员具有最高权限,可以进行一切页面的操作。登录用户登录系统后可以修改密码,在登录界面需输入用户名和密码并且选择身份,此三项若有一项不正确均不能登录到操作页面。改页面具体实现过程如下: 图5-1 登录界面设计 登录按钮添加代码如下: private void button1_Click(object sender, EventArgs e) { if (textBox2.Text.Trim() == string.Empty) { MessageBox.Show("请输入用户名"); return; } if (textBox3 .Text .Trim ()==string .Empty ) { MessageBox.Show("请输入密码?"); return; } using (SqlConnection con = new SqlConnection(x"Data Source=PC20110314一八pts;Initial Catalog=汽车销售管理;Integrated Security=True;Pooling=False;")) { 用户登录.loginId = textBox2.Text.Trim(); 用户登录.loginATC = comboBox1.Text.Trim(); string sql = "select * from userstring where user_name= '" + textBox2.Text.Trim() + "'and user_power = '" + comboBox1.Text.Trim() + "' and user_pswd = '" + textBox3.Text.Trim() + "' "; con.Open(); SqlDataAdapter da = new SqlDataAdapter(sql, con); DataSet ds = new DataSet(); da.Fill(ds); DataTable dt = ds.Tables[0]; if (dt.Rows.Count > 0) { MessageBox.Show("登录成功"); 主页面 ff = new 主页面(); ff.Show(); this.Visible = false; } else { MessageBox.Show("登录失败"); //comboBox1.Text = string.Empty; textBox2.Text = string.Empty; textBox3.Text = string.Empty; } } } 5.3.2 购车建档设计 其中主要任务利用DateGridView显示数据库表中当前用户信息和建立新用户信息,也可对也有用户数据进行查询,也可打印当前构建的用户信息让用户确认,若有错误或资料不完整,可以对用户资料进行修改。完成效果如图5.2所示。 图5.2购车建档页面设计效果 5.3.2.1 增加、保存、修改按钮实现在码如下: SqlConnection conn = getdate.GyDATE(); conn.Open(); string strSql = string.Format("选择相应表操作"); SqlCommand cmd = new SqlCommand(strSql, conn); int i = cmd.ExecuteNonQuery(); conn.Close(); if (i > 0) { MessageBox.Show("操作成功"); } else { MessageBox.Show("操作失败"); } 5.3.2.2 查询按钮的实现代码如下: private void button4_Click(object sender, EventArgs e) { SqlConnection conn = getdate.GyDATE(); string str = "select * from maiche "; str += "where 用户姓名= '" + textBox14.Text.Trim() + "'and 国籍= '" + textBox一八.Text.Trim() + "'and 车身颜色='" + comboBox7.Text.Trim() + "'and 车牌号='" + textBox19.Text.Trim() + "'and 厂牌型号='" + comboBox8.Text.Trim() + "'"; SqlCommand Com = new SqlCommand(str, conn); SqlDataAdapter myda = new SqlDataAdapter(); myda.SelectCommand = Com; conn.Open(); DataSet myds = new DataSet(); MessageBox.Show(str); myda.Fill(myds, "baoxiandengji"); conn.Close(); dataGridView1.DataSource = myds; dataGridView1.DataMember = "baoxiandengji"; SqlCommand cmd = new SqlCommand(str, conn); } 5.3.2.3 导出按钮实现代码如下: private void button6_Click(object sender, EventArgs e) { try { DataGridViewToExcel(dataGridView1); } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void DataGridViewToExcel(DataGridView dgv) { SaveFileDialog dlg = new SaveFileDialog(); dlg.Filter = "Execl files (*.xls)|*.xls"; dlg.FilterIndex = 0; dlg.RestoreDirectory = true; dlg.CreatePrompt = true; dlg.Title = "保存为文件; if (dlg.ShowDialog() == DialogResult.OK) { Stream myStream; myStream = dlg.OpenFile(); StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding(-0)); string columnTitle = ""; try { //写入列标题 for (int i = 0; i < dgv.ColumnCount; i++) { if (i > 0) { columnTitle += "\t"; } columnTitle += dgv.Columns[i].HeaderText; } sw.WriteLine(columnTitle); //写入列内容 for (int j = 0; j < dgv.Rows.Count; j++) { string columnValue = ""; for (int k = 0; k < dgv.Columns.Count; k++) { if (k > 0) { columnValue += "\t"; } if (dgv.Rows[j].Cells[k].Value == null) columnValue += ""; else columnValue += dgv.Rows[j].Cells[k].Value.ToString().Trim(); } sw.WriteLine(columnValue); } sw.Close(); myStream.Close(); } catch (Exception e) { MessageBox.Show(e.ToString()); } finally { sw.Close(); myStream.Close(); } } 5.3.2.4 打印按钮实现代码如下: 在public partial class 购车建档公共类中写入以下代码: //打印文档 PrintDocument pdDocument = new PrintDocument(); //打印格式设置页面 PageSetupDialog dlgPageSetup = new PageSetupDialog(); //打印页面 PrintDialog dlgPrint = new PrintDialog(); //实例化打印预览 PrintPreviewDialog dlgPrintPreview = new PrintPreviewDialog(); 在public 购车建档(){}函数中写入以下代码: this.dataGridView1.CellClick+=newDataGridViewCellEventHandler(dataGridView1_CellClick); pdDocument.PrintPage += new PrintPageEventHandler(OnPrintPage); btnPrint.Click += new EventHandler(btnPrint_Click); btnPrintView.Click += new EventHandler(btnPrintView_Click); btnPrintSetup.Click += new EventHandler(btnPrintSetup_Click); //页面设置的打印文档设置为需要打印的文档 dlgPageSetup.Document = pdDocument; //打印界面的打印文档设置为被打印的文档 dlgPrint.Document = pdDocument; //打印预览的文档设置为被打印的文档 dlgPrintPreview.Document = pdDocument; 为打印功能写入实现代码,具体如下: private void btnPrintView_Click(object sender, EventArgs e) { dlgPrintPreview.ShowDialog(); } /// 打印设置,此处需要添加一个打印设置的按钮 private void btnPrintSetup_Click(object sender, EventArgs e) { dlgPageSetup.ShowDialog(); dlgPrint.ShowDialog(); } /// printDocument的PrintPage事件 ,实现打功|能 private void OnPrintPage(object sender, PrintPageEventArgs e) { int iX = 60; int iY = 40; PrintDataGridView11.Print(dataGridView1, true, e, ref iX, ref iY); } /// 打印,此处需添加一个打印按钮 private void btnPrint_Click(object sender, EventArgs e) { pdDocument.Print(); } private void Form1_Load(object sender, EventArgs e) { SqlConnection sqlcon = new SqlConnection(); sqlcon.Open(); SqlDataAdapter da = new SqlDataAdapter("select * from AdminInfor", sqlcon); DataSet ds = new DataSet(); da.Fill(ds); dataGridView1.DataSource = ds.Tables[0]; sqlcon.Close(); } private void button8_Click_1(object sender, EventArgs e) { this.Close(); } } /// 实现DataGridView的打印类 public class PrintDataGridView10 { private static List<DataGridViewCellPrint> CellPrintList = new List<DataGridViewCellPrint>(); /// 打印的行数 private static int printRowCount = 0; /// 是否要打印 private static bool IsPrint = true; /// 设置的起始位置是否大于默认打印的边框 private static bool IsRole = true; /// X坐标 private static int PoXTmp = 0; /// Y坐标 private static int PoYTmp = 0; /// 列间距 private static int WidthTmp = 0; /// 行间距 private static int HeightTmp = 0; /// 列数 private static int RowIndex = 0; /// 打印DataGridView控件 /// DataGridView控件 /// 是否包括列标题 /// 为System.Drawing.Printing.PrintDocument.PrintPage 事件提供数据。 /// 起始X坐标 /// 起始Y坐标 public static void Print(DataGridView dataGridView, bool includeColumnText, PrintPageEventArgs eValue, ref int PoX, ref int PoY) { try { if (PrintDataGridView10.IsPrint) { PrintDataGridView10.printRowCount = 0; PrintDataGridView10.IsPrint = false; PrintDataGridView10.DataGridViewCellVsList(dataGridView, includeColumnText); //获取要打印的数据 if (0 == PrintDataGridView10.CellPrintList.Count) return; if (PoX > eValue.MarginBounds.Left) //如果设置的起始位置大于默认打印的边框, IsRole为true PrintDataGridView10.IsRole = true; else PrintDataGridView10.IsRole = false; PrintDat
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服