汽车销售管理系统

article/2025/6/23 2:44:51

文章目录

    • 汽车销售管理系统
    • **背景**
    • **环境**
    • **项目结构**
    • 项目详情
    • **数据库**
    • **DBConn.java**
    • **Login.java**
    • **Data.java**
    • **CircleProgressBar.java**
    • 运行截图

汽车销售管理系统

背景

Java基础课程设计

环境

  • 数据库:MySQL8.0
  • 开发环境:JDK1.8
  • 开发工具:MyEclipse

项目结构

在这里插入图片描述

项目详情

DAO层

  • GoodsDao.java
  • GoodsDaoImpl.java
  • PurchaseDao.java
  • PurchaseImpl.java
  • SalesDao.java
  • SalesDaoImpl.java
  • UserDao.java
  • UserDaoImpl.java
    DBConn层
  • DBConn.java
    JFrame层
  • CircleProgressBar.java
  • Data.java
  • goodsAdd.java
  • goodsDelete.java
  • goodsUpdate.java
  • HomePage.java
  • Login.java
  • MyFrame.java
  • Purchase.java
  • purchaseAdd.java
  • purchaseDelete.java
  • Sales.java
  • salesAdd.java
  • salesDelete.java
  • userMana.java
    MySQL层
  • Goods.java
  • Purchase.java
  • Sales.java
  • User.java

数据库

在这里插入图片描述

DBConn.java

数据库连接

package DBConn;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBConn
{//连接到数据库private static String driver;private static String url;private static String username;private static String password;static{	driver = "com.mysql.cj.jdbc.Driver";url = "jdbc:mysql://localhost:3306/salesMS?serverTimezone=UTC&useSSL=false";username = "root";password = "123456";}public static Connection open(){try {Class.forName(driver);return DriverManager.getConnection(url,username,password);} catch (Exception e) {e.printStackTrace();}return null;}public static void close(Connection conn){if(conn!=null)try {conn.close();} catch (SQLException e) {e.printStackTrace();}}
}

Login.java

登录界面

package JFrame;import java.awt.Checkbox;
import java.awt.CheckboxGroup;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;import DAO.UserDaoImpl;
import DBConn.DBConn;
import MySQL.User;public class Login extends JFrame implements ActionListener{private static final long serialVersionUID = -705511349178672604L;JLabel bg;JTextField t1,t2;CheckboxGroup type;Checkbox cb1,cb2;JButton b1;Connection conn;public Login(){ImageIcon bg1 = new ImageIcon(HomePage.class.getResource("userbg2.jpg"));ImageIcon bg2 = new ImageIcon(HomePage.class.getResource("signin.jpg"));bg = new JLabel(bg1);conn = DBConn.open();//e1 = new JLabel("用户名:");//e2 = new JLabel("密码:");t1 = new JTextField(10);t2 = new JTextField(10);t1.setText("");t2.setText("");type = new CheckboxGroup();cb1 = new Checkbox("user",true,type);cb2 = new Checkbox("manager",false,type);b1 = new JButton(bg2);//字体设置Font f = new Font("隶书",Font.BOLD,23);t1.setFont(f);t2.setFont(f);cb1.setFont(f);cb2.setFont(f);b1.setFont(f);//位置设置this.setLayout(null); // 绝对布局t1.setBounds(417, 243,226, 26);t2.setBounds(417, 276,226, 26);cb1.setBounds(420, 309,110,30); cb2.setBounds(535, 309,110,30);b1.setBounds(470, 340,97,48);bg.setBounds(0, 0, 1024, 512);//add(e1);  add(e2);add(t1);  add(t2);add(cb1);  add(cb2);add(b1);this.add(bg);//监听b1.addActionListener(this);//窗体设置this.setDefaultCloseOperation(DISPOSE_ON_CLOSE); //关闭窗口监听this.setBounds(200,100,1024,512);setTitle("用户登录");setVisible(true);//setResizable(false);}@Overridepublic void actionPerformed(ActionEvent e) {User u = new User();UserDaoImpl udi = new UserDaoImpl();try{u = udi.getUserById(t1.getText());if(t2.getText().equals(u.getPassword())){  //这里我没有加入判断用户和管理员的方法this.setVisible(false);   //隐藏登录窗口new MyFrame(u);}		}catch (Exception e1) {JOptionPane.showMessageDialog(null,"用户名或密码错误","Erro",JOptionPane.ERROR_MESSAGE);t1.requestFocus();}}public static void main(String[] args) {new Login();}
}

Data.java

数据管理界面

package JFrame;import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;import DAO.GoodsDaoImpl;
/** 数据管理界面*/
public class Data extends JPanel {private static final long serialVersionUID = -6038402709001455579L;JButton bt1,bt2,bt3,bt4,home;JLabel lb1,bg;JTextArea ta;public Data() {ImageIcon img1 = new ImageIcon(HomePage.class.getResource("add.png"));ImageIcon img2 = new ImageIcon(HomePage.class.getResource("modify.png"));ImageIcon img3 = new ImageIcon(HomePage.class.getResource("delete.png"));ImageIcon img4 = new ImageIcon(HomePage.class.getResource("update.png"));ImageIcon img5 = new ImageIcon(HomePage.class.getResource("1.png"));ImageIcon home1 = new ImageIcon(HomePage.class.getResource("back.png"));ImageIcon background = new ImageIcon(getClass().getResource("userbg.jpg"));bt1 = new JButton(img1);bt2 = new JButton(img2);bt3 = new JButton(img3);bt4 = new JButton(img4);lb1= new JLabel(img5);ta = new JTextArea();home = new JButton(home1);bg = new JLabel(background);this.setLayout(null); // 绝对布局/*bt1.setBorderPainted(false); // 隐藏边框bt2.setBorderPainted(false);bt3.setBorderPainted(false);*/home.setBounds(1, 1, 64, 64);bt1.setBounds(320, 50, 30, 30);bt2.setBounds(360, 50, 30, 30);bt3.setBounds(400, 50, 30, 30);bt4.setBounds(440, 50, 30, 30);lb1.setBounds(150, 90, 500,300);ta.setBounds(200, 220, 400, 400);bg.setBounds(0, 0, 800, 600);//字体设置Font font = new Font("幼圆", Font.BOLD, 20); // 字体ta.setForeground(Color.black);ta.setFont(font);ta.setText(queryAll());//显示所有商品信息ta.setBackground(null);//隐藏边框this.add(bt1);this.add(bt2);this.add(bt3);this.add(bt4);this.add(lb1);this.add(ta);this.add(home);this.add(bg);home.setOpaque(false);//按钮透明home.setBorderPainted(false); // 按钮无边框//按钮监听bt1.addActionListener(new B1());bt2.addActionListener(new B2());bt3.addActionListener(new B3());bt4.addActionListener(new B4());}public String queryAll(){GoodsDaoImpl gdi = new GoodsDaoImpl();String s;s = gdi.query();return s;}//内部类class B1 implements ActionListener{public void actionPerformed(ActionEvent e){new goodsAdd();}}class B2 implements ActionListener{public void actionPerformed(ActionEvent e){new goodsUpdate();}}class B3 implements ActionListener{public void actionPerformed(ActionEvent e){new goodsDelete();}}class B4 implements ActionListener{public void actionPerformed(ActionEvent e){ta.setText(queryAll());}}
}

CircleProgressBar.java

圆形进度条

package JFrame;import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;import javax.swing.JPanel;/*** 圆形进度条。*/
public class CircleProgressBar extends JPanel {private static final long serialVersionUID = 1L;private int minimumProgress;  //最小进度值。private int maximumProgress; //最大进度值。private int progress; //当前进度值。private Color backgroundColor; //背景颜色。private Color foregroundColor; //前景颜色。private Color digitalColor; //数字颜色。//构造函数△△ △public CircleProgressBar() {setMinimumProgress(0);setMaximumProgress(100);setProgress(0);setBackgroundColor(new Color(209, 206, 200));setForegroundColor(new Color(172, 168, 163));setDigitalColor(Color.BLACK);}/***△△ △  绘制圆形进度条。*/@Overridepublic void paint(Graphics g) {super.paint(g);Graphics2D graphics2d = (Graphics2D) g;// 开启抗锯齿graphics2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);int x = 0;int y = 0;int width = 0;int height = 0;int fontSize = 0;if (getWidth() >= getHeight()) {x = (getWidth() - getHeight()) / 2 + 25;y = 25;width = getHeight() - 50;height = getHeight() - 50;fontSize = getWidth() / 8;} else {x = 25;y = (getHeight() - getWidth()) / 2 + 25;width = getWidth() - 50;height = getWidth() - 50;fontSize = getHeight() / 8;}graphics2d.setStroke(new BasicStroke(20.0f));graphics2d.setColor(backgroundColor);graphics2d.drawArc(x, y, width, height, 0, 360);graphics2d.setColor(foregroundColor);graphics2d.drawArc(x, y, width, height, 90, -(int) (360 * ((progress * 1.0) / (getMaximumProgress() - getMinimumProgress()))));graphics2d.setFont(new Font("黑体", Font.BOLD, fontSize));FontMetrics fontMetrics = graphics2d.getFontMetrics();int digitalWidth = fontMetrics.stringWidth(progress + "%");int digitalAscent = fontMetrics.getAscent();graphics2d.setColor(digitalColor);graphics2d.drawString(progress + "%", getWidth() / 2 - digitalWidth / 2, getHeight() / 2 + digitalAscent / 2);}/*** 返回最小进度值。*/public int getMinimumProgress() {return minimumProgress;}/*** 设置最小进度值。*/public void setMinimumProgress(int minimumProgress) {if (minimumProgress <= getMaximumProgress()) {this.minimumProgress = minimumProgress;}}/*** 返回最大进度值。*/public int getMaximumProgress() {return maximumProgress;}/*** 设置最大进度值。*/public void setMaximumProgress(int maximumProgress) {if (maximumProgress >= getMinimumProgress()) {this.maximumProgress = maximumProgress;}}/*** 返回当前进度值。*/public int getProgress() {return progress;}/*** 设置当前进度值。*/public void setProgress(int progress) {if (progress >= getMinimumProgress() && progress <= getMaximumProgress()) {this.progress = progress;this.repaint();}}/*** 返回背景颜色。*/public Color getBackgroundColor() {return backgroundColor;}/*** 设置背景颜色。*/public void setBackgroundColor(Color backgroundColor) {this.backgroundColor = backgroundColor;this.repaint();}/*** 返回前景颜色。*/public Color getForegroundColor() {return foregroundColor;}/*** 设置前景颜色。*/public void setForegroundColor(Color foregroundColor) {this.foregroundColor = foregroundColor;this.repaint();}/*** 返回数字颜色。*/public Color getDigitalColor() {return digitalColor;}/*** 设置数字颜色。*/public void setDigitalColor(Color digitalColor) {this.digitalColor = digitalColor;this.repaint();}}

运行截图

登录界面
在这里插入图片描述user登录或者manager登录

主界面
在这里插入图片描述库存管理界面
在这里插入图片描述进货单
在这里插入图片描述销售单
在这里插入图片描述用户管理
在这里插入图片描述


http://chatgpt.dhexx.cn/article/Krj8G4FQ.shtml

相关文章

Java+SSM+Jsp+Mysql实现Web汽车信息管理系统

目录 一、系统介绍 1.开发环境 2.技术选型 3.系统功能 4.数据库文件 5.工程截图 二、系统展示 1.登录系统 2.系统首页 3.用户管理-添加用户 4.用户管理-查询用户 5.用户管理-修改用户 6.客户管理-添加客户 7.客户管理-查询客户 8.客户管理-修改客户 9.汽车管理-…

基于Java+Swing+Mysql实现汽车信息管理系统(含实训报告)

TOC 一、系统介绍 系统实现汽车入库&#xff0c;汽车出库&#xff0c;汽车查询&#xff0c;汽车信息修改和管理员登录等功能 二、功能展示 1.登陆 2.车辆信息 3.车辆入库 4.车辆出库 5.车辆查询 6、车辆信息修改 三、数据库 /*Navicat Premium Data TransferSource Serv…

汽车租赁管理系统的设计与实现(JSP+SqlServer在线租车网站)

目录 第一章 系统概述 1 1.1背景 1 1.2发展现状 1 第二章 需求分析 2 2.1 功能需求 2 2.2 数据需求 3 第三章 系统设计 5 3.1系统结构 5 3.2 数据库设计 5 3.2.1 ER图 6 3.2.2 逻辑结构 6 3.2.3 数据库物理结构 7 3.2.4 数据库实现 9 3.3用户控制系统 9 3.4模块设计 10 3.4.1 汽…

Qt下的综合练习—汽车信息管理系统(三)车辆出售功能的实现

项目介绍 这次练习的项目是汽车信息管理系统&#xff0c;项目参考Qt5开发及实例&#xff08;第3版&#xff09;中的汽车销售管理系统&#xff0c;写到博客上的目的是为了梳理自己的思路&#xff0c;所以代码很大程度上是参照书上的实例。 项目实现了车辆与销售的的管理&#xf…

Java课程设计——汽车信息租赁信息管理系统

一&#xff0e;功能需求 需求分析是发现需求&#xff0c;分析求精&#xff0c;逻辑建模&#xff0c;需求规约的过程&#xff0c;其的目的是为了全面获取软件需求&#xff0c;准确理解业务逻辑。车辆租赁系统具有以下基本功能。 用户管理&#xff1a; 包括用户的注册,登陆等&a…

Java GUI+SQL Server开发车辆管理系统

Java GUISQL Server开发车辆管理系统 一、程序功能设计 本项目为“车辆管理系统”&#xff0c;需包含一下功能&#xff1a; 1)车辆管理模块&#xff0c;增删查改车辆信息 2)租车管理模块&#xff0c;增删查改租车记录 3)换车管理模块&#xff0c;增删查改换车记录 4)修车…

Java+MySQL汽车租赁管理系统课程设计

wx供重浩&#xff1a;创享日记 对话框发送&#xff1a;汽车租赁系统 获取完整源码源文件视频演示文档资料等 一、 课程设计目的 1、综合运用Java程序设计课程和其他相关课程的理论和知识&#xff0c;掌握面向对象程序设计的一般方法、常用技术及技巧&#xff0c;树立良好的软件…

QT+SQL Server实现车辆管理系统 -简介

QTSQL Server 实现车辆管理系统 -简介 1.摘要2.界面展示及其功能介绍2.1 登录界面2.2 申请账户界面2.3 管理员界面2.3.1 添加车辆功能界面2.3.2 查询、删除、修改车辆信息功能界面2.3.3 添加司机功能界面2.3.4 查询、删除司机功能界面 2.4 普通用户界面2.4.1 查询车辆信息功能窗…

基于SpringBoot的汽车租赁管理系统

文末获取源码 一、项目技术栈 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SpringBoot 前端&#xff1a;采用HTML和Vue相结合开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA …

asp.net汽车出租信息管理系统VS开发sqlserver数据库web结构c#编程计算机网页项目

一、源码特点 ASP.NET 汽车出租信息管理系统是一套完善的web设计管理系统&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为vs2010&#xff0c;数据库为sqlserver2008&#xff0c;使用c# 语言开发 asp.net汽车出租信息管理系统…

数据库--汽车销售管理系统【课程设计】

目录 1.设计任务 1.1系统开发的背景 1.2系统开发的意义 1.3系统所应用的模块 2.需求分析 2.1功能分析 2.2数据流图 2.3数据字典 3.概念结构设计 4.逻辑结构设计 5.物理结构设计 5.1基本表 5.2视图 6.数据库实施 6.1 建立数据库表 6.2建立视图 7.数据库操作 目录 1.1系统开发的…

汽车租赁管理系统/汽车租赁网站/汽车管理系统

摘 要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们所认识&#xff0c;科学化的管理&#xff0c;使信息存…

C#windows车库信息管理系统

中文摘要 为了提高车辆信息的管理效率&#xff0c;本课题使用C#语言和SQL Server数据库系统开发了一个WinForm类型的车库管理系统对车辆信息进行高效管理&#xff0c;以提升管理质量。本系统包含管理员登录注册、管理员信息修改模块、添加车辆信息模块、删除车辆信息模块、查找…

asp.net 汽车信息管理系统VS编程sqlserver数据库c#开发

一、源码特点 asp.net 汽车信息管理系统 是一套完善的WEB设计管理系统&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 下载地址&#xff1a;下载 https://download.csdn.net/download/qq_41221322/21516579 视频播放&#xff1a; …

基于Java+SQL的汽车销售管理系统

文章目录 1.前言系统概要附1: 建表语句附2: 项目整体结构附3: view包结构附4: utils包结构 2.基本功能介绍&#xff1a;2.1 登陆与注册2.2 主界面2.3 修改密码2.4 相应的操作数据界面2.5 增、删、查、改示例2.5.1 添加数据2.5.2 删除数据2.5.3 修改数据2.5.4 查询数据 3.食用该…

python判断闰年(leap year)

python判断闰年(leap year) 闰年的计算方法是“四年一闰,百年不闰,四百年再闰”,这就造成了在一些特殊年份,会出现八年一闰的现象。例如1896年为闰年,四年之后的1900年并不是闰年,直到再过四年之后的1904年才是闰年。也就是一般情况下年份能被4整除即为闰年,而整百年的…

python判断闰年程序_python实现闰年

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 30个常用python实现:1、冒泡排序 ? 2、计算x的n次方的方法? 3、计算a*a + b*b + c*c + ...? 4、计算阶乘 n! ?5、列出当前目录下的所有文件和目录名? 6、…

python实现判断闰年

先来看条件&#xff1a; 如果我们要判断的年份是整百年&#xff0c;我们不能去除以4&#xff0c;而应该除以400。如1900年&#xff0c;因为这个年份是整百年&#xff0c;所以要除以400&#xff0c;1900/4004……300&#xff0c;不是400的倍数&#xff0c;所以1900年不是闰年&a…

python判断闰年

4.1 python 判断闰年 代码 yearint(input("请输入年份&#xff1a;")) if(year%40 and year%100 !0):print("是闰年&#xff01;") elif(year%4000):print("是闰年&#xff01;") else:print("不是闰年&#xff01;")运行结果截图&…

chatgpt赋能python:Python闰年的判断方法

Python闰年的判断方法 在Python编程中&#xff0c;经常需要判断某个年份是否是闰年。闰年是指能被4整除但不能被100整除的年份&#xff0c;或者能被400整除的年份。 闰年的判断方法在编程中非常常见&#xff0c;也非常简单。下面将介绍Python中三种实现闰年判断的方法。 方法…