?? 2540620127.txt
字號:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.StringTokenizer;
/*
* Created on 2007-12-23
*/
/**
* @author 汪洋
* @since 1.0
*
* TODO 學生成績管理系統
* 通過學號查找,修改,刪除數據
*
*/
public class LittleProgram
{
static boolean isDelete = true;
static boolean isFind = true;
public static void main(String [] args)//主方法,程序從這里開始運行
throws IOException,NumberNotFoundException
{
int choice=-1;
do{
LittleProgram lp = new LittleProgram();
System.out.println();
System.out.println("\t####################################");
System.out.println();
System.out.println("\t\t Java學生成績管理系統1.1");
System.out.println("\t\t請用學號查找,修改,刪除數據");
System.out.println();
System.out.println("\t####################################\n");
System.out.print("1.增加數據:\n"
"2.查找數據:\n"
"3.刪除數據:\n"
"4.清除所有數據:\n"
"5.把數據全部打印到屏幕\n"
"6.把成績按學號排序\n"
"7.修改數據\n"
"8.統計已記錄成績學生數\n"
"9.關于作者\n"
"0.退出程序.\n"
"輸入:");
BufferedReader in = //從終
new BufferedReader( //端接
new InputStreamReader(System.in));//收數
String inputLine = in.readLine(); //字選
choice= Integer.valueOf(inputLine).intValue();//項;
switch(choice)
{
case 1: {//1.增加數據
String str = lp.inputData();
lp.addData(str);
System.out.println("增加數據成功.");
timeOut(1);
}break;
case 2: {//2.查找數據
long find = 0;
System.out.print("請輸入你要查找的學生學號:");
BufferedReader inn =
new BufferedReader(
new InputStreamReader(System.in));
String inputLi = inn.readLine();
find = Integer.valueOf(inputLi).longValue();
lp.findData(find);
timeOut(2);
}break;
case 3: {//3.刪除數據
long deleteNumber = 0;
System.out.print("請輸入你想刪除的同學的學號:");
BufferedReader bf =
new BufferedReader (
new InputStreamReader(System.in));
String inputL = bf.readLine();
deleteNumber = Integer.valueOf(inputL).longValue();
lp.deleteData(deleteNumber);
if(isDelete)
System.out.println("刪除數據成功!");
timeOut(1);
}break;
case 4: {
lp.clearData();//4.清除所有數據
timeOut(1);
}break;
case 5: {
print();//5.把數據全部打印到屏幕
timeOut(2);
}break;
case 6: {
lp.numSort();//6.把成績按學號排序
System.out.println("按照學號從小到大排序成功!\n"
"排序后:\n");
print();
timeOut(2);
}break;
case 7: {
lp.rewrite();//7.修改數據
timeOut(2);
}break;
case 8: {
int count = lp.count();
System.out.println("共有" count "個學生已經記錄.");
timeOut(2);
}break;
case 9: {
System.out.print("\t\t汪洋\n"
"\t\t電子科大成都學院計算機系\n"
"\t\tQQ:175545310\n");
timeOut(4);
}break;
}while (choice != 0);
System.out.println("Bye! ^-^");
System.exit(0);
}
public String inputData()//從終端接收數據的方法,返回字符串
throws IOException,NumberFormatException
{
System.out.print("請依次輸入 :學號 姓名 性別 成績\n"
"每項數據請用空格隔開:");
String all = "";
try{
BufferedReader in = //從終
new BufferedReader ( //端接
new InputStreamReader(System.in)); //收數
String inputLine = in.readLine(); //據
StringTokenizer str =
new StringTokenizer(inputLine," ");//接收的數據用空格隔開,這個類用來提取每個字符串
long num = Integer.valueOf(str.nextToken()).longValue();//學號
String name = (String)str.nextToken(); //姓名
String sex = (String)str.nextToken(); //性別
double mark = Integer.valueOf(str.nextToken()).doubleValue();//分數
all = String.valueOf(num) " , "
name " , "
sex " , "
String.valueOf(mark);//把所有的數據用" , "隔開然后在連起來放進字符串all
}catch (IOException e){}
catch (NumberFormatException e){}
return all;//返回字符串all
}
public void addData(String str)//增加數據的方法
throws IOException
{
String s1 ="",s2="" ,s3= "";
File file = new File("data.txt");
if (file.exists())//如果文件data.txt存在
{
try{
BufferedReader in =
new BufferedReader(
new FileReader("data.txt"));
while ((s1=in.readLine())!=null)
s2 =s1 "\n";//把文件中的每行數據全部放進一個字符串s2
s2 =str "\n"; //再把s2于形參str相連放進s2
BufferedReader in2 = //把字符
new BufferedReader( //串s2也
new StringReader(s2)); //就是原
PrintWriter out = //文件
new PrintWriter( //形參str(新輸入的一行數據)
new BufferedWriter( //重新寫進data.txt
new FileWriter("data.txt"))); //覆蓋原來的數據
while ((s3=in2.readLine())!= null)
{
out.println(s3);
}
out.close();
//System.out.println("write data true.");
}catch (IOException e){}
public void remove(long i)//接收學號,然后刪除學號(key)和它對應的數據(value)
{
remove(String.valueOf(i).toString().toString());
}
public String get(long i)//接收一個學號,然后返回這個key對應的value
{
String s = String.valueOf(i).toString();
if (!containsKey(s))
{
System.err.println("Not found Key: " s);
}
return (String)get(s);
}
}
/*
*
* @author WangYang
*
* TODO 這個類繼承ArrayList
* 用來按數字排序,在用學號排序時要用到它
*
*/
class DataArrayList extends ArrayList
{
public void add(long num)
{
String numToString = String.valueOf(num).toString();
add(numToString);
}
}
/*
*
* @author WangYang
*
* TODO 增加的一個Exception,主要是在文件里沒有要找
* 的學號就拋出
*
*/
class NumberNotFoundException extends Exception
{
public NumberNotFoundException()
{}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -