利用面向物件實現簡單的控制檯課程管理系統
阿新 • • 發佈:2018-11-10
- 本程式主要分為三部分,資料層,控制層和顯示層
- 程式中需要用到的東西:陣列,Scanner類,java中的多型等等
- 程式包括6個java檔案,Clinte,Course,Dao,Menu,Person,Student,Teacher
- Clinte是情景類,Course是課程類,Dao是資料庫,用於儲存資料,Menu是控制顯示類,Student是學生類,Teacher是教師類
package com.pf.student2;
import java.util.Scanner;
public class Clinte {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Teacher teacher=new Teacher();//建立教師物件
Student student=new Student();//建立學生物件
Dao dao=new Dao();//建立一個數據庫
Menu menu=new Menu();//初始化選單
while (true) {
System.out.println("-------------------------------------------" );
System.out.println(" 歡迎來到學生管理系統");
System.out.println("請選擇角色:");
System.out.println("1、老師");
System.out.println("2、學生");
System.out.println("3、退出");
switch (scanner.nextInt()) {
case 1:
teacher.addDao(dao);
menu.menu(teacher);
break ;
case 2:
student.addDao(dao);
menu.menu(student);
break;
case 3:
return;
default:
System.out.println("輸入選單錯誤!,請重新輸入選單號。");
break;
}
}
}
}
package com.pf.student2;
//課程類
public class Course {
public String name;
public int id;
public int time;
public Course(String name, int id, int time) {
super();
this.name = name;
this.id = id;
this.time = time;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getTime() {
return time;
}
public void setTime(int time) {
this.time = time;
}
}
package com.pf.student2;
public class Dao {
public Course storeCourse[]=new Course[100];//建立一個教師書庫
public Course studentCourse[]=new Course[10];//建立一個學生書庫
public int courseNumber=0;//記錄學生選了多少個課程
public int storeNumber=0;//記錄書庫了的圖書的數量
}
package com.pf.student2;
public class Menu {
public Person person;
public void menu(Person person){
person.menu();
}
}
package com.pf.student2;
public class Person {
public void add(Course course){
System.out.println("person的add方法");
}
public void delect(){
System.out.println("person的delect方法");
}
public void query(){
System.out.println("person的query方法");
}
public void menu(){
System.out.println("person選單");
}
public void addDao(Dao dao){
}
}
package com.pf.student2;
import java.util.Scanner;
public class Student extends Person {
Scanner scanner = new Scanner(System.in);
Dao dao;
@Override
public void add(Course course) {
System.out.println("student的add方法");
}
@Override
public void delect() {
System.out.println("student的delect方法");
}
@Override
public void query() {
if (dao.storeNumber != 0) {
System.out.println("-------------------------------------------");
System.out.println("課程編號\t\t課程名稱\t\t課程課時");
for (int i = 0; i < dao.storeNumber; i++) {
System.out.print(dao.storeCourse[i].getId() + "\t\t");
System.out.print(dao.storeCourse[i].getName() + "\t\t");
System.out.print(dao.storeCourse[i].getTime() + "\t\t");
System.out.println();
}
}else{
System.out.println("-------------------------------------------");
System.out.println("資料為空!");
}
}
public void queryPerson(){
if (dao.courseNumber != 0) {
System.out.println("-------------------------------------------");
System.out.println("課程編號\t\t課程名稱\t\t課程課時");
for (int i = 0; i < dao.courseNumber; i++) {
System.out.print(dao.studentCourse[i].getId() + "\t\t");
System.out.print(dao.studentCourse[i].getName() + "\t\t");
System.out.print(dao.studentCourse[i].getTime() + "\t\t");
System.out.println();
}
}else{
System.out.println("-------------------------------------------");
System.out.println("資料為空!");
}
}
@Override
public void menu() {
while (true) {
System.out.println("-------------------------------------------");
System.out.println("你選擇的是老師的角色 請選擇選單:");
System.out.println("1、查詢所有課程");
System.out.println("2、選擇相應課程");
System.out.println("3、我的選課");
System.out.println("4、退出角色");
switch (scanner.nextInt()) {
case 1:
query();
break;
case 2:
query();
System.out.println("請輸入相應課程的編號:");
int id=scanner.nextInt();
for(int i=0;i<dao.storeNumber;i++){
if(dao.storeCourse[i].getId()==id){
dao.studentCourse[dao.courseNumber]=dao.storeCourse[i];
dao.courseNumber++;
System.out.println("選課成功!");
break;
}
}
break;
case 3:
queryPerson();
break;
case 4:
return;
default:
System.out.println("輸入選單錯誤!,請重新輸入選單號。");
break;
}
}
}
// 新增書庫
@Override
public void addDao(Dao dao) {
this.dao = dao;
}
}
package com.pf.student2;
import java.util.Scanner;
public class Teacher extends Person {
Scanner scanner = new Scanner(System.in);
Dao dao;
@Override
public void add(Course course) {
dao.storeCourse[dao.storeNumber] = course;
dao.storeNumber++;
}
@Override
public void delect() {
query();
System.out.println("請輸入課程的編號:");
int id=scanner.nextInt();
int index=0;
for(int i=0;i<dao.storeNumber;i++){
if(dao.storeCourse[i].getId()==id){
index=i;
for(int j=index+1;j<dao.storeNumber;j++){
dao.storeCourse[j-1]=dao.storeCourse[j];
}
dao.storeNumber--;
break;
}
}
}
@Override
public void query() {
if (dao.storeNumber != 0) {
System.out.println("-------------------------------------------");
System.out.println("課程編號\t\t課程名稱\t\t課程課時");
for (int i = 0; i < dao.storeNumber; i++) {
System.out.print(dao.storeCourse[i].getId() + "\t\t");
System.out.print(dao.storeCourse[i].getName() + "\t\t");
System.out.print(dao.storeCourse[i].getTime() + "\t\t");
System.out.println();
}
}else{
System.out.println("-------------------------------------------");
System.out.println("資料為空!");
}
}
@Override
public void menu() {
while (true) {
System.out.println("-------------------------------------------");
System.out.println("你選擇的老師的角色 選擇選單:");
System.out.println("1、新增課程");
System.out.println("2、查詢所有課程");
System.out.println("3、刪除課程");
System.out.println("4、退出角色");
switch (scanner.nextInt()) {
case 1:
System.out.println("請輸入課程名稱:");
String name = scanner.next();
System.out.println("請輸入課程的課時:");
int time = scanner.nextInt();
Course course = new Course(name, dao.storeNumber + 1, time);
add(course);
System.out.println("課程新增完畢");
break;
case 2:
query();
break;
case 3:
delect();
System.out.println("課程刪除完畢");
break;
case 4:
return;
default:
System.out.println("輸入選單錯誤!,請重新輸入選單號。");
break;
}
}
}
// 新增書庫
@Override
public void addDao(Dao dao) {
this.dao = dao;
}
}