数据库原理及应用设计课程设计 汽车销售管理系统_第1页
数据库原理及应用设计课程设计 汽车销售管理系统_第2页
数据库原理及应用设计课程设计 汽车销售管理系统_第3页
数据库原理及应用设计课程设计 汽车销售管理系统_第4页
数据库原理及应用设计课程设计 汽车销售管理系统_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 淮 海 工 学 院 计算机工程学院课程设计报告设计名称: 数据库原理及应用设计课程设计 姓 名: xx 学 号: 110831123 专业班级: 软件工程081班 系 (院): 计算机工程学院 设计时间: 2010.12.202011.12.31 设计地点: 计算机楼一楼机房 成绩:指导教师评语: 签名: 年 月 日一、概述1.1项目背景 高效的汽车销售管理系统是当前信息化汽车公司管理系统之需要,面对庞大的汽车销售和库存信息,就需要有汽车管理系统来提高管理工作的效率,通过建立这样的系统,可以做到汽车信息的规范管理、快速查询和科学统计,从而减少管理方面的工作量;1.2 编写目的进一步了解软件的

2、功能划分、软件总体结构,掌握数据库设计原理及相关软件的使用;1.3 软件定义汽车销售管理系统轿实现对汽车信息、客户信息、厂商信息、仓库信息、汽车销售、订单等管理。从客户咨询、订购,到签定购销合同、交款、提车等多个销售环节上,系统提供了严密的跟踪管理服务,对车辆库存、财务管理、业务分析都提供了一套科学的管理方法。 1.4 开发环境系统开发环境为一台安装windows xp的个人计算机作为客户机,其上安装了sql server 2000,本系统使用visual stadio 2008来开发,系统设计与运行均可在客户机上进行。二、需求分析2.1 功能划分及功能描述管理员:q 管理员/客户帐号管理 系

3、统管理员可以登录该系统,登录时需要验证管理员登录号和密码,进入之后可以添加管理员、修改管理员,对客户可以进行查询与删除操作;q 汽车基本信息管理系统管理员可以按汽车型号或价格查询汽车信息,对查到的结果进行修改删除操作,在删除汽车信息时,对应的汽车数量也相应的从仓库中删除;q 汽车进货信息管理 系统管理员可以添加进货信息,在添加的同时根据需要将进货的数量加入仓库及汽车信息中;q 汽车销售信息管理系统管理员可以根据客户 /型号与厂商/ 客户名、汽车型号及厂商名查询相应的利润信息,并将查询结果显示在表格中,管理员可以删除任何一行信息,并可根据任意一行信息做删除操作;q 汽车库存信息管理系统管理员可以

4、根据仓库号查询删除仓库信息,并可以一次添加一个仓库;q 厂商管理系统管理员可以根据厂商名查询厂商的所有信息,并选择一行进行修改,同时也可以添加厂商信息;q 订单管理系统管理员可以查看需面议的订单、已交易(未销售)的订单,可以对订单标记已销售、面议或通过。普通用户:q 注册普通用户通过填自己信息进行注册q 汽车销售信息普通用户可以查看自己的所有订单,包括需面议的、成功交易的、未处理的订单,根据汽车型号或价格查询自己需要的汽车进行预定操作。2.2 功能模块图三、系统设计 3.1 数据流图3.1.1顶层数据流图3.1.2 0层数据流图3.1.3 1层数据流图3.2 数据字典3.2.1数据项编号数据项

5、名数据项含义说明数据项类型长度与其他数据项的逻辑关系1admin_id管理员号 不许为空int4-2admin_name管理员姓名 不许为空varchar10-3admin_pwd管理员登陆密码 允许为空varchar20-4cus_id客户号 不许为空int4-5cus_pwd客户登陆密码 允许为空varchar206cus_name客户姓名 不许为空varchar10-7cus_sex客户性别 不许为空varchar2-8cus_age客户年龄 允许为空int4-9cus_tel客户联系电话 允许为空varchar10-10car_id汽车号 不许为空int4-11car_name汽车型号

6、 不许为空varchar20-12car_price汽车价格 不许为空varchar10car_price=stock_price13car_amount汽车数量 不许为空int4-14house_id库存号 不许为空int4-15house_amount库存量 不许为空int4-16supply_id厂商号 不许为空int4-17supply_name厂商名 不许为空varchar50-18supply_tel厂商联系电话 允许为空varchar10-19sale_price销售价格 不许为空varchar10-20sale_amount销售数量 不许为空int4-21sale_date销售

7、时间 允许为空datetime8-22stock_id进货号 不许为空int4-23stock_price进货价 不许为空varchar10-24stock_amount进货数量 不许为空int4-25stock_date进货时间 允许为空datetime8-26order_id预定号 不许为空int4-27order_amount预定数量 不许为空varchar10-28order_price预定价格 不许为空varchar10-29order_date预定日期 允许为空datetime8-30order_treat订单标记(0表未处理,3表示为“面议”1代表“已处理”)varchar5-3

8、.2.2数据结构编号数据结构名含义说明组成1admin管理员管理员号、姓名、登陆密码2customer客户客户号、客户登陆密码、客户姓名、性别、年龄、联系电话3car汽车信息厂商号、型号、汽车号、价格、库存号、汽车数量4warehouse库存库存号、库存数量5suppliers厂商厂商号、厂商名、联系电话6sale汽车销售出售日期、客户号、汽车号、销售价格、数量7stock进货信息进货号、汽车型号、库存号、厂商号、进货价、进货数量、日期8orders订单订单号、客户号、汽车号、厂商号、预定数量、价格、时间、订单标记3.2.3数据流编号数据流名输入输出1变更管理员变更信息管理员信息2变更客户变更

9、信息客户信息3查询客户客户名客户信息3变更厂商变更信息厂商信息查询厂商厂商名厂商信息4变更车辆变更信息车辆信息5查询车辆车型号/车辆价格车辆信息6变更仓库变更信息仓库信息查询仓库仓库号仓库信息7变更车辆销售变更信息车辆销售信息8查询车辆销售客户/型号与厂商/客户、型号与厂商利润值9变更进货变更信息进货信息10变更订单变更信息订单信息11查询订单-订单信息3.2.4数据存储数据存储名输入数据流输出数据流管理员信息变更管理员查询管理员客户信息变更客户查询客户、查询销售信息、查询订单请求库存信息变更库存信息查询库存、查询汽车信息车辆信息变更车辆查询车辆、查询销售信息、查询库存信息、查询订单请求厂商信

10、息变更厂商查询厂商、查询汽车信息车辆销售信息变更车辆销售查询销售信息、查询仓库信息、查询汽车信息订单信息变更订单查询订单信息、查询销售信息、查询汽车信息3.2.5处理过程处理过程名输入数据流输出数据流客户登记终端变更销售、变更订单订货提交订单信息获得/查询订单信息客户结账结账变更销售信息、仓库信息、汽车信息3.3概念结构设计e-r图34 关系模型 管理员admin(管理员号admin,姓名admin_name,登陆密码admin_pwd);客户customer (客户号cus_id、客户登陆密码cus_pwd、客户姓名cus_name、性别cus_sex、年龄cus_age、联系电话cus_t

11、el);汽车car(厂商号supply_id、型号car_name、汽车号car_id、价格car_price、库存号house_id、汽车数量car_amount);仓库warehouse (库存号house_id、库存数量house_amount);厂商suppliers(厂商号supply_id、厂商名supply_name、联系电话supply_tel);汽车销售sale (出售日期sale_date、客户号cus_id、汽车号car_id、销售价格sale_price、数量sale_amount);进货信息stock (进货号stock_id、汽车型号car_name、库存号hous

12、e_id、厂商号supply_id、进货价stock_price、进货数量stock_amount、日期stock_date);订单orders (订单号order_id、客户号cus_id、汽车号car_id、厂商号supply_id、预定数量order_amoount、价格order_price、时间order_date、订单标记order_treat);35数据库设计 管理员admin表:客户 customer表: 汽车信息 car表: 仓库 warehouse表:厂商 suppliers表:汽车销售 sale表:进货信息 stock表:订单 orders表:四、系统实现4.1 汽车销售

13、系统界面及相应的代码4.1.1注册界面#region 点击注册 private void btnregister_click(object sender, eventargs e) name = txtuser.text.trim().tostring(); read = sql.executereader(dbo.selectcus, commandtype.storedprocedure); while (read.read() if (readcus_name.tostring().trim() = name) messagebox.show(已有相同用户名!请重新输入!); txtus

14、er.text = ; read.close(); return; read.close(); password = textbpwd.text.trim().tostring(); password1 = textbpwd1.text.trim().tostring(); age = textbage.text.trim().tostring(); tel = textbtel.text.trim().tostring(); sex = radiobboy.text.trim().tostring(); model.customer customer = new carsale.model.

15、customer(name,password,sex,age,tel); if (string.isnullorempty(name) | string.isnullorempty(password) | string.isnullorempty(age) | string.isnullorempty(tel) messagebox.show(输入框不许为空!); else if (password != password1) messagebox.show(两次输入密码不一致!); textbpwd.text = ; textbpwd1.text = ; else txtuser.text

16、= ; textbpwd.text = ; textbpwd1.text = ; textbage.text = ; textbtel.text = ; if (user.insert(customer) messagebox.show(注册成功!); else messagebox.show(注册失败!); #endregion4.1.2管理员管理界面 #region 修改管理员 private void btnchange_click(object sender, eventargs e) nname = txtchangeuser.text.trim().tostring(); npas

17、sword = txtchangepwd.text.trim().tostring(); npassword1 = txtchangepwd1.text.trim().tostring(); if(string.isnullorempty(npassword)|string.isnullorempty(npassword1) messagebox.show(输入框不许为空!); else if (npassword != npassword1) messagebox.show(两次输入密码不一致!); txtchangepwd.text = ; txtchangepwd1.text = ; e

18、lse int byname = user.selectbyname(comboboxusers.text.trim().tostring(); model.admin ad = new carsale.model.admin(byname, nname, npassword); txtchangepwd.text = ; txtchangepwd1.text = ; txtchangeuser.text = ; if (user.update(ad) messagebox.show(修改管理员成功!); manageadmin_load(sender,e); else messagebox.

19、show(修改管理员失败!); #endregion4.1.3 厂商信息管理界面#region 删除 private void btncancel_click(object sender, eventargs e) try string sid = datagridview1.currentrow.cells厂商号.value.tostring(); bool b =supply.deletesupply(convert.toint32(sid);if (b) messagebox.show(删除成功!); string supplyname = comboboxsp.text.trim().

20、tostring(); model.suppliers sp = new carsale.model.suppliers(supplyname); datagridview1.datasource = supply.selectallbyname(sp); managesuppliers_load(sender, e); else messagebox.show(删除失败!); catch (exception ex) messagebox.show(ex.message.tostring();#endregion4.1.4 客户信息管理界面#region 查询客户 private void

21、btnseek_click(object sender, eventargs e) username = comboboxuser.text.trim().tostring(); if (radiobuttonboy.checked) sex = 男; else sex = 女; datagridviewusers.datasource = cus.selectbysexname(username,sex); #endregion4.1.5 汽车信息管理界面#region 修改 private void btnchange_click(object sender, eventargs e) t

22、ry string uname = textboxtype.text.trim().tostring(); int hid = convert.toint32(comboboxhouse.text.trim().tostring(); string uprice = txtcarprice.text.trim().tostring(); string usupply = comboboxsupply.text.trim().tostring(); int sid = sp.selectbyname(usupply); string id = datagridviewcar.currentrow

23、.cells汽车代号.value.tostring(); if (car.updatecar(uname, hid, uprice, sid, convert.toint32(id) messagebox.show(修改汽车信息成功!); if (rbbytype.checked = true) type = comboboxtype.text.trim().tostring(); datagridviewcar.datasource = car.selectbyname(type); else price1 = txtprice.text.trim().tostring(); price2

24、= txtprice1.text.trim().tostring(); datagridviewcar.datasource = car.selectbyprice(price1, price2); managecar_load(sender, e); else messagebox.show(修改汽车信息失败!); catch (exception ex) messagebox.show(ex.message.tostring(); #endregion4.1.6 仓库管理信息界面#region 添加一个仓库 private void buttonadd_click(object sende

25、r, eventargs e) int amount =0; model.warehouse house=new carsale.model.warehouse(amount); if (warehouse.insert(house) messagebox.show(添加一个仓库成功!); managehouse_load(sender,e); else messagebox.show(添加一个仓库失败!); #endregion4.1.7 客户预定汽车#region 查看需面议的订单 private void btnall_click(object sender, eventargs e)

26、datagridvieworder.datasource = order.selectallorderall(customer,3); #endregion #region 查看已处理订单 private void btned_click(object sender, eventargs e) datagridvieworder.datasource = order.selectallorderall(customer,1); #endregion#region 查看未处理的订单 private void btnnull_click(object sender, eventargs e) da

27、tagridvieworder.datasource = order.selectallorderall(customer,0); #endregion#region 预定订单 private void btnorder_click(object sender, eventargs e) string number = textbamount.text.trim().tostring(); string price = txtgiveprice.text.trim().tostring(); string date = datetimepickerdate.text.trim().tostri

28、ng(); string cus =customer; int ci = u.selectbycustomer(cus); string cartype = datagridvieworder.currentrow.cells汽车型号.value.tostring(); string sname = datagridvieworder.currentrow.cells厂商名.value.tostring(); int carid=car.selectbycartype(cartype,s.selectbyname(sname); if (order.insertorder(ci, carid,

29、 convert.toint32(number), s.selectbyname(sname), price, convert.todatetime(date) messagebox.show(订单已保存!); usermain_load(sender,e); #endregion4.1.8 订单管理#region 确定已销售 private void btnsaleed_click(object sender, eventargs e) trystring orderid = datagridvieworder.currentrow.cells订单号.value.tostring();boo

30、l b = order.deleteorder(convert.toint32(orderid);int cusid = convert.toint32(datagridvieworder.currentrow.cells客户号.value.tostring();string cartype = datagridvieworder.currentrow.cells汽车型号.value.tostring();string supplyname = datagridvieworder.currentrow.cells厂商姓名.value.tostring(); int carid = car.se

31、lectbycartype(cartype,ss.selectbyname(supplyname);string priceu = datagridvieworder.currentrow.cells订购价格.value.tostring();string amountu = datagridvieworder.currentrow.cells订购数量.value.tostring(); if (b) messagebox.show(处理成功!); datagridvieworder.datasource = order.selectsupply();model.sale s = new ca

32、rsale.model.sale(cusid, carid, priceu, convert.toint32(amountu); if (!sale.insertsale(s) messagebox.show(插入销售表时失败!); int houseid = warehouse.selectbycartype(carid); if (!order.updateamount(carid, convert.toint32(amountu) messagebox.show(修改汽车数量失败!); int sum = car.selectamount(houseid); if (!(warehous

33、e.updatehouse(houseid,sum) messagebox.show(更新仓库库存失败!); else messagebox.show(处理失败!); catch (exception ex) messagebox.show(ex.message.tostring(); #endregion4.1.9 进货管理#region 将进货信息添加到仓库中 private void button1_click(object sender, eventargs e) try string price = textboxprice.text.tostring(); int amount =

34、 convert.toint32(textboxamount.text.trim().tostring(); datetime date = convert.todatetime(datetimepickerdate.text.trim().tostring(); int house = convert.toint32(comboboxhouse.text.trim().tostring(); string carname = textboxcartype.text.trim().tostring(); /根据厂商名搜索厂商代号 string supplyname = comboboxsnam

35、e.text.trim().tostring(); int supplyid = sp.selectbyname(supplyname); int caidd = car.selectbycartype(carname, supplyid); int houseid = warehouse.selectbycartype(caidd); if (warehouse.updateamount2(house, amount) messagebox.show(更新仓库成功!); catch messagebox.show(已超出仓库容量!); #endregion#region 添加进货(添加汽车信

36、息、将汽车数量存入库存中) private void btnadd_click(object sender, eventargs e) string price = textboxprice.text.tostring(); int amount = convert.toint32(textboxamount.text.trim().tostring(); datetime date = convert.todatetime(datetimepickerdate.text.trim().tostring(); int house = convert.toint32(comboboxhouse.

37、text.trim().tostring(); string carname = textboxcartype.text.trim().tostring(); /根据厂商名搜索厂商代号 string supplyname = comboboxsname.text.trim().tostring(); int supplyid = sp.selectbyname(supplyname); int caidd = car.selectbycartype(carname,supplyid); /将各个信息装入实体类stock中 model.stock stock=new carsale.model.

38、stock(carname,supplyid,house,price,amount,date);try / / 将进货信息插入stock表中 / if (stockdao.insert(stock) messagebox.show(添加进货成功!); / / 将进货信息中汽车信息插入到car表中 / same = false; read = sql.executereader(dbo.selectcar, commandtype.storedprocedure); while (read.read() if (readcar_name.tostring().trim() = carname)

39、& (convert.toint32(readsupply_id.tostring() = supplyid) /判断car表中是否已有该汽车型号 same = true; int car_amount = convert.toint32(readcar_amount.tostring().trim(); car_amount = car_amount + amount; model.car car1 = new carsale.model.car(carname, car_amount); if (!car.update(car1) messagebox.show(相同型号中添加数量时操作失

40、败!); read.close(); return; read.close(); if (!same) model.car car1 = new carsale.model.car(carname, price, amount, house, supplyid); if (!car.insert(car1) messagebox.show(添加汽车信息失败!); else messagebox.show(添加进货失败!); catch (exception ex) messagebox.show(ex.message.tostring(); #endregion4.1.10销售管理 #region 查询利润值 private void btnsee

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论