通过主菜单对各级子菜单进行控制,并实现添加记录,查找记录,删除记录,修改记录,排序记录,以及退出系统功能的实现。一共六部分的功能模块。
上面的图就是每个模块具有的功能,而且还用到了正则表达式判断输入的是否符合规则,这个系统体现了mvc的设计模式,分工调用很清晰。
主要包含了下面几个类:
app类:程序的主函数类,程序开始的入口
menu类:里面都是简单页面显示的效果,没有功能的实现。
telnoteregex类:正则表达式,判断是否输入合格,都在这个方法中。
operate类:业务逻辑类,全部功能的实现基本都集中在这个类中。
person类:封装数据。
具体的实现代码:
app类的实现代码:
?
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
package com.bjsxt.iphone;
public class app {
public static void main(string[] args) {
new app().start();
}
public void start(){
menu m=new menu();
operate o=new operate();
telnoteregex reg=new telnoteregex();
while(true){
m.mainmenu();
int key=reg.menuregex(1, 6);
switch(key){
case 1:
o.addlogic();
break;
case 2:
o.searchlogic();
break;
case 3:
o.modifylogiclogic();
break;
case 4:
o.deletelogic();
break;
case 5:
o.orderlogic();
break;
case 6:
system.exit(0);
break;
}
}
}
}
|
person类具体的实现代码:
?
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
package com.bjsxt.iphone;
public class person {
private int id;//用户id属性
private string name;//用户姓名属性
private string age;//用户年龄属性
private string sex;//用户性别属性
private string telnum;//用户电话号码属性
private string address;//用户地址属性
public person(){}
public person(int id,string name,string age,string sex,string telnum,string address){
this.id=id;
this.name=name;
this.age=age;
this.sex=sex;
this.telnum=telnum;
this.address=address;
}
public int getid() {
return id;
}
public void setid(int id) {
this.id=id;
}
public string getname() {
return name;
}
public void setname(string name) {
this.name = name;
}
public string getage() {
return age;
}
public void setage(string age) {
this.age = age;
}
public string getsex() {
return sex;
}
public void setsex(string sex) {
this.sex = sex;
}
public string gettelnum() {
return telnum;
}
public void settelnum(string telnum) {
this.telnum = telnum;
}
public string getaddress() {
return address;
}
public void setaddress(string address) {
this.address = address;
}
}
|
telnoteregex类具体代码:
?
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
package com.bjsxt.iphone;
import java.util.scanner;
public class telnoteregex {
//对菜单项校验
@suppresswarnings("resource")
public int menuregex(int min,int max){
string regex="[0-9]{1}";
scanner sc=new scanner(system.in);
while(true){
string input=sc.nextline();
//根据合法性的校验
if(input.matches(regex)){
int key=integer.parseint(input);
if(key>=min && key<=max){
return key;
}else{
system.out.println("输入的菜单项不符合要求!");
}
}else{
system.out.println("输入内容不正确!");
}
}
}
//用户输入姓名的验证
@suppresswarnings("resource")
public string nameregex(string name){
string pattern ="[\\\\u4e00-\\\\u9fa5]+";
string str=name;
scanner sc=new scanner(system.in);
while(true){
if(str.matches(pattern)){
return str;
}else{
system.out.println("输入不合法字符,请重新输入中文汉字");
str=sc.nextline();
continue;
}
}
}
//用户输入年龄的验证
@suppresswarnings("resource")
public string ageregex(string age){
string pattern ="^([0-9]|[0-9]{2}|100)$";
string str=age;
scanner sc=new scanner(system.in);
while(true){
if(str.matches(pattern)){
return str;
}else{
system.out.println("输入不合法字符,请重新输入数字");
str=sc.nextline();
continue;
}
}
}
//用户性别的验证
@suppresswarnings("resource")
public string sexregex(string sex){
string pattern ="[男女mmff]";
string str=sex;
scanner sc=new scanner(system.in);
while(true){
if(str.matches(pattern)){
return str;
}else{
system.out.println("输入不合法字符,请重新输入男女mmff");
str=sc.nextline();
continue;
}
}
}
//用户输入电话号码的验证
@suppresswarnings("resource")
public string telnumregex(string telnum){
string pattern ="[0-9]{11}";
string str=telnum;
scanner sc=new scanner(system.in);
while(true){
if(str.matches(pattern)){
return str;
}else{
system.out.println("输入不合法字符,请重新输入11位的手机号码");
str=sc.nextline();
continue;
}
}
}
//用户输入地址的验证
@suppresswarnings("resource")
public string addressregex(string address){
string pattern ="[a-za-z[0-9]]{1,15}";
string str=address;
scanner sc=new scanner(system.in);
while(true){
if(str.matches(pattern)){
return str;
}else{
system.out.println("输入不合法字符,请重新输入1到15个英文大小写或是数字");
str=sc.nextline();
continue;
}
}
}
}
|
menu类代码的具体实现:
?
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
package com.bjsxt.iphone;
public class menu {
//主界面
public void mainmenu() {
system.out.println("*************************");
system.out.println("** 1 添加记录 **");
system.out.println("** 2 查找记录 **");
system.out.println("** 3 修改记录 **");
system.out.println("** 4 删除记录 **");
system.out.println("** 5 排序记录 **");
system.out.println("** 6 退出系统 **");
system.out.println("*************************");
}
//添加界面
public void addmenu () {
system.out.println("*************************");
system.out.println("** 1 添加新记录 **");
system.out.println("** 2 查看全记录 **");
system.out.println("** 3 返回上一级 **");
system.out.println("*************************");
}
//查找界面
public void searchmenu () {
system.out.println("*************************");
system.out.println("** 1 按姓名查找 **");
system.out.println("** 2 按年龄查找 **");
system.out.println("** 3 按性别查找 **");
system.out.println("** 4 按号码查找 **");
system.out.println("** 5 按住址查找 **");
system.out.println("** 6 查看全记录 **");
system.out.println("** 7 返回上一级 **");
system.out.println("*************************");
}
//修改界面
public void modifymenu () {
system.out.println("*************************");
system.out.println("** 1 查看全记录 **");
system.out.println("** 2 修改指定记录 **");
system.out.println("** 3 返回上一级 **");
system.out.println("*************************");
}
//修改子界面
public void submodifymenu () {
system.out.println("*************************");
system.out.println("** 1 修改姓名 **");
system.out.println("** 2 修改年龄 **");
system.out.println("** 3 修改性别 **");
system.out.println("** 4 修改号码 **");
system.out.println("** 5 修改住址 **");
system.out.println("** 6 返回上一级 **");
system.out.println("*************************");
}
//删除界面
public void deletemenu () {
system.out.println("*************************");
system.out.println("** 1 查看全记录 **");
system.out.println("** 2 删除指定记录 **");
system.out.println("** 3 删除全部记录 **");
system.out.println("** 4 返回上一级 **");
system.out.println("*************************");
}
//排序界面
public void ordermenu () {
system.out.println("*************************");
system.out.println("** 1 按姓名排序 **");
system.out.println("** 2 按年龄排序 **");
system.out.println("** 3 按性别排序 **");
system.out.println("** 4 查看全部记录 **");
system.out.println("** 5 返回上一级 **");
system.out.println("*************************");
}
}
|
operate类的具体实现:
?
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
|



