收藏 分享(赏)

编译原理.docx

上传人:cjc2202537 文档编号:1051111 上传时间:2018-06-08 格式:DOCX 页数:10 大小:410.27KB
下载 相关 举报
编译原理.docx_第1页
第1页 / 共10页
编译原理.docx_第2页
第2页 / 共10页
编译原理.docx_第3页
第3页 / 共10页
编译原理.docx_第4页
第4页 / 共10页
编译原理.docx_第5页
第5页 / 共10页
点击查看更多>>
资源描述

1、实验任务要求设计一个 Windows 窗体用于填写个人资料,出生日期自动从身份证号码中提取,在提交时检查以下内容:(检查不合格时弹出消息框提) 检查用户名是否由 6-18 个字符组成,组成用户名的字符只能是英文大小写字母、数字、下划线; 检查真实姓名是否由 2-4 个汉字组成; 密码和确认密码是否一致,是否符合强密码规定;强密码应该具有如下特征: 强密码长度至少有 8 个字符; 不包含全部或部分用户帐户名; 至少包含以下四类字符中的三类:大写字母、小写字母、数字,以及键盘上的符号(如 !、 、# ) ; 字典中查不到;不是命令名;不是人名;不是用户名;不是计算机名; 定期更改;与以前的密码明显

2、不同; 检查 Email 格式; 检查电话号码是否由 11 个数字(手机号)或 8 位数字(固定电话)或区号加固定电话号码组成; 检查邮政编码是否由 6 位数字组成 检查身份证号码是否符合以下三种情况: a、身份证号码为 15 位数字(出生日期代码,第 7-8 位数代表年份(年份前面二位数省略),第 9-10 位数代表月份(月份为 l 位数的前面加零)。第 11-12 位数代表日期(日期为 1 位数的前面加零)。 ); b、身份证号码为 18 位数字; c、身份证号码为 17 位数字+1 个字母 X (第 7 位至 14 位为出生日期码)下面以 java 的形式对此作业进行解答代码如下:imp

3、ort java.awt.event.ActionEvent; import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.util.regex.Pattern;import javax.swing.JOptionPane;import java.awt.*;public class test extends Frameprivate static final long serialVersionUID = 1L;/*

4、 */public static Image img=null;public static void main(String args) /窗体创建test f = new test();img=f.getToolkit().createImage(“C:Userspceclipse-workspaceimg2.jpg“);/关闭窗体f.addWindowListener(new WindowAdapter() Overridepublic void windowClosing(WindowEvent e) System.exit(0););/窗体属性f.setTitle(“个人资料“);/

5、添加标题f.setSize(420, 600);/设置窗体的尺寸f.setLocation(455, 207);/设置窗体出现坐标f.setLayout(null);/清除窗体默认布局f.setIconImage(Toolkit.getDefaultToolkit().getImage(“C:Userspceclipse-workspaceimgtx.png“);/设置图标f.setResizable(false);/禁止窗体改变尺寸/用户名Label user = new Label(“用户名:“);user.setLocation(75, 50);user.setSize(80, 25);

6、user.setFont(new Font(“微软雅黑 “,Font.BOLD,16);f.add(user);/真是姓名Label name = new Label(“真实姓名:“);name.setLocation(75, 100);name.setSize(80, 25);name.setFont(new Font(“微软雅黑“,Font.BOLD,16);f.add(name);/身份证Label shenfen = new Label(“身份证:“);shenfen.setLocation(75, 150);shenfen.setSize(80, 25);shenfen.setFon

7、t(new Font(“微软雅黑“,Font.BOLD,16);f.add(shenfen);/密码标签Label password = new Label(“密码:“);password.setLocation(75, 200);password.setSize(80, 25);password.setFont(new Font(“微软雅黑“,Font.BOLD,16);f.add(password);/确认密码Label Qpassword = new Label(“确认密码:“);Qpassword.setLocation(75, 250);Qpassword.setSize(80, 2

8、5);Qpassword.setFont(new Font(“微软雅黑“,Font.BOLD,16);f.add(Qpassword);/Email Label Email = new Label(“Email:“);Email.setLocation(75, 300);Email.setSize(80, 25);Email.setFont(new Font(“微软雅黑“,Font.BOLD,16);f.add(Email);/电话号码Label phone = new Label(“电话号码:“);phone.setLocation(75, 350);phone.setSize(80, 25

9、);phone.setFont(new Font(“微软雅黑“,Font.BOLD,16);f.add(phone);/出生日期Label birth = new Label(“出生日期:“);birth.setLocation(75, 400);birth.setSize(80, 25);birth.setFont(new Font(“微软雅黑 “,Font.BOLD,16);f.add(birth);/输入账号的文本框TextField t1 = new TextField(); t1.setSize(220,25);t1.setLocation(170, 50);t1.setFont(n

10、ew Font(“微软雅黑“,Font.PLAIN,16);f.add(t1);/真实姓名TextField t2 = new TextField();t2.setSize(220,25);t2.setLocation(170, 100);t2.setFont(new Font(“微软雅黑“,Font.PLAIN,16);f.add(t2);/ 身份证TextField t3 = new TextField();t3.setSize(220,25);t3.setLocation(170, 150);t3.setFont(new Font(“微软雅黑“,Font.PLAIN,16);f.add(

11、t3);/密码TextField t4 = new TextField();/ t4.setEchoChar(*);t4.setSize(220,25);t4.setLocation(170, 200);t4.setFont(new Font(“微软雅黑“,Font.PLAIN,16);f.add(t4);/确认密码TextField t5 = new TextField();/ t5.setEchoChar(*);t5.setSize(220,25);t5.setLocation(170, 250);t5.setFont(new Font(“微软雅黑“,Font.PLAIN,16);f.ad

12、d(t5); /Email 输入文本TextField t6 = new TextField();t6.setSize(220,25);t6.setLocation(170, 300);t6.setFont(new Font(“微软雅黑“,Font.PLAIN,16);f.add(t6); /电话号码TextField t7 = new TextField();t7.setSize(220,25);t7.setLocation(170, 350);t7.setFont(new Font(“微软雅黑“,Font.PLAIN,16);f.add(t7); /出生日期TextField t8 = n

13、ew TextField();t8.setSize(220,25);t8.setLocation(170, 400);t8.setFont(new Font(“微软雅黑“,Font.PLAIN,16);f.add(t8); /提交按钮Button login = new Button(“提交“);/按钮触发事件login.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent arg0) int p = 1;String zh = t1.getText();String tur

14、eName = t2.getText();String Shenfen = t3.getText();String Password = t4.getText();String passwords = t5.getText();String Email1 = t6.getText(); String Phone = t7.getText();/用户名的正则表达式String regex1 = “a-zA-Z0-9|_6,18“;if(!Pattern.matches(regex1, zh) JOptionPane.showMessageDialog(f, “用户名是由 6-18 个英文大小写字

15、母、数字、下划线组成“);p = 0;/真是姓名确认String regex2 = “u4e00-u9fa52,4“;if(!Pattern.matches(regex2, tureName) JOptionPane.showMessageDialog(f, “真实姓名是否由 2-4 个汉字组成“);p = 0;/身份证确认String regex3 = “(1-9d16a-zA-Z0-91)|(0-9d14)“; / d 代表数字if(!Pattern.matches(regex3, Shenfen) p = 0;JOptionPane.showMessageDialog(f, “居民身份证

16、号码 15 位或 18 位,最后一位可能是数字或字母“);/密码验证/ String regex4 = “(a-zA-Z0-9+)|(a-zA-Z+)!#+)|(a-z0-9+)!#+)|(A-Z0-9+)!#+)8,$“;String regex41 =“.*0-9.*“;String regex42 =“.*a-z.*“;String regex43 =“.*A-Z.*“;String regex44 =“.*!#.*“;if(Pattern.matches(regex41,Password)JOptionPane.showMessageDialog(f, “密码必须为 8 位以上,其中包

17、含大写字母、小写字母、数字,以及键盘上的符号(如 !、#)“);/密码匹配/.equals 类判断两个 String 字符是否相等if(!Password.equals(passwords)p = 0;JOptionPane.showMessageDialog(f, “密码不匹配“);/Email 确认String regex6 = “0-9a-zA-z+a-zA-Z+.a-zA-z+$“;if(!Pattern.matches(regex6, Email1) p = 0;JOptionPane.showMessageDialog(f, “邮箱格式不正确“);/电话号码确认String reg

18、ex7 = “(110-910)|(0-98)|(0-912)$“;if(!Pattern.matches(regex7, Phone) p = 0;JOptionPane.showMessageDialog(f, “电话号码由 11 个数字(手机号)或 8 位数字(固定电话)或区号加固定电话号码组成“);if(p = 1) JOptionPane.showMessageDialog(f, “提交成功“);/设置生日String birth1 = t3.getText().substring(6, 14);t8.setText(birth1););login.setLocation(170, 500);/按钮在窗体中的坐标login.setSize(75, 30);/设计按钮的尺寸f.add(login);/把按钮元素添加到窗体中 f.setVisible(true);/设置窗体的可见性public void paint(Graphics g)g.drawImage(img,20,20,this);此文档赠与需要之人,不必言谢!

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 教育学

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报