- 在线时间
- 0 小时
- 最后登录
- 2007-11-12
- 注册时间
- 2004-12-24
- 听众数
- 2
- 收听数
- 0
- 能力
- 0 分
- 体力
- 2467 点
- 威望
- 0 点
- 阅读权限
- 50
- 积分
- 882
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 205
- 主题
- 206
- 精华
- 2
- 分享
- 0
- 好友
- 0
升级   70.5% 该用户从未签到
 |
import java.io.*; * }0 v& X( A, o. z% |$ Y2 s& }
import java.util.*; 8 W; ]! J, i$ L. D- a
class str14
+ j& _- a, I; C7 }- b{ " a1 @3 J. U. R
InputStreamReader stdin=new InputStreamReader(System.in); ! i# n ^; s) Y9 T; e4 p, J8 C" Y
BufferedReader bufin=new BufferedReader(stdin); " m# o, e: S# @2 `' R3 C
- g6 k; \8 J' W9 }% p
public static void main(String args[]) throws IOException 1 y/ `+ u. g5 L: z7 `( [: v$ F/ A3 }) [
{ % i; p; @. _) T. b
new str14();//run the application 6 Q2 q7 ? `# l, O% P
}
- U" `! T0 |5 V
( l- z3 ?3 `9 l) u( F; Spublic str14() throws IOException//constructor 2 X% Y1 z8 {8 w, n/ P
{ 5 Z+ Y$ q9 e) N9 e$ K- J! }
Hashtable htable=new Hashtable(20,0.75F);
/ _7 }8 D3 e2 o o% A5 k! a3 idataBase(htable); ( V' k# I+ q9 G7 R3 ~- S! T
} 7 F: b+ V- S5 u3 V) ~
m: ^8 _, J1 p8 F3 K q F6 F
public str14(Hashtable htable) throws IOException //override the constructor 8 K: H o% d! G
{
& r3 [* l5 @# GdataBase(htable); 3 n: I, E: k* w! P
} 3 ^. c1 Q) t8 U0 H
+ [/ w# V a1 w9 n7 rpublic void dataBase(Hashtable htable) throws IOException
, l" F6 y2 i! R{
& ^1 J* K& A+ X" t: K8 jint count=htable.size();//get the ammount of the data in htable
+ Z' \) i5 ~7 Rint value,id,num; # d/ W7 c8 b$ R6 g* c
String key,enter,data; ) O) H! E& K- l* R6 D" N
Enumeration keys=htable.keys();//get all the key in htable
/ G$ o; X$ B4 J1 Y+ n- vEnumeration elements=htable.elements();//get all the elements in htable
/ D% h _9 Z$ b6 e/ HSystem.out.println("
c( z) M h5 |. E7 bHashtable 简易数据库程序
1 t" P) e \/ P6 N9 r7 \" U5 G");
4 ?. A/ f! K7 F) F% j1 USystem.out.println("(1)输入数据");
( F; W! r8 K# s2 ZSystem.out.println("(2)请除所有数据");
6 T3 x& X' o! PSystem.out.println("(3)显示单笔数据"); 4 h" h2 q, p& P, R4 K* z6 e
System.out.println("(4)删除单笔数据");
4 a" Z( c# u- q' ZSystem.out.println("(5)显示所有数据"); 2 j, V7 a) j7 b+ M# |6 ^
System.out.println("(6)结束程序"); , ~# E1 b6 Z/ q, A9 I2 T0 | [0 L' N
System.out.print("请输入您的选择:");
" n) t m! [9 Z# x' _8 L- g5 Hvalue=select();//call select(),return the function number 8 z0 t# s7 M5 ]( n0 [
switch(value)//the function
' |" J9 q; x) @- a{
8 b* u/ j: L) H+ r+ Ucase 1:
, l6 q2 n# R! |- `4 DSystem.out.print("
: C$ j6 A. n* G7 N请输入一笔数据:");//need data input / z' E) b' Y- J
data=bufin.readLine(); 8 E4 J' E0 E7 R9 R
count++; . v* A) D' D& e4 l5 Z5 Z( ~, l
key=String.valueOf(count);
- P1 i5 s- b, v2 {* lhtable.put(key,data);//store it to the htable
/ h7 b7 C1 R4 U/ s% s2 i/ y5 Y2 y( _& }System.out.print("' K8 p' ?% ?# h! v
输入完成,按任意键继续...");
, T( S3 _+ X. b$ L [4 Benter=bufin.readLine();
6 \" v/ q( }1 c+ u. Tnew str14(htable);//reenter - |# o! x: r9 H' H% Z/ ]
break;
+ W$ i1 W1 r, Hcase 2://clear all data from the htable ( u* o- _, \4 U" E6 g9 V; q! x
htable.clear(); 9 w+ C2 J. A% h! s( {
System.out.print("
% k0 N3 `- G' ~% U: D6 a/ {已删除了所有数据... 按任意键继续...");
1 e( D: ?! w- S/ F) zenter=bufin.readLine(); * i! |# W: L* E/ B5 s2 \- C
new str14(htable);//reenter
8 n2 {4 }; l. k- h: @8 a" Z4 Vbreak;
/ s. M# K3 c! \0 m( S' ]case 3: 2 C% x3 \8 ]; `6 s4 _
System.out.print("
% A% I+ [0 O" c请输入要显示的数据编号:"); 7 I% C& n8 a) S& p) ^
id=getid(count);//call getid() # J# d' q. V# v$ e
key=String.valueOf(id); . P- O$ M) x) N+ e& h' ?8 ^ n2 d
Object select=htable.get(key);//fetch the data from the htable
; x* ~$ `3 w. }+ fdata=select.toString(); * U% Q( e9 H. |: E
System.out.print("6 t. V2 F# h5 Q
编号"+" "+"内容"); - U. h- s% S* b
System.out.println("6 d0 w& R9 L$ S( x& ^
"+key+" "+data);//display the data
; }! K8 o' Z: KSystem.out.print("9 G# ^' e$ Y' P& S
按任意键继续..."); $ k, D2 `& I4 ]
enter=bufin.readLine(); 3 k- ~! I( y* G3 R& ]
new str14(htable);//reenter ) v- [9 F# E6 c6 _. N8 j# X, d
break; " M; @9 y; [ s2 {3 q
case 4:
+ x0 ~3 L) E2 c& k5 K: W" q2 hSystem.out.print("请输入要删除的数据编号:"); ) V! D2 P" F" B8 X- e Q
id=getid(count);
# o ?& u0 a( q3 akey=String.valueOf(id); ; P( \; L3 P9 C' z7 c
htable.remove(key);//remove data
}+ Z; z* X. T2 q' wcount--;
2 d" N* q4 q) u0 b3 X( S9 Vnum=count; . w# T0 \ ~) o+ b1 L2 R5 k7 _/ w
System.out.print("已删除了所选择的数据...按任意见继续...");
" w7 s& e$ `5 S) E4 Y) Q* ^0 YHashtable htable1=new Hashtable(20,0.75F);//create new htable named htable1
* A0 O! Z, F" \& k7 w nelements=htable.elements();//fetch all the data from htable 2 s! ` s, A: v# c% F; ~
while(elements.hasMoreElements())
1 x0 G4 ^: I) ]* }0 a8 g{ : M% O7 M; @6 P' O- o
key=String.valueOf(num);//a new value # ?7 b. g+ R2 Y9 z* g6 R4 C
data=(String)elements.nextElement();//fetch content of the data
. D3 R7 @ W; R; h/ b; ]% X) q2 Ohtable1.put(key,data);//store it to htable1 6 A. d1 z. z1 K2 j% }* m0 i
num--;
5 p. ]' Y7 t3 y( C: s1 t8 ]$ C} # l! p4 s5 k F1 Z
htable.clear(); : A, _. u4 H; o
enter=bufin.readLine();
( F2 J$ M# p5 ~- J7 Qnew str14(htable1);
0 D6 k' K* \ P: ^break;
* p; z6 v- V$ e% U( ccase 5:
& p2 p, v' w! [String[] sortkey=new String[count];//create a new sort array ( _3 D2 X' r6 S$ N5 X
String[] sortdata=new String[count]; ! D& S* P9 g2 b: P& P6 K) u
num=count; - R6 ]& {" C: e3 E3 \5 z* h+ [# y
elements=htable.elements();
5 F6 h! g' i+ n: e) @ q, Zkeys=htable.keys();
$ ~; \# \0 K! w9 v8 `1 xwhile(elements.hasMoreElements())
* C# ]" C. z, C, i' D# ]{ 3 D) [5 H) k) R9 n. B
key=(String)keys.nextElement();//fetch value of key
3 V2 Z/ w! o' U8 Edata=(String)elements.nextElement();//fetch value of data * E2 t! J. P$ E3 w# I9 U
sortkey[num-1]=key;//store the value of key to sortkey array
/ F$ J. n w6 J Z/ ~6 \sortdata[num-1]=data;//store the value of data to sortdata array 8 p$ `- K9 a# L e3 G
num--; : S( S& W- U9 t1 O U) T9 m
} & ] L1 {8 Y3 H: }$ n1 F+ m
System.out.println("
3 H4 q* u6 v* |5 w7 T6 W编号"+" "+"内容"); 3 ?- S. X7 e9 n4 B* v2 W! b# V
for(int i=0;i<count;i++)//display all content after sorting 8 F& l: a4 z; f* I
System.out.println(" "+sortkey+" "+sortdata); " {2 \% L' L6 N* }
System.out.print(": b8 u4 _ k4 U q6 t
目前共有"+count+"笔数据"); ; u( o& q& A* ?6 l+ a
System.out.print("
. T" y, x0 Y6 \& K1 R4 c3 p" H: j& R+ Q& t" [6 }# `
按任意键继续..."); u; x' q; o# R4 r- l( M: A* M
enter=bufin.readLine(); 2 U. k- ~- P4 i
new str14(htable);
0 y1 [0 b; Q+ q abreak; 1 n$ S/ w8 ^3 S A8 }" V
default:
6 ~9 Y- ?+ i2 Z4 Q} : g, { `; V, t; ]7 _1 Q
} ! l; }+ d% H# ^( J ]; {/ m9 T
2 t2 n& H3 g/ E" w& E: Z" v
public int select() throws IOException//method of getting a function selector
" e! w3 F! y; D/ U: z5 \) {4 n{ # F" D( r* ?$ Q, j4 R2 t! {$ r3 L
String input; 0 P9 R% }$ k6 T$ f% A$ m' q! K
int value=0;
* E/ c( o, z1 Z vinput=bufin.readLine();//read a input from keyboard
h, m" g7 W* `: K. itry 3 H5 r7 \9 C8 @! h! _! ^0 @
{ , F& E0 o+ M. Z, O
value=Integer.parseInt(input);//convert a string to a int value ) [" f( o6 `( V& K
}catch(NumberFormatException e)//can’t vonverted
: b; S, f. y( D u{ , h% a1 W6 h! R
System.out.print("请输入选项1~6:"); : \) D) @5 ~+ H) U: [6 d0 l! S0 ]
value=select(); 5 S( o+ p1 `* A9 l7 q6 i
} # a0 r$ }) H' ]7 D; V3 _& u( ]" A# N
if(value>6||value<1)//if exceed then print a message and reenter 0 p O( d2 I4 b9 x4 A* @
{ 1 x( E0 n- ^5 h" R' r. {2 I, @
System.out.print("请输入选项1~6:");
1 Q2 M, ~* m/ evalue=select(); & @/ N: T, L; l4 F! U
}
' D& {' G5 T* v1 u, b3 Y5 O: U* \( k# _return value;//return a value * N7 j9 G& U: h7 r$ S
}
$ _. C# s4 S# T4 i' @/ J# a8 J9 E; r) j* J( R
public int getid(int count)throws IOException//a method of return the number of data ) j5 Z$ g/ O9 R- `7 f& I
{ 5 k# z& A/ _ i7 r" {' q/ h
String input; 2 o( B( j1 ^1 @
int value=0;
7 t- [& b# f) H* Y7 Z6 d: G4 ninput=bufin.readLine();//read a user input string from keyboard 9 K4 x1 y4 w9 V2 C
try , T+ d& T% `9 o8 H$ |# Y
{
7 t: E4 A& x5 x3 r7 b! dvalue=Integer.parseInt(input);//convert the string to a int / }+ x2 \+ z: r4 k) D; N; T$ r
}catch(NumberFormatException e)//if can’t convert to a integer then reenter
+ N. C6 q& H8 i{ . W H& D' g+ T* ]8 J5 H5 c5 v
System.out.print("请输入数据编号:"); 5 L2 W$ q( j5 [5 e; M
value=getid(count);
( r% I! A# j5 G: n} ( P4 F& F# p9 N: y
if(value>count)//the input value is out of bound ' A) `- ~- E9 Z; l# |6 E: H0 ?$ m
{
! |+ L" b8 R0 V' _* PSystem.out.print("无此编号的数据,请重新输入:");
+ A( r0 P7 N; W" ?1 ?: r0 B" vgetid(count); 4 O( j- X" d. Y# U* {5 Y5 A
}
8 C9 [, p9 `" c3 Lreturn value;//return a value 0 X9 k6 z+ X a6 K
} & P3 V8 U a9 O! y, Z
} |
zan
|