카테고리 없음
교통과태료 프로그램(Java)
무한경쟁시대
2021. 11. 12. 23:05
[Main] 클래스
import jun.view.Nav;
public class Main {
public static void main(String[] args) {
Nav run = new Nav();
}
}
[SpeedMeasuringDevice] 클래스
public class SpeedMeasuringDevice {
private String car;
private String carNum;
private int speed;
private String date;
public SpeedMeasuringDevice() {}
public SpeedMeasuringDevice(String car, String carNum, int speed, String date) {
this.car = car;
this.carNum = carNum;
this.speed = speed;
this.date = date;
}
public String getCar() {
return car;
}
public String getCarNum() {
return carNum;
}
public int getSpeed() {
return speed;
}
public String getDate() {
return date;
}
public void setCar(String car) {
this.car = car;
}
public void setCarNum(String carNum) {
this.carNum = carNum;
}
public void setSpeed(int speed) {
this.speed = speed;
}
public void setDate(String date) {
this.date = date;
}
public String inform() {
return "차종류: " + car + " / 차번호: " + carNum + " / 속력: " + speed + " / 날짜: " + date;
}
@Override
public String toString() {
return "SpeedMeasuringDevice [car=" + car + ", carNum=" + carNum + ", speed=" + speed + ", date=" + date + "]";
}
}
[Nav] 클래스 - 콘솔에서 출력담당
import java.util.Scanner;
import com.example.controller.SmdController;
import com.example.domain.SpeedMeasuringDevice;
//TODO: 이부분은 view입니다.
public class Nav {
private SmdController smdCon = new SmdController();
private Scanner sc = new Scanner(System.in);
private int overspeed;
SpeedMeasuringDevice[] arrSpeed = smdCon.printSmd();
public Nav() {
int menuNum = 0;
do {
System.out.println("========== 교통위반 범칙금 확인하세요 ==========");
System.out.println("(1): 속도위반 확인하기 ");
System.out.println("(2): 범칙금/과태료 납입하기");
System.out.println("(3): 과태료 납입 내역보기");//직접해보세용~~
System.out.println("(9): 프로그램 종료");
System.out.print("메뉴 번호: ");
menuNum = sc.nextInt();
switch(menuNum) {
case 1:
inputData(1);
break;
case 2:
inputData(2);
break;
case 3:
inputData(3);
break;
case 9:
inputData(9);
return;
default: System.out.println("잘못된 번호입니다. 다시 입력하세요.");
}
}while(menuNum != 9);
}
//size length length()
private void inputData(int mainNum) {
switch(mainNum) {
case 1:
System.out.print("차번호 입력: ");
String carNumIn = sc.next();
for(int i = 0; i<arrSpeed.length; i++) {
if(arrSpeed[i].getCarNum().equals(carNumIn)) {
if(arrSpeed[i].getSpeed() > SmdController.LimitedSpeed) {
System.out.println("과속위반을 하셨습니다. " + arrSpeed[i].inform());
overspeed = arrSpeed[i].getSpeed() - SmdController.LimitedSpeed;
System.out.println(overspeed + "초과하였습니다.");
}
return;
}else {
System.out.println("일치하는 차번호가 존재하지 않습니다.");
return;
}
}
break;
case 2:
System.out.print("차번호 입력: ");
carNumIn = sc.next();
for(int i = 0; i<arrSpeed.length; i++) {
if(arrSpeed[i].getCarNum().equals(carNumIn)) {
if(arrSpeed[i].getSpeed() > SmdController.LimitedSpeed) {
System.out.println("과속위반을 하셨습니다. " + arrSpeed[i].inform());
this.overspeed = arrSpeed[i].getSpeed() - SmdController.LimitedSpeed;
System.out.println(overspeed + "초과하였습니다.");
if(overspeed > 0) {
if(overspeed < 20) {
System.out.println("납입하실 교통과태료는 30,000");
}else if(overspeed>=20) {
System.out.println("납입하실 교통과태료는 60,000");
}
}
}
return;
}else {
System.out.println("일치하는 차번호가 존재하지 않습니다.");
return;
}
}
break;
case 9:
System.out.println("프로그램을 종료합니다.");
return;
default: System.out.println("잘못입력하셨습니다.");
}
}
}
[SmdController] 클래스
import com.example.domain.SpeedMeasuringDevice;
//기능을 구현하는 곳
public class SmdController {
public static final int LimitedSpeed = 100;//미리 메모리에 준비시키는?
private SpeedMeasuringDevice [] smdList = new SpeedMeasuringDevice[999];
public SmdController() {
smdList[0] = new SpeedMeasuringDevice("현대차", "13러1920",150,"2021/03/22");
smdList[1] = new SpeedMeasuringDevice("BMW", "02가1920",120,"2021/06/21");
smdList[2] = new SpeedMeasuringDevice("Audi", "16다1920",150,"2021/03/29");
smdList[3] = new SpeedMeasuringDevice("Benz", "13하1920",160,"2021/06/21");
smdList[4] = new SpeedMeasuringDevice("Ford", "13러1920",150,"2021/03/23");
}
public SpeedMeasuringDevice[] printSmd() {
return smdList; //배열 전체를 들고온다?
}
}