寢室類如下:
創(chuàng)新互聯(lián)建站堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的鄢陵網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
import java.util.List;
import java.util.Objects;
public class Bedroom {
private String place;
private String manager;
private Integer bedCount;
private Integer tableCount;
private ListPerson persons;
private char sexFlag;//男:1 女:2
public String getPlace() {
return place;
}
public void setPlace(String place) {
this.place = place;
}
public String getManager() {
return manager;
}
public void setManager(String manager) {
this.manager = manager;
}
public Integer getBedCount() {
return bedCount;
}
public void setBedCount(Integer bedCount) {
this.bedCount = bedCount;
}
public Integer getTableCount() {
return tableCount;
}
public void setTableCount(Integer tableCount) {
this.tableCount = tableCount;
}
public ListPerson getPersons() {
return persons;
}
public void setPersons(ListPerson persons) {
this.persons = persons;
}
public char getSexFlag() {
return sexFlag;
}
public void setSexFlag(char sexFlag) {
this.sexFlag = sexFlag;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Bedroom bedroom = (Bedroom) o;
return sexFlag == bedroom.sexFlag
Objects.equals(place, bedroom.place)
Objects.equals(manager, bedroom.manager)
Objects.equals(bedCount, bedroom.bedCount)
Objects.equals(tableCount, bedroom.tableCount)
Objects.equals(persons, bedroom.persons);
}
@Override
public int hashCode() {
return Objects.hash(place, manager, bedCount, tableCount, persons, sexFlag);
}
@Override
public String toString() {
return "Bedroom{" +
"place='" + place + '\'' +
", manager='" + manager + '\'' +
", bedCount=" + bedCount +
", tableCount=" + tableCount +
", persons=" + persons +
", sexFlag=" + sexFlag +
'}';
}
}
寢室中住宿的人員類如下:
import java.util.Objects;
public class Person {
private String sno;
private String name;
private String subject;
public String getSno() {
return sno;
}
public void setSno(String sno) {
this.sno = sno;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return Objects.equals(sno, person.sno)
Objects.equals(name, person.name)
Objects.equals(subject, person.subject);
}
@Override
public int hashCode() {
return Objects.hash(sno, name, subject);
}
@Override
public String toString() {
return "Person{" +
"sno='" + sno + '\'' +
", name='" + name + '\'' +
", subject='" + subject + '\'' +
'}';
}
}
鎖加單例:
public class Regist{ private static Regist rgst=new Regist(); private Regist(){} private int cnt=0; private int max=100; public static getRegist(){return rgst;} ///設(shè)置最大上線人數(shù) public void setMax(int max){this.max=max;} ///判斷新用戶能否登入 public synchronized boolean login(){ if(cnt=max)return false; ++cnt; return true; } ///用戶退出時調(diào)用 public synchronized void logout(){ --cnt; }};
有新用戶要登入時,先Regist::getRegist().login()判斷能否登入,返回true則表示沒到用戶上限,可以登入,否則表示到上限了,不能登入,用戶退出時需要調(diào)用Regist::getRegist().logout()
synchronized不清楚可以百度,是種類似鎖的東西。作用于方法上,相當(dāng)于調(diào)用方法前先lock,調(diào)用之后unlock,其鎖的對象是該方法的類對象。
線程不是太多可以用這個方法,線程太多用這個可能慢了些,好像加鎖比較耗時間,如果同一個時間太多人進(jìn)行登入操作,都得在那等著,一個一個進(jìn)行,反應(yīng)慢
全部代碼已發(fā)送你的郵箱。
以下是部分代碼。
package?zhidao;
import?java.util.Scanner;
public?class?Main?{
//從控制臺讀入信息
private?Scanner?scanner?=?new?Scanner(System.in);
private?StudentService?ss?=?new?StudentService();
public?static?void?main(String[]?args)?{
Main?main?=?new?Main();
main.startService();
}
public?void?startService(){
System.out.println("歡迎使用宿舍管理系統(tǒng)");
//加載之前的舍友信息
ss.getFromFile();
while(true){
System.out.println("1,添加室友信息\t2,顯示所有室友信息\t3,按姓名查找室友\t4,保存室友信息到文件\t5,調(diào)入舍友\t6,調(diào)離舍友\t7,退出");
System.out.print("請選擇:");
int?choose?=?Integer.parseInt(scanner.nextLine());
switch?(choose)?{
case?1:
this.addRoomMates();
break;
case?2:
ss.printRoomMates();
break;
case?3:
this.findRoomMatesByName();
break;
case?4:
ss.saveToFile();
break;
case?5:
this.addRoomMates();
break;
case?6:
this.removeRoomMatesBySno();
break;
case?7:
System.out.println("info?--?感謝使用,再見!");
System.exit(0);
break;
default:
System.out.println("info?--?無此項,請重新選擇!");
break;
}
}
}
/**
*?調(diào)離舍友
*/
private?void?removeRoomMatesBySno()?{
while(true){
System.out.println("1,調(diào)離舍友\t2,退到上一層");
System.out.print("請選擇:");
int?choose?=?Integer.parseInt(scanner.nextLine());
switch?(choose)?{
case?1:
remove();
break;
case?2:
return;
default:
System.out.println("info?--?無此項,請重新選擇!");
}
}
}
/**
*?調(diào)離
*/
private?void?remove()?{
System.out.print("請輸入學(xué)號:");
String?sno?=?scanner.nextLine();
ss.removeRoomMatesBySno(sno);
}
/**
*?按姓名查找
*/
private?void?findRoomMatesByName()?{
while(true){
System.out.println("1,查找\t2,退到上一層");
System.out.print("請選擇:");
int?choose?=?Integer.parseInt(scanner.nextLine());
switch?(choose)?{
case?1:
check();
break;
case?2:
return;
default:
System.out.println("info?--?無此項,請重新選擇!");
}
}
}
/**
*?查找
*/
private?void?check()?{
System.out.print("請輸入姓名:");
String?name?=?scanner.nextLine();
ss.findRoomMateByName(name);
}
/**
*?添加室友
*/
private?void?addRoomMates()?{
while(true){
System.out.println("1,添加\t2,退到上一層");
System.out.print("請選擇:");
int?choose?=?Integer.parseInt(scanner.nextLine());
switch?(choose)?{
case?1:
add();
break;
case?2:
return;
default:
System.out.println("info?--?無此項,請重新選擇!");
}
}
}
/**
*?添加
*/
private?void?add()?{
System.out.print("請輸入學(xué)號:");
String?sno?=?scanner.nextLine();
System.out.print("請輸入姓名:");
String?name?=?scanner.nextLine();
System.out.print("請輸入性別:");
String?sex?=?scanner.nextLine();
System.out.print("請輸入年齡:");
int?age?=?Integer.parseInt(scanner.nextLine());
ss.addRoomMates(new?Student(sno,name,sex,age));
}
}
網(wǎng)頁標(biāo)題:java代碼描述宿舍人 java簡單的宿舍管理
本文地址:http://muchs.cn/article32/doocosc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、面包屑導(dǎo)航、小程序開發(fā)、微信小程序、網(wǎng)站收錄、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)