by idatabase » Fri Feb 27, 2009 3:50 am
package program;
import java.io.*;
import java.util.*;
public class Database {
public static int select;
public static String id,fName,sName,temp;
public static ArrayList<String> data = new ArrayList<String>();
public static void main(String[] args) throws IOException{
Scanner kb = new Scanner(System.in);
PrintWriter outfile = null;
BufferedReader infile = null;
System.out.println("ยินดีต้อนรับสู่ระบบฐานข้อมูลของนักศึกษาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยธรรมศาสตร์");
do{
System.out.println("\nกรุณาเลือกคำสั่งที่ต้องการด้วยครับ");
System.out.println("1.เพิ่มชื่อนักศึกษา");
System.out.println("2.แก้ไขข้อมูลนักศึกษา");
System.out.println("3.ค้นหาข้อมูลนักศึกษา");
System.out.println("4.ออกจากโปรแกรม");
switch(select=kb.nextInt()){
case 1:{create(kb,outfile);break;}
case 2:{edit(kb,infile,outfile);break;}
case 3:{search(kb,infile);break;}
case 4:{System.out.println("ออกสู่ระบบเรียบร้อยแล้ว");System.exit(0);}
}
}while(true);
}//end method main
public static void create(Scanner kb,PrintWriter outfile) throws IOException{
outfile = new PrintWriter(new FileOutputStream("data.txt",true));
System.out.print("เลขทะเบียนนักศึกษา : ");
id=kb.next();
System.out.print("ชื่อจริง : ");
fName=kb.next();
System.out.print("นามสกุล : ");
sName=kb.next();
outfile.println(id);
outfile.println(fName);
outfile.println(sName);
outfile.close();
}
public static void edit(Scanner kb,BufferedReader infile,PrintWriter outfile) throws IOException{
infile = new BufferedReader(new FileReader("data.txt"));
temp=infile.readLine();
data.add(temp);
while(((temp=infile.readLine())!=null)){
data.add(temp);
}
System.out.println("เลขทะเบียนที่ต้องการแก้ไข : ");
int c = data.indexOf(kb.next());
System.out.println("แก้ไ้ขข้อมูลของ " + data.get(c));
System.out.print("ชื่อจริง : ");
data.set(++c, kb.next());
System.out.print("นามสกุล : ");
data.set(++c, kb.next());
outfile = new PrintWriter(new FileOutputStream("data.txt"));
for(int i=0;i<data.size();i++){
outfile.println(data.get(i));
}
outfile.close();
}
public static void search(Scanner kb,BufferedReader infile) throws IOException{
infile = new BufferedReader(new FileReader("data.txt"));
temp=infile.readLine();
data.add(temp);
while(((temp=infile.readLine())!=null)){
data.add(temp);
}
System.out.println("เลขทะเบียนที่ต้องการค้นหา : ");
int c = data.indexOf(kb.next());
System.out.println("เลขทะเบียน : " + data.get(c++));
System.out.println("ชื่อจริง : " + data.get(c++));
System.out.println("นามสกุล : " + data.get(c++));
}
}
เสร็จแล้วจ้า
แต่ยังมี bug อยู่นะ อย่างเ่ช่น การ edit จะได้ต่อการคอมไฟล์หนึ่งครั้ง
แล้วก็อีกอันเล็กยังไม่เขียน Exception มาดักเลยอ่ะ ใครว่างๆ ก็ลองไปเขียนเพิ่มเติมดูนะ
เล็กทำได้ในเวลาแค่นี้แล้วล่ะ T^T ขอโทดเพื่อนๆด้วยนะ ที่นำมาขึ้นช้า เพราะว่าจะวัดว่าใครจะอึดในราตรีนี้ ฮ่าๆๆ