版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1. 需求分析随若近年来我国经济的发展,国民生活水平的提高,国内的轿车产业开始迅猛发展,人 民群众对于轿车的需求也是日益增多,也因此产生了很多轿车销售公司。在这些轿年销售公司里,由于业务繁忙,往往需要处理各种&牌型号轿车的销售查询工 作,销售员的管理工作等等。这些工作如果光靠人工来实现,工作量就很人,而且容易出现 错误,造成管理上的混乱。因此,制作-套轿车销售管理系统对于公司管理能够提髙轿车销 售公司的管理水平、工作效率、服务质量、降低销售成本,垠终提高公司的市场竞争力。1.1编写目的轿车销售管理系统可以有效的管理轿车信息、员工信息和客户信息。它主要进行轿车销 您:公司的管理工作。木系统以MY
2、 SQL为后台数据库,利用SQL对数据库进行管理和操 作。本系统将以轿车销售公司的管理为背景,介绍如何以JAVA为前台开发工具,HYSQL为 后台数据库管理系工具开发数据库应川系统。木系统具有很强的使用性,用户只要根据实际 的使用情况稍加修改,就可以把它应用到实际工作屮。1.1.1数据库应用系统的开发涉及如下内容: 系统功能设计; 数据库设计; 界面设计 程序代码设计1.1.2项目内容:开发个轿车销侣管理系统对于该项目,主要注意以下两个方面: 轿车销竹公司的销售员管理、轿车信息管理和客户信息管理 侨车销售系统中涉及那些数据对象,各对象Z间以及对象内部的关系如何?如 何保存个数据对彖的相关数据,
3、以便轿车销臂管理系统进行数据处理。1.2分析1. 2. 1轿车销售系统的主要功能冇:(1) 系统用户管理功能。用户根据姓名和密码登录系统。登录用户分为两个等级:普 通用户和管理员用户。普通川户只査看轿车信息、客户信息、员工信息等功能: 管理员用户(admin)除了以上功能外,同时还有添加川户、修改用户密码和删除 用户的功能。(2)轿车信息管理功能。录入所销售的轿乍编号、型号、品牌、价格、保修期等信息, 同时支持对轿车信息的添加、修改、删除和查询功能。(3)客户信息管理功能。录入购买轿车的客户姓名、性别、年龄、联系方式、所购车 型号、购年价格筹信息,同时还支持亏客户信息的添加、修改、删除和查询功
4、能。(4)员工信息管理功能。录入员工的员工号、姓名、性别等信息,同时支持对员工信 息的添加、修改、删除和查询功能。1.2.2数据库信息经过实际的需求分析,确定盅耍包含以卜-数据阵信息:【轿车库存信息:】轿车编号(标识列),轿乍型号,轿车名称,轿车品牌,轿车销量【员工信息:】员工编号,姓名,性别,年龄,电话,业绩【客户信息:】客户编号,客户姓名,客户性别,客户年龄,客户电话【轿车销伟信息:J序号(标识列),轿车型号,销售员编号,客户编号,销售日期2 总体设计2.1系统流程图J |护、于J根据系统的功能要求,采用模块化的方法,设计图书借阅系统的控制流程图如图:2. 2 E-R模型用E-R模型描述系
5、统中的实体集与实体集之间的关系,日的是以E-R图为工具,设计关 系型的数据库,即确定应川系统所使川的数据库应包含哪些表,每个农的结构是怎么样的。23关系描述的设计根据以上各E-R图,经过转换,可以导出各个关系。这些实体涉及的数据项育:系统用户:(用户名,密码,用户等级)管理:(用户等级,类型描述)轿车信息:(轿车编号,轿车型号,轿车品牌,轿:乍销量)客户信息:(客户编号,客户姓名,客户性别,客户年龄,客户电话)员工信息:(员工编号,员工姓名,员工性别,员工年龄,员工电话,员工业绩)轿车销售信息:(销售记录编号,轿车型号,销售员编号,客户编号,销售日期)2.4数据库物理设计2.4. 1创建数据库
6、在创建数据库表Z前,首先要创建一个数据库,本系统以MY SQL为后台数据库。用户可 以在企业管理器中创建数据库,也可以在HY SQL执行SQL语句。需耍注意的是,在设计数 撫阵结构时,通常潘要考虑主文件,从文件和口志文件的存储位置和大小。文件人小可以根 据数据库的用途,用户数量和存储数据等因素综合考虑。一般初始大小不宜设置过犬,以免 浪费存储空间。而文件般大尺寸需要设置大些,以保证冇足够的存储空间。日志文件则不需 要太多的空间。2.4. 2轿车销售管理系统库表结构设计该系统设计了五个数据库表:用户信息表Users、用户类型表CserType.轿车信息表Car、 客户信息表Customer.员工
7、信息表Staff。具体结构如下图所示:Users 农字段名称标识名称数据类型空否字段说明User name用户名Varchar(10)n i 主键User pwd密码Varchar(20)NUser type用户等级smallintN限制用户权限UserType 表字段名称标识名称数据类型空否字段说明User type用户等级Smell lintN限制用户权限Type discription类型描述Varchar(50)NCar表字段名称标识名称数据类型空否字段说明Car ip轿车编号IntN自增,主键Car namc轿车型号Varchar (20)NCar brand轿车品牌Varchar(
8、10)NCar cout轿车销量IntNCustomer 衷字段名称标识名称数据类型空否字段说明Customerd客户编号TntN自增,主键Customer name客户姓名Varchar (10)NCustomer scx客户性别Varchar(2)NCustomer age客户年龄IntYCustomer tel客户电话Varchar (10)YStaff表字段名称标识名称数据类型空否字段说明Staff id员丁编号IntN自增,主键Staff name员工姓名Varchar (10)NStaff sexMM员工性别Varchar (2)NStaff tel员工电话Varchar (10)
9、YStaff age员工年龄IntY2.4.3用SQL建立各个表(1) 建立Users表:CREATE TABLE dbo.Users(User_name VARCHAR(IO) Primary KeyUser pwd VARCHAR(20) NOT NULLUser.type SMALLINT NOT NULL)(2) 建立 UserType 表CREATE TABLE dbo. UserType(User type SMALLTNT Primary KeyType discription VARCIIAR(IOO) NOT NULL )(3) 建立Car表CREATE TABLE dbo.
10、 Car(Car_id TNT Primary KeyCar_name VARCHAR(20) NOT NULLCar.brand VARVHAR(20) NOT NULLCar_cout INT)(4) 建 t Customer 表CREATE TABLE dbo. Customer(Customcr_id INT Primary KeyCustomer name VARCILAR(IO) NOT NULLCustomer_sox V/RCHAR (2) NULLCustomer age TNT NULLCustomer_tel VARCIIAR(IO) NULL(5) 建立Staff表CR
11、EATE TABLE dbo. staff(Staffd INT Primary KeyStaff name VARCHAR(10) NOT NULLStaff.sex VARCHAR (2) NOT NULLStaff.agc INT NULLStaff.tel VARCHAR (10) NULL)3 详细设计3. 1销售界面的设计及功能描述(1)轿车管理系统卅动时的界面点击运行按钮,出现如图所示的启动界虬 进行轿乍销侑处理(2)车辆信息员工信息 乔户信息 销售记录查询界面车is信息讪建车斛 占 OKB/S 0.2KB/S 口t fa S S3 *修建员工丨斛建客户済空竝制冷浙建術更记录ID
12、品牌型号莒宦12 12 12 ID名宇 性别年卒业绩123 ew s 45 s23 23 $ 23 S234 sdf 232 24 232 er2 2354 34 34 34 sadf sfd f 23 fsdfs43 123 fed 234 fsdID名手性别年龄12 12 12 12消隹记录Q汽主ID消吿负ID容户ID BMR1212121211212121221212121212121212312212121214qwer e 4345 234 gd 2342 werweq点击界面的车辆信息、员工信息、客户信息、销售记录查看按饥,运行出对应数据库中已存的车辆.员工、客户以及销售记录信息(
13、3)新建车辆界而点击界而的新趣车辆按钮,填写车辆的有关信息,并对应的存储到相应的数据库中(4)新建员工界而点击界面的新建员丁按钮,埴写员工的有关信息,并对应的存储到相应的数据库中(5)新建客户界面点击界面的新建客户按钮,填写客户的肓关信息,并对应的存储到相应的数据库屮(6)新建销售记录界面点击界面的新建销售记录按钮,填写销售记录的有关信息,并对应的存储到相应的数据库中(7)删除信息界面点击界面的删除信息按钮,填写车辆、客户.员工、销售记录表的数据编号,以及对应的表名,删除表中对应的信息(8)清空界面点击界血的睛空控制台按钮,清除在界血中显示的所仃销售信息3. 2源代码(1) Car java
14、import javaawt.Container;import java awt. ElowLayout;import java awt. event ActionEvent;import java awt. event ActionListener; import java.sql.Connection;import javasql. SQLException;import java sql. Statement;import javax.swing.JButton;import javax.swingJDialog;import javax swing JLabel;import java
15、x swingJTcxtFiold;class Car extends JDialog implements ActionListener/*/private static final long serialVersionUID = -2567952878290133643L;Containcr context;JTextEield id;JTextField brand;JTextField type;JButton ok,cancle;JLabel 1brand, ltype, lid;Car()context=this gelContentPaneO; context sctLayouI
16、 (new Flowliyout (); thi s. setSize (500, 90);lid=ncw J Labe (】【):); lbrand=new JLabel 品牌:); ltypc=new JLabel (型号:”);id=new JTextField(lO);brand=new JTextField(10);type=new JTextFicld(lO);lid.setLabelFor(id);1 brand setlibelFor (brand);lr*yp e seLLabel For aype)- okunew JBUr+tonus代) cancoHncw JBu 二
17、on (、匸S5 - comcxt add (lid) - context, add (id)- context. add(lbrand) -conLCXL add (brand)- context, add (1 type) -context add (type)- context add(ok)八 coiUexL add(czmcle)- ok addActionListcncr(this)- cancle addiction匚sCener(this)- this packO -his seLvisiblearue)-public void acl ionperonncd(AC1. ion
18、Evcnt c)亠 object sle geLsourceo - if (SHOk)sqing id H id g2TCXL(?r String type H (ypegetText()【String brand H brand. ger*Text (;Connection c H new Connections () connect? statement stmt H c c l,eatestatemenr (rString sql n einsert into cars?L brand type) value (9Q+lid+Q9 * 、N+ brand+*9 Q+r*ype+QSyst
19、em out print(sql);stmt execute(sql); catch (SQLException el) / TODO Auto-generated catch blockcl. printStackTraceO ;/需要在此添加过滤代码过滤非法输入/manage insortclass(Integer parselnt(id getTcxt(), name gelText();this sotVisible(false); else if(s=cancle)this setVisible(false);/ publ ic static void ni8in(Stringf a
20、rgs) / new Car ();/ (2) Client, javaimport javaawtConiaincr;import java awt ElowLayout;import java swt. event ActionEvcnt;import java owt. event /XctionListcner;import java sql. Connection;import java sql. SQLException;import javasqStatement;import javax.swingJButton; import javax.swing.JDialog;impo
21、rt javax.swingJLabel:import javax swing. JTcxtField;class Client extends JDialog implements ?ct ionListoner/*/private static final long serialVersionUID = -6547959361972952105L;Container context;JTextField id;JTextEield name;JTextField sex;JTextFieldage;JTextField cel 1;JButton ok,canclo;J Label I i
22、d, lname, lsex, I age, led I;Cl ient ()context this getContentPaneO;context setLayout (new Flowliyout ();th i s. setSi ze (500, 90);1id=ncw JLabol(ID:);lname=new JLabel(名称 lsex=new JLabel(性别:); lage=new JLabelC年龄 ledl=new JLabel C电话:);id=new JTcxtField(lO);name=new JTextFicld(lO);sex=new JTextField(
23、2);age=new JToxtFicld(3);cell=new JTextField(lO);lid.setLabeiFor(id); lname setLabelEor(name); lsex setLabeiFor(sex):lage setLabeiFor(age);led 1. setl.abelFor(cell);ok-new JButton C确定”); canclc=new JButton(,z取消”); context add(lid);context add (id);context add(lname);context add(name);context add(lsc
24、x);context add(sex);context add(lage);context add(age);context add(lcel1);context add (cell);context add (ok);context add(cancle);ok. addActionListoner (this);cancle addAc t i onL i stoner (this);this pack();this sctVisiblc(true);public void actionPerformed(Actionlivent e) Object s=e getSourceO :if(
25、s=ok)String id = id.gctTcxt ();String name 二 namegetText();String _sex = sexgetTcxl();String _age = agegelTcxl();Connection c = new Connections()connect();Statement stmt = c. createStatement. 0 :String sql = insert intoc1inet(id, name, sex, age)value( ”+_id+”,”+_ndme+”,* ”+_sex+,, ”+_age+);System. o
26、ut print(sql);stmt execute(sql); catch (SQLException el)(/ TODO Auto-generated catch block el. printStackTraceO ;this.setVisible(false);/ (Integer, parse I nt (id. getTcxt (), name. gctText ();else i f (scanclc)this setVisible(false);/ public static void main(String args) / new ClientO ;/ (3) Connec
27、tionsjava import javasql. Connection; import java sql. DriverManager;public class Connections public Connection connect()Connection connection = null:try Class forName (com mysq 1. jdbc Driver);String url = jdbc:mysq 1:/localhost:3306/car/z;String user = root;String password = root;password);conneel
28、 ion = DriverManagergetConnection(url, user, catch (Exception e) e. printStackTraceO ;/ TODO: handle exceptionreturn connection;(4) Del. java import javaswt.Container;import java awt FlowLayout;import java awt event. ActionEvent;import java awt event ActionListoner;import java. sql. Connection;impor
29、t javasql. ResultSet;import java sql. SQLException;javax swingJButton;import java sql. Statement;import import javax.swing.JDialog;import javax.swingJI,3bcl;import javax swing. JTextField;class del extends JDialog implements ActionListener/*/private static final long serialVersionUID = 3712830203472
30、566152L:Container context;JTextField id;JTextField target;JButton ok,cancle;JLabel lid,1 target;delOcontext-this getContentPancO ; context setLayout (new Elowliyout (); this. setSize(500, 90);lid=new JLabel(ID:);1 target=new JLabel(*所在的表id-new JTcxtEicld(lO);target-new JTextField(LO): lid. set Label
31、 For (id);1 target setLabclFor(target);ok=new JButton C确定”);cancic=new JButton 消);context add(lid);context add(id);context add(1 target);context add(target);context add(cancle);ok. add.Act i onLi stoner (this);cancle addAct ionListener(thi s):this pack();this. setVisible(true);public void actionPerf
32、ormed(ActionEvent c) Object s-c getSourceO ;if(s=ok)try Connection c = new Connections()connect();Statement stmt = c. createStatement();String sqldelete from +target. getText 0+whereid=,+id getText () +stmt execute(sql) catch (SQLExccption c2) / TODO Auto-generated catch block c2 prirUSlackTraccO ;t
33、his.setVisible(falsc); else if(s=cancle)this.setVisible(false);(5) Mainframejava import java .awl. Container;import java awt FlowLayout;import java awt event ActionEvent;import java awt event ActionListoner;import javasql*;import javax.swing*;public class Mainframe extends JFrame implements ActionLi
34、stencr /*/private static final long scrialVersionUID 二-3254015039949174992L;public static void main(String agrv)new Mainframe 0;private Container cpancl;JTextAres text;JButton bl, b2t b3, b4, b5, b6, b7, b& b9, blO;Mai n frame ()cpanel=this gctContentPane0 ;cpancl setliyout (new FlowLayout ();this.s
35、etSize(720, 500);text=new JTextArea(控制台输出:+rT, 20, 55);JScrollPane scroll=new JScrolIPane(text);/text.add (scrol1);bl=new JButtonC车辆信息);b2=new JButton C员工信息”);b3=new JButtonC客户信息); bl0=new JButton C销售记录査看);b4-new JButton (z,新建乍辆”);b5=new JButton C新建员工);b6=new JButton (新建客户);b9=new JButton C新建销售记录);b
36、7=new JButton (,z删除信息);b8=new JButton(z,清空控制台”); cpanel. add (bl);cpanel. add(b2);cpane 1. add (b3); cpanel. add(b10); cpanc1. add(b4);cpane1 add(b5):cpane1 add(b6);cpanel, add(b9):cpano 1 add (b7);cpane1 add(b8);cpane1 add(text); this sctVisiblc(true);bl.addActionLislener(this); b2.addAct i onLi st
37、enor(this); b3.addActionListener(this); blO.addActionListener(this); b4.addActionListener(this); b5 addActionListener(this); b6. addAct.ionListener (thi s);b9 addActionLislener(this);b7 addAct i onL i stener (this);b8 addActionListener (this);public void actionPerformed(Actionlivent e) Object s=e ge
38、tSourceO ;if(s=bl)Connection c = new Connections().connect ();Statemenl stmt = c.createStatement();String sql = select * from cars;ResultSet r-nul1;try r= stmt. exccutcQuery (sql); catch (SQLException cl) cl printStackTraceO ;text, append CID 品牌型号销量+n);for (int i = 0;next () ; i+)text append(r. gotS
39、tring(1);text append C“);text append(r getString(2);text append(“);text append(r getString(3);text append Cz”);text append(Siring valueOf(r getlnt(4); text append (/zn); catch (SQLException o2) / TODO Auto-generated catch blocko2 pr intStsckTrsceO ;/打印车辆信息else if(sb2)Connection c = new Connections()
40、connect0;Statement stmt = c.crcateStatement 0 :String sql = select * from staff;ResultSet r=null;try r- stmt. cxccutcQuery (sql); catch (SQLException el) / TODO Auto-generated catch blockcl printStackTraceO ;text, append(*1D名字性別年龄业绩+n);for(int i = 0; r. next 0 : i+)text append(r getString(l);text ap
41、pend(z,”);text append(r gctString(2);text append“);text append(r gctString(3);text append (/z”);text,append (String.valueOf(r. getlnt(4);text append (/z”);text dppend(r. gctString(3);text append (?,n); catch (SQLExcoption c2) / TODO Auto-generated catch blockc2. printStackTraceO ;/打印员工信息else i f (sb
42、3)try Connection c = new Connections()connect();Statement stmt = c.createStatemont();String sql = select * from clinet;ResultSet r=null;try r= stint executcQuery (sql); catch (SQLException el) / TODO Auto-generated catch block el printStackTraccO ;V VV vJ vx wl I I text.appencKD 名字 性别 年龄+n); for(int
43、 i = 0; r. next (); i+)text append(r getString(l);text append(“);text append(r getString(2);text append“);text append(r getString(3);text append“);text append(String vnlueOf(r getInt(4);text append Cn);catch (SQLException e2) / TODO Auto-generatcd catch blocke2 printStackTraceO ;else if(s=blO)Connec
44、tion c = new Connections()connect():Statement stmt = c. createStatement. 0 :String sql = select * from orders;RcsultSet r二null;try r= stmt oxecutoQuery (sql); catch (SQLException el) / TODO Auto-generatcd catch blockcl printStackTraceO ;text, appendf 销售记录TD 汽车TD销售员TD客户TD 日期for(int i = 0; r. next ();
45、 i卄)text append(String. valucOf(r. getlnt(1);text append(”);text.append (String.valueOf(r. getlnt(2);text append (z,);text, append(String. valueOf(r. getlnt(3); text append (/z”);text, append(String. valueOf(r, getlnt(4); text append”);text, append (St ring, valueOf (r. get I nt (5); text append Cz
46、”);text appendn); catch (SQLException e2) / TODO ?uto-generated catch blockc2 printStackTraceO ;else i f (s-b4)打印客户信息new Car ();else if(s=b5) new Staff ();else if(s=b6)new Client ();else if(sb7)new del ();else if (s=b9)new Order();else if(s=b8)text setText(null);(6) Order, javaimport javanwt.Contain
47、er;import java awt. FlowLayout;import java awt event /ctionEvent; import java owt. event ActionListenor;import java sql. Connection;import java sql. SQLExccption;import javasql. Statement;import javax.swing.JButton;import javax.swingJDialog;import javax.swing.JLabel;import javax swingJTextEield;clas
48、s Order extends JDialog implements AclionListener*/private static final long serialVersionllH) = -2567952878290133643L;Containcr context;JTextEield id;JTcxtField brand;JTcxtEield type;JTcxtField date;JButton ok,cancle;JLabel 1brand, ltype, lid, ldate;Order ()contcxt=this getContcntPanoO; context set
49、Layout (new Flowixjyout (); this. setSize(500, 90);lid 二 new J Label C 汽车 ID:);1 brand=new JLabel C 销售人员 ID:); ltype=new JLabelC客户 ID:); ldate=new JLabel C日期:);id=new JTextField(lO); brand=new JTextField(lO); type=new JTextField(lO); dale二new JTextField(lO);1 id sctLabelFor(id);1 brand sell-abel For
50、 (brand)I t ype setLabelFor (type);ldate. setLabelFor (date);ok=new JButton C确定”); cancie=new JButton (*取消”);context add(lid):context add (id);context add(Ibrand);context add(brand);context add(1type);context add(type);context add(ldate):context add(date);context add(cancle);ok. add.Act i onLi stone
51、r (this);cancle addAct ionListener(thi s): this pack();this. setVisible(true);public void actionPerformed(ActionEvent e) Object s-c getSourceO ;if(s=ok)try String _id = id.getText():String _type = type getText 0;String brand = brandgetText 0:String date = dalegetText();Corine ct ion c = new Connect
52、ions () con nect();Statement stmt = c. createStatemcnt():/String sql = insert into order (car_id, sale_id, con_id, date)value (zz+_id+/yt +_breind+歼,彤+_typc+胪,+_date);String sql = * insert into orders (car_id,sale_id, con_id, dates) valueC+_id+,+_brand+,+_type+, +_date*):;System out print(sql);st nit execute (sql); catch (SQLExccption cl) / TODO Auto-generated catch blockel. printStackTraceO ;需嘤在此添加过滤代码过滤非法输入/manage. insertclass(Integer parselnt (id getText(),namc. getText ();this-setVisible(false);else if(scanc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年人工智能研发项目融资说明(6篇)
- 远离网络陷阱健康成长导航小学主题班会课件
- 采购行业成本管控考核表
- 教案9 自然语言处理应用
- 新材料研发合作信函5篇范文
- 客户投诉处理反馈函宠物行业客户投诉处理场景(3篇)范文
- 2026年智能家居产品用户体验报告提交通知7篇范本
- 井下综采维修钳工(机电)岗位工作技术标准试题库带答案
- 远离校园暴力构建和平环境六年级主题班会课件
- 干旱影响粮食产量紧急应对通知(6篇)
- 2026湖南衡阳市衡东县第二批事业单位公开选调工作人员88人笔试备考题库及答案详解
- 2026湖南常德市鼎城区部分事业单位公开招聘高层次人才11人笔试备考试题及答案详解
- 《DGTJ082467-2025超低能耗建筑设计标准居住建筑》
- 陕西延长石油集团有限责任公司 招聘专用笔试题库(历年真题+完整答案详解)
- 手术医师人员档案
- 小学生班级管理培训课件
- 2025年重庆沙坪坝区西部重庆科学城沙兴实业发展集团有限公司招聘笔试参考题库附带答案详解
- 2025陕西延长石油(集团)有限责任公司招聘(1881人)笔试备考题库及答案解析
- 高顿财务培训
- DL∕T 5362-2018 水工沥青混凝土试验规程
- 厂房钢结构施工方案样本
评论
0/150
提交评论