扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
你好,这个估计很少。理由如下:
成都创新互联公司专注于东平企业网站建设,成都响应式网站建设公司,商城网站开发。东平网站建设公司,为东平等地区提供建站服务。全流程定制网站开发,专业设计,全程项目跟踪,成都创新互联公司专业和态度为您提供的服务
1)这个用分难求,要用工程银子,因为这个项目多数个人没有,除非公司的东西,还得做这个项目的公司;
2)即使他公司有也不敢拿,违法且项目很大,部署很难;
3)即使以上都不考虑,个人为这个分数现开发,那么也很费神,要设计数据库。工作量不少。少,要一些人天工时。
你的不是调试的问题 是错 通过编译了 但是你想实现的没有 很多错误抛出了 。。。
Java程序:
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
* 汽车类
*/
class Car {
/**
* 汽车编号
*/
protected int id = 0;
/**
* 汽车款式
*/
protected String type = null;
/**
* 构造汽车对象
*/
public Car() {
}
/**
* 构造汽车对象
* @param id 汽车编号
* @param type 汽车款式
*/
public Car(int id, String type) {
this.id = id;
this.type = type;
}
/**
* 获得汽车编号
* @return 汽车编号
*/
public int getId() {
return this.id;
}
/**
* 获得汽车款式
* @return 汽车款式
*/
public String getType() {
return this.type;
}
}
/**
* 汽车销售人员类
*/
class Saler {
/**
* 姓名
*/
protected String name = null;
public ListCar cars = new ArrayListCar();
/**
* 构造销售汽车人员对象
*/
public Saler() {
}
/**
* 构造汽车销售人员对象
* @param name 姓名
*/
public Saler(String name) {
this.name = name;
}
/**
* 获得姓名
* @return 姓名
*/
public String getName() {
return this.name;
}
}
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
ListCar allCar = new ArrayListCar(); //待售汽车对象的集合
allCar.add(new Car(1001, "凯越"));
allCar.add(new Car(1002, "凯越"));
allCar.add(new Car(1003, "凯越"));
allCar.add(new Car(1004, "凯越"));
allCar.add(new Car(2001, "君威"));
allCar.add(new Car(2002, "君威"));
allCar.add(new Car(2003, "君威"));
allCar.add(new Car(2004, "君威"));
allCar.add(new Car(2005, "君威"));
Saler saler = new Saler("张三其");
int choice = 0;
int type; //销售车型
int num; //销售数量
while(true) {
System.out.println("请选择销售方式");
System.out.println("按车辆销售:\t1");
System.out.println("按车型销售:\t2");
System.out.println("查看销售情况:\t3");
System.out.println("退出:\t\t0");
System.out.print("您的选择:");
choice = scan.nextInt();
switch(choice) {
case 0: //退出系统
System.out.println("退出系统");
System.exit(0);
break;
case 1: //按车辆销售
for(Car car : allCar) {
if(! exists(saler.cars, car)) {
saler.cars.add(car);
System.out.printf("\t售出 %s 1 辆\n", car.getType());
break;
}
}
break;
case 2: //按车型销售
System.out.print("车型(凯越 0/君威 1):");
type = scan.nextInt();
System.out.print("销售数量:");
num = scan.nextInt();
int c = 0; //实际销售数量
for(Car car : allCar) {
if(c = num) {
break;
}
if(car.getType().equals(type == 0 ? "凯越" : "君威") ! exists(saler.cars, car)) {
saler.cars.add(car);
c++;
}
}
if(c num) {
System.out.printf("\t库存不足,实际售出 %s %d 辆\n", type == 0 ? "凯越" : "君威", c);
}
else {
System.out.printf("\t售出 %s %d 辆\n", type == 0 ? "凯越" : "君威", num);
}
break;
case 3: //查看销售情况
System.out.println("\t当前销售情况一览");
System.out.printf("\t%10s%10s\n", "汽车款式", "汽车编号");
for(Car car : saler.cars) {
System.out.printf("\t%10s%10d\n", car.getType(), car.getId());
}
System.out.println("---------------------------");
System.out.printf("\t小计:\t%d 辆\n", saler.cars.size());
break;
default:
break;
}
try {
System.in.read();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//判断car在cars中是否存在
public static boolean exists(ListCar cars, Car car) {
for(Car c : cars) {
if(c.getId() == car.getId()) {
return true;
}
}
return false;
}
}
运行测试:
请选择销售方式
按车辆销售: 1
按车型销售: 2
查看销售情况: 3
退出: 0
您的选择:1
售出 凯越 1 辆
请选择销售方式
按车辆销售: 1
按车型销售: 2
查看销售情况: 3
退出: 0
您的选择:2
车型(凯越 0/君威 1):0
销售数量:3
售出 凯越 3 辆
请选择销售方式
按车辆销售: 1
按车型销售: 2
查看销售情况: 3
退出: 0
您的选择:3
当前销售情况一览
汽车款式 汽车编号
凯越 1001
凯越 1002
凯越 1003
凯越 1004
---------------------------
小计: 4 辆
请选择销售方式
按车辆销售: 1
按车型销售: 2
查看销售情况: 3
退出: 0
您的选择:0
退出系统
package yaoshun.Thread;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextArea;
/*
* 多线程同步输出
*/
public class MultiThread extends JFrame {
private int ticket; // 计数变量
private JButton jButton;
private JLabel jLabel;
private JLabel jLabel1;
private JLabel jLabel2;
private JLabel jLabel3;
private JLabel jLabel4;
private JLabel jLabel5;
private JTextArea jTextArea1;
private JTextArea jTextArea2;
private JTextArea jTextArea3;
private JTextArea jTextArea4;
private JTextArea jTextArea5;
private Thread thread1;
private Thread thread2;
private Thread thread3;
private Thread thread4;
private Thread thread5;
// 构造器
public MultiThread() {
setName("火车票销售情况");
setLayout(null); // 使用绝对布局
setSize(680, 720);
setResizable(false); // 设置窗体大小不变
setLocationRelativeTo(null);// 设置窗体居中
jLabel = new JLabel("火车站售票大厅");
jLabel.setBounds(280, 20, 140, 30);
jLabel.setFont(new Font(getName(), Font.BOLD, 16)); // 设置字体大小
jLabel.setForeground(Color.BLUE); // 设置字体颜色
jLabel1 = new JLabel("售票窗1");
jLabel1.setBounds(72, 50, 80, 50);
jLabel1.setForeground(Color.red);
jLabel2 = new JLabel("售票窗2");
jLabel2.setBounds(192, 50, 80, 50);
jLabel2.setForeground(Color.red);
jLabel3 = new JLabel("售票窗3");
jLabel3.setBounds(312, 50, 80, 50);
jLabel3.setForeground(Color.red);
;
jLabel4 = new JLabel("售票窗4");
jLabel4.setBounds(432, 50, 80, 50);
jLabel4.setForeground(Color.red);
jLabel5 = new JLabel("售票窗5");
jLabel5.setBounds(552, 50, 80, 50);
jLabel5.setForeground(Color.red);
jTextArea1 = new JTextArea();
jTextArea1.setBounds(45, 100, 100, 500);
jTextArea1.setEditable(false); // 文本框不可编辑
jTextArea2 = new JTextArea();
jTextArea2.setBounds(165, 100, 100, 500);
jTextArea2.setEditable(false); // 文本框不可编辑
jTextArea3 = new JTextArea();
jTextArea3.setBounds(285, 100, 100, 500);
jTextArea3.setEditable(false); // 文本框不可编辑
jTextArea4 = new JTextArea();
jTextArea4.setBounds(405, 100, 100, 500);
jTextArea4.setEditable(false); // 文本框不可编辑
jTextArea5 = new JTextArea();
jTextArea5.setBounds(525, 100, 100, 500);
jTextArea5.setEditable(false); // 文本框不可编辑
jButton = new JButton("开始售票");
jButton.setBounds(270, 625, 140, 40);
jButton.setFont(new Font(getName(), Font.BOLD, 16));// 设置字体
jButton.setForeground(Color.blue);
thread1 = new Thread(new MyThread1());
thread2 = new Thread(new MyThread2());
thread3 = new Thread(new MyThread3());
thread4 = new Thread(new MyThread4());
thread5 = new Thread(new MyThread5());
// 为按钮添加监听器
jButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
thread1.start();
thread2.start();
thread3.start();
thread4.start();
thread5.start();
}
});
add(jLabel);
add(jLabel1);
add(jLabel2);
add(jLabel3);
add(jLabel4);
add(jLabel5);
add(jTextArea1);
add(jTextArea2);
add(jTextArea3);
add(jTextArea4);
add(jTextArea5);
add(jButton);
setVisible(true); // 设置窗体显示
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 设置窗体关闭
}
class MyThread1 extends Thread {
// 重写run方法
public synchronized void run() {
while (ticket 100) {
++ticket;
jTextArea1.append("第" + ticket + "张票已售出" + "\n");
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
}
class MyThread2 extends Thread {
// 重写run方法
public synchronized void run() {
while (ticket 100) {
++ticket;
jTextArea2.append("第" + ticket + "张票已售出" + "\n");
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
}
class MyThread3 extends Thread {
// 重写run方法
public synchronized void run() {
while (ticket 100) {
++ticket;
jTextArea3.append("第" + ticket + "张票已售出" + "\n");
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
}
class MyThread4 extends Thread {
// 重写run方法
public synchronized void run() {
while (ticket 100) {
++ticket;
jTextArea4.append("第" + ticket + "张票已售出" + "\n");
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
}
class MyThread5 extends Thread {
// 重写run方法
public synchronized void run() {
while (ticket 100) {
++ticket;
jTextArea5.append("第" + ticket + "张票已售出" + "\n");
try {
Thread.sleep(200);
} catch (InterruptedException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
}
public static void main(String[] args) {
MultiThread multiThread = new MultiThread();
}
}
自己改一下 包名吧,这个题目是很多学校在多线程都用来的基础练习题。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流