QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2828|回复: 0
打印 上一主题 下一主题

[转帖]Hashtable简易数据库程序

[复制链接]
字体大小: 正常 放大
god        

206

主题

2

听众

882

积分

升级  70.5%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-3-31 01:45 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
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
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
如果我没给你翅膀,你要学会用理想去飞翔!!!
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2026-10-9 06:51 , Processed in 0.423473 second(s), 52 queries .

回顶部