Java实现通讯录系统全部源码
Java实现通讯录管理系统项目
Java实现通讯录管理系统项⽬本⽂实例为⼤家分享了Java实现通讯录管理系统的具体代码,供⼤家参考,具体内容如下⼀、前⾔我们学了这么久的知识了,光学知识不会⽤是⼀件很悲伤的事情,所以我们应学完部分练⼀些项⽬或题,来巩固我们学习的知识,激发我们持续学习的动⼒。
⼆、创建通讯的功能增加联系⼈信息删除联系⼈信息修改联系⼈信息查看所有联系⼈信息退出通信录管理系统⾸先定义⼀个People类,提供相应的get、set⽅法(在idea中有快捷键Alt+insert⽣成get、set⽅法,和构造⽅法)public class People {private String sid;private String name;private String age;private String address;private String num;public People(){}public People(String sid, String name, String age, String address, String num) {this.sid = sid; = name;this.age = age;this.address = address;this.num=num;}public String getSid() {return sid;}public void setSid(String sid) {this.sid = sid;}public String getName() {return name;}public void setName(String name) { = name;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}public String getNum() {return num;}public void setNum(String num) {this.num = num;}在People类中加上菜单,并在测试类中去调⽤。
个人通讯录管理系统,java源代码
package cn.pab.manager;import java.util.List;import java.util.Scanner;import cn.pab.dao.PersonDao;import cn.pab.dao.TypeDao;import erDao;import cn.pab.dao.impl.PersonDaoImpl;import cn.pab.dao.impl.TypeDaoImpl;import erDaoImpl;import cn.pab.entity.Person;import cn.pab.entity.Type;/*** 业务类*/public class PABmanager {/*** 系统启动*/public static void main(String[] args) {Scanner input = new Scanner(System.in);UserDao userDao = new UserDaoImpl();TypeDao typeDao = new TypeDaoImpl();PersonDao personDao = new PersonDaoImpl();System.out.println("***********欢迎使用个人通讯录管理系统**********");System.out.print("\n请选择操作(1.系统登录 2.密码修改 3.取消):");String in = input.next();if ("1".equals(in)) {boolean islogin = userDao.login();if(islogin){System.out.println("***********成功登录个人通讯录管理系统**********");//System.out.print("\n请选择操作(1.类别管理 2.联系人管理 3.退出系统):");}else{System.out.println("用户名或密码错误,不能登录!");System.exit(-1);}}else if ("2".equals(in)) {boolean modiFlag = userDao.modify();if(modiFlag){System.out.println("密码修改成功!");}else{System.out.println("密码修改失败!");}System.exit(-1);}else{System.out.println("您已经退出系统!");System.exit(-1);}while(true){System.out.print("\n请选择操作(1.类别管理 2.联系人管理 3.退出系统):");String in2 = input.next();if ("1".equals(in2)) {while(true){System.out.print("\n请继续选择操作(1.新建类别 2.查询类别3.删除类别 4.返回):");String num = input.next();if ("1".equals(num)) {System.out.print("请输入类别的名称:");String lbmc = input.next();System.out.print("请输入类别的说明:");String lbsm = input.next();System.out.print("请输入类别的备注:");String lbbz = input.next();Type type = new Type(lbmc,lbsm,lbbz);typeDao.createType(type);}else if ("2".equals(num)) {List<Type> types = typeDao.queryType();System.out.println("\t\t类别信息列表");System.out.println("类别名称\t\t类别说明\t\t类别备注");for (int i = 0; i < types.size(); i++) {Type type =types.get(i);System.out.print(type.getLbmc()+"\t");System.out.print(type.getLbsm()+ "\t\t");System.out.println(type.getLbbz());}}else if ("3".equals(num)) {System.out.print("请输入类别的名称:");String lbmc = input.next();Type type = new Type(lbmc,null,null);typeDao.deleteType(type);}else if ("4".equals(num)) {break;}else{System.out.println("您输入不合法,请重新选择!");}}}else if ("2".equals(in2)) {while(true){System.out.print("\n请继续选择操作(1.新建联系人 2.查询联系人 3.更新联系人 4.删除联系人 5.返回):");String num = input.next();if ("1".equals(num)) {System.out.print("请输入联系人的类别名称:");String lb = input.next();System.out.print("请输入联系人的姓名:");String xm = input.next();System.out.print("请输入联系人的电话:");String dh = input.next();System.out.print("请输入联系人的手机号:");String sjh = input.next();System.out.print("请输入联系人的工作单位:");String gzdw = input.next();System.out.print("请输入联系人的住址:");String zz = input.next();System.out.print("请输入联系人的邮政编码:");String yzbm = input.next();Person person = new Person(lb,xm,dh,sjh,gzdw,zz,yzbm);personDao.createPerson(person);}else if ("2".equals(num)) {System.out.print("请输入联系人的姓名:");String name = input.next();Person p = personDao.queryPerson(name);System.out.println("\t\t查询到的联系人信息");System.out.println("类别\t姓名\t电话\t\t手机号\t\t工作单位\t住址\t邮政编码");System.out.print(p.getLb() + "\t");System.out.print(p.getXm() + "\t");System.out.print(p.getDh() + "\t");System.out.print(p.getSjh() + "\t");System.out.print(p.getGzdw() + "\t");System.out.print(p.getZz() + "\t");System.out.println(p.getYzbm());}else if ("3".equals(num)) {System.out.print("请输入需更新的联系人编号:");int id = input.nextInt();System.out.print("请输入需更新的联系人信息选项:");String item = input.next();System.out.print("请输入联系人信息选项的值:");String val = input.next();personDao.updatePerson(id,item, val);}else if ("4".equals(num)) {System.out.print("请输入要删除联系人的姓名:");String name = input.next();personDao.deletePerson(name);}else if ("5".equals(num)) {break;}else{System.out.println("您输入不合法,请重新选择!");}}}else if ("3".equals(in2)) {System.out.println("您已经退出系统!");System.exit(-1);}else{System.out.println("您输入不合法,请重新选择!");}}}}(资料素材和资料部分来自网络,供参考。
java课程设计(通讯录管理系统)
掌握Java语言基础
理解面向对象编程思 想
掌握数据库操作技术
提高团队协作和沟通 能力
完成一个实用的通讯 录管理系统
联系人管理:添加、删除、修改、查询联系人信息 联系人分组:创建、删除、修改、查询联系人分组 联系人搜索:根据姓名、电话、邮箱等信息进行搜索 联系人导出:将联系人信息导出为Excel、CSV等格式的文件 联系人导入:从Excel、CSV等格式的文件中导入联系人信息 系统设置:修改系统语言、主题、字体等设置
数据库类型:MySQL
数据库表结构:用户表、 联系人表、分组表等
主键和外键:用户ID、联 系人ID、分组ID等
数据库操作:增删改查等 基本操作
数据库优化:索引、缓存、 分表等优化措施
数据库安全:用户权限管 理、数据加密等安全措施
界面布局:简洁 明了,易于操作
色彩搭配:协调 统一,易于阅读
功能模块:联系 人管理、分组管 理、搜索功能等
汇报人:
添加标题
添加标题
查询方式:支持模糊查询和精确查 询
查询优化:使用索引提高查询效率
功能描述:删除指定联系人信 息
实现方法:调用数据库删除接 口
操作步骤:选择联系人,点击 删除按钮,确认删除
注意事项:确保删除操作不会 影响其他数据完整性
添加联系人:输入姓名、电话、邮箱等信 息
修改联系人:修改姓名、电话、邮箱等信 息
删除联系人:删除指定联系人
查询联系人:根据姓名、电话、邮箱等信 息进行查询
导出联系人:将联系人信息导出为Excel 或CSV文件
导入联系人:将Excel或CSV文件中的联系 人信息导入到系统中
修改模块界面:提供用户友 好的界面,方便用户操作
(完整word版)个人通讯录管理系统源代码
个人通讯录管理系统import javax。
swing。
*;import java。
awt.*;import java。
awt.event。
*;import java.io.*;public class TongXunLu {public static void main(String[] args) {new menu();}}class menu implements ActionListener{JMenuItem zengjia,suoyou,beifen,quit,select,del;JFrame f;Container con;JMenuBar bar;String str1,str2,str3;JFileChooser fc1 = new JFileChooser();File fc2=new File("D://test。
txt”);menu(){f=new JFrame(”通讯录管理系统");f。
setDefaultCloseOperation(JFrame。
DISPOSE_ON_CLOSE);f。
setSize(500, 400);f。
setLocation(130, 150);con=f。
getContentPane();Color c=Color。
YELLOW ;Font fo=new Font("黑体",Font.BOLD,40); JPanel pan=new JPanel();JLabel lab=new JLabel(”通讯录管理系统");lab.setForeground(c);lab.setFont(fo);pan.add(lab);con。
add(pan);bar=new JMenuBar();f。
setJMenuBar(bar);JMenu menu1=new JMenu("文件"); JMenu menu2 =new JMenu(”查询"); JMenu menu3 =new JMenu("删除");zengjia=new JMenuItem("增加记录");suoyou=new JMenuItem(”所有记录”);beifen=new JMenuItem(”文件备份”);quit=new JMenuItem(”退出");select=new JMenuItem(”查询");del=new JMenuItem("删除");menu1.add(zengjia);(完整word版)个人通讯录管理系统源代码menu1。
通讯录管理程序课程设计java
下面是一个简单的Java程序,用于管理通讯录。
这个程序包括添加联系人、删除联系人、查找联系人和显示所有联系人的功能。
```javaimport java.util.ArrayList;import java.util.Scanner;class Contact {String name;String phoneNumber;Contact(String name, String phoneNumber) { = name;this.phoneNumber = phoneNumber;}}class AddressBook {ArrayList<Contact> contacts = new ArrayList<>();void addContact(Contact contact) {contacts.add(contact);}void deleteContact(String name) {for (Contact contact : contacts) { if (.equals(name)) { contacts.remove(contact);break;}}}Contact findContact(String name) {for (Contact contact : contacts) { if (.equals(name)) { return contact;}}return null;}void displayContacts() {for (Contact contact : contacts) {System.out.println("Name: " + + ", Phone Number: " + contact.phoneNumber);}}}public class Main {public static void main(String[] args) {AddressBook addressBook = new AddressBook();Scanner scanner = new Scanner(System.in);boolean running = true;while (running) {System.out.println("1. Add Contact");System.out.println("2. Delete Contact");System.out.println("3. Find Contact");System.out.println("4. Display Contacts"); System.out.println("5. Exit");System.out.print("Enter your choice: ");int choice = scanner.nextInt();scanner.nextLine(); // Consume newlineleft-over after reading intswitch (choice) {case 1: {System.out.print("Enter name: ");String name = scanner.nextLine();System.out.print("Enter phone number: ");String phoneNumber = scanner.nextLine();addressBook.addContact(newContact(name, phoneNumber));break;}case 2: {System.out.print("Enter name of contact to delete: ");String nameToDelete = scanner.nextLine();addressBook.deleteContact(nameToDelete);break;}case 3: {System.out.print("Enter name of contact to find: ");String nameToFind = scanner.nextLine();Contact foundContact = addressBook.findContact(nameToFind);if (foundContact != null) {System.out.println("Name: " + + ", Phone Number: " + foundContact.phoneNumber);} else {System.out.println("Contact not found.");}break;}case 4: {addressBook.displayContacts();break;}case 5: {running = false; // Exit the loop and end the program when user selects "Exit" option.break; // Not strictly necessary here as the loop will end and the program will exit, but included for good practice and explicitness for future reference/maintenance by other developers.}default: {System.out.println("Invalid choice, please enter a number between 1 and 5.");}}}scanner.close();}}。
Java实现通讯录系统全部源码
Java实现《通讯录》软件测试.094谭又中2011/09/25(共37页)登陆界面:源码:package sources;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class LoginForm extends JFrame implements ActionListener{//声明组件private JPanel jpanel1=new JPanel(); //声明面板容器private JLabel[] arrayJLabel={new JLabel("用户名:"),new JLabel("密码:"),new JLabel("")}; //声明包含三个标签的标签数组private JTextField userNameJTextField=new JTextField(); //声明用户名文本域private JPasswordField passwordJPasswordField=new JPasswordField(); //声明密码输入域private JButton[] arrayJButton={new JButton("登录"),new JButton("注册")}; //声明包含两个按钮数组//构造函数public LoginForm(){//设置窗体相关属性//设置标题栏显示图标Image icon2=Toolkit.getDefaultToolkit().getImage("images\\ico.gif");this.setIconImage(icon2);//设置窗口标题this.setTitle("--登录--");//设置窗口不可拖动大小this.setResizable(false);//设置窗口大小this.setSize(350,300);//获取屏幕尺寸Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();int screenWidth=screenSize.width;int srceenHeight=screenSize.height;//设置窗口居于屏幕中央setLocation((screenWidth-getWidth())/2,(srceenHeight-getHeight())/2);//设置组件的相关属性//设置面板容器的布局策略为空jpanel1.setLayout(null);//设置面板容器背景色jpanel1.setBackground(Color.WHITE);//利用循环添加标签和按钮for(int i=0;i<2;i++){//设置2个标签和2个按钮的位置及大小arrayJLabel[i].setBounds(65, 164+i*35, 80, 26);arrayJButton[i].setBounds(60+i*135, 235, 90, 26);//设置2个标签和两个按钮的文本颜色arrayJLabel[i].setForeground(Color.RED);arrayJButton[i].setForeground(Color.RED);//设置2个标签和两个按钮的字体arrayJLabel[i].setFont(new Font("宋体",Font.PLAIN,14));arrayJButton[i].setFont(new Font("宋体",Font.PLAIN,15));//将2个标签和2个按钮添加到面板容器jpanel1.add(arrayJLabel[i]);jpanel1.add(arrayJButton[i]);//为按钮添加动作事件监听器arrayJButton[i].addActionListener(this);}//设置文本域和密码框的最大输入字符量userNameJTextField.setColumns(15);passwordJPasswordField.setColumns(16);//设置文本域和密码框的位置及大小userNameJTextField.setBounds(115, 161, 160, 30);passwordJPasswordField.setBounds(115, 198, 160, 30);//设置密码输入回显字符passwordJPasswordField.setEchoChar('*');//设置文本域和密码框的文本颜色userNameJTextField.setForeground(Color.RED);passwordJPasswordField.setForeground(Color.RED);//设置文本域和密码框的字体userNameJTextField.setFont(new Font("宋体",Font.BOLD,16));passwordJPasswordField.setFont(new Font("宋体",Font.BOLD,16));//定义一个图标对象,用于显示登陆界面图像ImageIcon icon1=new ImageIcon("images\\txl_1.jpg");//设置图像arrayJLabel[2].setIcon(icon1);//设置标签位置及尺寸arrayJLabel[2].setBounds(0,0,350,158);//将文本域和密码框添加到面板容器jpanel1.add(arrayJLabel[2]);jpanel1.add(userNameJTextField);jpanel1.add(passwordJPasswordField);//为文本域和密码框添加事件监听器userNameJTextField.addActionListener(this);passwordJPasswordField.addActionListener(this);//将面板容器添加到内容窗格this.add(jpanel1);//为窗口添加关闭响应事件this.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});//显示窗体this.setVisible(true);}//定义一个公共方法,清空文本域内容,并定位焦点到文本域public void userNameClear(){//清空文本域内容userNameJTextField.setText("");//文本域获得焦点userNameJTextField.requestFocus();}//定义一个公共方法,清空密码框内容,并定位焦点到密码框public void passwordClear(){//清空密码框内容passwordJPasswordField.setText("");//密码框获得焦点passwordJPasswordField.requestFocus();}//@Override //声明此方法为重写方法//实现ActionListener接口的方法,以实现对事件的监听处理public void actionPerformed(ActionEvent e){//定义变量(用于调用DBOperate类的方法的实参传递)String user=userNameJTextField.getText().toString().trim(); //用户名变量String pwd=String.valueOf(passwordJPasswordField.getPassword()); //密码变量String sql=""; //SQL查询语句变量//如果事件源是文本域输入框,则进行相应操作if(e.getSource()==userNameJTextField){//让焦点转移到密码框passwordJPasswordField.requestFocus();}//如果事件源是登录按钮或者是在输入密码完毕后点击了回车按钮,则进行相应操作else if(e.getSource()==arrayJButton[0]||e.getSource()==passwordJPasswordField){//判断输入是否合法if(user.equals("")){//提示输入不合法JOptionPane.showMessageDialog(this, "用户名输入不合法!", "系统提示",RMATION_MESSAGE);//文本域获得焦点userNameJTextField.requestFocus();//该句可防止用户名和密码均为空一次性弹出2个对话框return;}if(pwd.equals("")){//提示输入不合法JOptionPane.showMessageDialog(this, "密码输入不合法!", "系统提示",RMATION_MESSAGE);//密码框获得焦点passwordJPasswordField.requestFocus();return;}else{//调用DBOperate类的方法进行判断,用户名及密码是否匹配if(DBOperate.check(user,pwd)){//登录成功,显示主窗体,并传递登录‘用户名’作为实参MainFrame mainframe=new MainFrame(user);mainframe.setVisible(true);//释放登录窗口this.dispose();}else{//登录失败,提示用户名或密码出错JOptionPane.showMessageDialog(null, "用户名或密码有误,\n请检查是否无误再进行登录!", "系统提示",JOptionPane.ERROR_MESSAGE);//清空密码框this.passwordClear();//清空文本域erNameClear();return;}}}//如果事件源是注册按钮则进行相应操作else if(e.getSource()==arrayJButton[1]){//判断文本域是否为空if(user.equals("")){//提示输入不合法JOptionPane.showMessageDialog(this, "用户名不能为空!", "系统提示",RMATION_MESSAGE);//清除文本域内容erNameClear();//文本域获得焦点userNameJTextField.requestFocus();//该句可防止用户名和密码均为空一次性弹出2个对话框return;}//判断密码框是否为空else if(pwd.equals("")){//提示输入不合法JOptionPane.showMessageDialog(this, "密码不能为空!", "系统提示",RMATION_MESSAGE);//清除密码框内容this.passwordClear();//密码框获得焦点passwordJPasswordField.requestFocus();return;}//判断注册用户是否存在else{//判断注册的用户是否已经存在sql="SELECT UserName FROM User WHERE UserName='"+user+"'";if(DBOperate.isExist(sql)){//注册用户已经存在,进行相应提示JOptionPane.showMessageDialog(this, "对不起,注册失败!\n该用户已经存在!", "系统提示", RMATION_MESSAGE);//清除密码框内容this.passwordClear();//清除文本域内容erNameClear();return;}else{//尝试捕获异常try{//满足条件执行注册操作sql="INSERT INTO User VALUES('"+user+"','"+pwd+"')";if(DBOperate.update(sql)>0){//提示用户注册成功JOptionPane.showMessageDialog(this, "恭喜你!\n注册成功!", "系统提示", RMATION_MESSAGE);return;}}catch(Exception ex){//打印出错误原因ex.printStackTrace();}}}}}//主方法public static void main(String []args){new LoginForm();//创建登陆窗体}}主界面:其他界面:系统菜单:解锁:源码:package sources;import java.util.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.filechooser.*;import javax.swing.border.*;import javax.swing.event.*;import javax.swing.tree.*;import java.io.*;public class MainFrame extends JFrame implements ActionListener,ItemListener {//定义锁定状态变量private String lockState="";//定义背景颜色对象private Color bgColor=new Color(201,237,201);//定义字体颜色对象private Color foreColor=new Color(61,120,38);//定义字体对象private Font font=new Font("宋体",Font.PLAIN,15);// *******************声明菜单组件***************//菜单栏private JMenuBar menubar=new JMenuBar();//菜单private JMenu systemMenu=new JMenu("系统(S)");private JMenu helpMenu=new JMenu("帮助(H)");//系统菜单项private JMenuItem alterPasswordItem=new JMenuItem("修改密码(N)",'N');private JMenuItem delUserItem=new JMenuItem("删除用户(D)",'D');private JMenuItem lockItem=new JMenuItem("锁定(L)",'L');private JMenuItem cancelItem=new JMenuItem("注销(W)",'W');private JMenuItem exitItem=new JMenuItem("退出(X)",'X');//帮助菜单项private JMenuItem helpItem=new JMenuItem("帮助(H)",'H');private JMenuItem aboutItem=new JMenuItem("关于(A)",'A');private String user=null;//当前用户的名字private String perNameBefor=null;//编辑的时候之前的名字private String perGroupBefor=null;//编辑的时候修改之前的分组private boolean searchByName=true;//true则默认为按姓名查找private boolean isInsert=false;//是否为添加默认为否Image image=Toolkit.getDefaultToolkit().getImage("images\\txl_2.jpg");//得到图标对象Icon icon = new ImageIcon(image);private JPanel jps=new JPanel();//界面上半部分的JPanel容器private JButton jba=new JButton("添加");private JButton jbs=new JButton("查找");private JTextField jtfs=new JTextField();//按给出信息查找联系人信息//选择查找方式的单选按钮private JRadioButton jrbxm=new JRadioButton("按姓名查找",true);private JRadioButton jrbbh=new JRadioButton("按编号查找");private ButtonGroup bg=new ButtonGroup();//单选按钮组private JPanel jpbr=new JPanel();//单选按钮面板//界面左下的树创建树模型指定节点"联系人"为根节点DefaultMutableTreeNode root=new DefaultMutableTreeNode(new NodeValue("联系人",0));DefaultTreeModel dtm=new DefaultTreeModel(root);private JTree jtz=new JTree();//界面下半部分左边的JTreeprivate JScrollPane jspz=new JScrollPane(jtz);//JTree的滚动条private DefaultTreeCellRenderer dtcr=new DefaultTreeCellRenderer();//树节点的绘制器private JPanel jpy=new JPanel();//界面下半部分右边界面,布局管理器为卡片布局private JPanel jpyInfo=new JPanel();//右侧显示个人信息的面板//界面下半部分右边的JPanel容器的个人信息栏目里的控件private JLabel[] jlInfo={new JLabel("用户编号:"),new JLabel("姓名:"),new JLabel("性别:"),new JLabel("年龄:"),new JLabel("电话号码:"),new JLabel("Email:"),new JLabel("所属组:"),new JLabel("更改照片:"),new JLabel("邮编:"),new JLabel("地址:"),new JLabel("添加相片"),new JLabel("")};private JButton[] jbInfo={new JButton("编辑"),new JButton("保存"),new JButton("删除"),new JButton("浏览"),new JButton("添加分组"),new JButton("删除分组"),new JButton("浏览"),new JButton("上传"),new JButton("删除")};//初始默认的一些分组private String[] str={"朋友","同事","家庭","重要人士","其他"};private JComboBox jcb=new JComboBox(str);//分组下拉列表控件private JLabel jlPhoto=new JLabel();//显示图像的JLabel控件private JTextField[] jtfInfo=new JTextField[10];private JTextField jtfPhoto=new JTextField();//添加照片到相册的路径private JFileChooser jfcPic=new JFileChooser("f:\\");//上传图像的文件选择器private JFileChooser jfcPho=new JFileChooser("f:\\");//上传照片的文件选择器//性别部分private JRadioButton jrbMale=new JRadioButton("男",true);private JRadioButton jrbFemale=new JRadioButton("女");private ButtonGroup bgGender=new ButtonGroup();private JPanel jpGender=new JPanel();//单选按钮面板private JPanel jpyview=new JPanel();//右侧显示多幅照片的面板private JScrollPane jspyview=new JScrollPane(jpyview);//滚动条private JLabel jlDetail=new JLabel();//右侧显示一幅图片的标签private JScrollPane jspydetail=new JScrollPane(jlDetail);//显示一幅图片标签的滚动条private JLabel jlNoPic=new JLabel("您还没有为该联系人添加照片");//没有照片的显示JLabel//图片加载进度条部分private JPanel jpProgress=new JPanel();//右侧显示图片加载进度的面板private JLabel jlProgress=new JLabel("预览图片加载中.....");private JProgressBar jpb=new JProgressBar(JProgressBar.HORIZONTAL,0,100);//选中不同树节点时的提示信息部分private JLabel jlRoot=new JLabel(icon,JLabel.LEFT);private JLabel jlGroup=new JLabel();//分组节点的JLabelprivate CardLayout cl=new CardLayout();//创建卡片布局管理器private JLabel[] jla=null;//照片缓冲数组//分割窗口部分//垂直分割(水平线分割)窗口对象private JSplitPane jspOuter=new JSplitPane(JSplitPane.VERTICAL_SPLIT,true);//对一次分割后的上半部分进行二次垂直分割(水平线分割)对象private JSplitPane jspInner1=new JSplitPane(JSplitPane.VERTICAL_SPLIT,menubar,jps);//对一次分割后的下半部分进行二次水平分割(垂直线线分割)对象private JSplitPane jspInner2=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,jspz,jpy);//系统托盘部分private PopupMenu popup=new PopupMenu();private SystemTray tray; //定义SystemTray成员变量private TrayIcon trayIcon; //定义TrayIcon成员变量private MenuItem lockAndUnlockMainFrame=new MenuItem("锁定");//定义菜单项private MenuItem waitUser=new MenuItem("注销");//定义菜单项private MenuItem showMainFrame=new MenuItem("打开主面板");//定义菜单项private MenuItem currently=new MenuItem("显示当前用户");//定义菜单项private MenuItem exit=new MenuItem("退出系统");//定义菜单项//主类构造函数public MainFrame(String user){//设置用户名er=user;//初始化菜单系统this.initMenu();//界面上半部分的搭建this.initJps();//初始化信息面板this.initInfo();//初始化卡片布局的面板this.initJpy();//添加系统托盘this.initTray();//初始化树this.initTree();//设置主窗体的图标、标题、大小以及可见性Image image=Toolkit.getDefaultToolkit().getImage("images\\link.png");//得到图标对象this.setIconImage(image);this.setTitle(user+"的通讯录");this.setSize(650,550);//获取屏幕尺寸Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();int screenWidth=screenSize.width;int srceenHeight=screenSize.height;//设置窗口居于屏幕中央setLocation((screenWidth-getWidth())/2,(srceenHeight-getHeight())/2);jtz.addTreeSelectionListener(//为树节点添加事件监听器new TreeSelectionListener(){@Overridepublic void valueChanged(TreeSelectionEvent e){//重写valueChanged方法DefaultMutableTreeNode cdmtn=//得到选中节点对象(DefaultMutableTreeNode)e.getPath().getLastPathComponent();NodeValue cnv=(NodeValue)cdmtn.getUserObject();//得到自定义节点对象if(cnv.classCode==0){//选中节点是根节点时cl.show(jpy,"root");}else if(cnv.classCode==1){//选中节点是分组节点时String group=cnv.toString();jlGroup.setText(group);cl.show(jpy,"group");}else if(cnv.classCode==2){//选中节点是某一联系人节点时String sql="SELECT pid,pname,pgender,page,pnumber,pemail,pgroup,ppostalcode,"+ "padress FROM ContactInfo WHERE UserName='"+er+"'AND pname='"+cnv.toString()+"'";setInfo(DBOperate.getPerInfo(sql));//从数据库得到此联系人信息并设置到信息面板cl.show(jpy,"Info");}else if(cnv.classCode==3){//相册预览jpyview.removeAll();//清空相册预览面板cl.show(jpy,"tpyl");//显示相册预览面板viewPic(cdmtn);//预览相册}else if(cnv.classCode==4){//图片明细cl.show(jpy,"tpmx");//显示图片明细面板NodeValue pnv=//得到选中照片的自定义节点对象(NodeValue)((DefaultMutableTreeNode)cdmtn).getUserObject();detailPic(pnv.value);//点击某一张图片}}});//设置垂直分割窗体的位置jspOuter.setDividerLocation(80);//设置窗体被垂直分割后上半部分的组件(这里参数为再次进行垂直分割的对象)jspOuter.setTopComponent(jspInner1);//设置窗体被垂直分割后下半部分的组件(这里参数为再次进行水平分割的对象)jspOuter.setBottomComponent(jspInner2);//设置水平分割窗体的位置jspInner1.setDividerLocation(26);jspInner2.setDividerLocation(150);//设置垂直分割窗体的宽度jspOuter.setDividerSize(0);//设置水平分割窗体的宽度jspInner2.setDividerSize(4);//将分割窗体添加到主窗体this.add(jspOuter);//设置窗体关闭按钮执行的动作this.addWindowListener(new WindowAdapter(){public void WindowClosing(WindowEvent e){//将窗体隐藏MainFrame.this.setVisible(false);}});//显示窗口this.setVisible(true);}//初始化菜单系统方法public void initMenu(){//设置菜单快捷键systemMenu.setMnemonic('S');helpMenu.setMnemonic('H');//设置加速键alterPasswordItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK)); //Ctrl+N delUserItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D,InputEvent.CTRL_MASK)); //Ctrl+D lockItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L,InputEvent.CTRL_MASK)); //Ctrl+L cancelItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_W,InputEvent.CTRL_MASK)); //Ctrl+W exitItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK)); //Ctrl+XhelpItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H,InputEvent.CTRL_MASK)); //Ctrl+H aboutItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.ALT_MASK)); //Alt+A//为每个菜单项注册事件监听器alterPasswordItem.addActionListener(this);delUserItem.addActionListener(this);lockItem.addActionListener(this);cancelItem.addActionListener(this);exitItem.addActionListener(this);helpItem.addActionListener(this);aboutItem.addActionListener(this);//为每个菜单栏、菜单、菜单项设置背景色menubar.setBackground(bgColor);systemMenu.setBackground(bgColor);helpMenu.setBackground(bgColor);alterPasswordItem.setBackground(bgColor);delUserItem.setBackground(bgColor);lockItem.setBackground(bgColor);cancelItem.setBackground(bgColor);exitItem.setBackground(bgColor);helpItem.setBackground(bgColor);aboutItem.setBackground(bgColor);//为每个菜单栏、菜单、菜单项设置字体颜色menubar.setForeground(foreColor);systemMenu.setForeground(foreColor);helpMenu.setForeground(foreColor);alterPasswordItem.setForeground(foreColor);delUserItem.setForeground(foreColor);lockItem.setForeground(foreColor);cancelItem.setForeground(foreColor);exitItem.setForeground(foreColor);helpItem.setForeground(foreColor);aboutItem.setForeground(foreColor);//为每个菜单栏、菜单、菜单项设置字体Font menuFont=new Font("宋体",Font.PLAIN,13);menubar.setFont(menuFont);systemMenu.setFont(menuFont);helpMenu.setFont(menuFont);alterPasswordItem.setFont(menuFont);delUserItem.setFont(menuFont);lockItem.setFont(menuFont);cancelItem.setFont(menuFont);exitItem.setFont(menuFont);helpItem.setFont(menuFont);aboutItem.setFont(menuFont);//将相应菜单项添加到‘系统’菜单systemMenu.add(alterPasswordItem);systemMenu.add(delUserItem);systemMenu.add(lockItem);systemMenu.add(cancelItem);systemMenu.add(exitItem);//将相应菜单项添加到‘帮助’菜单helpMenu.add(helpItem);helpMenu.add(aboutItem);//将‘系统’菜单添加到菜单栏menubar.add(systemMenu);//将‘帮助’菜单添加到菜单栏menubar.add(helpMenu);}public void initJps(){//界面上半部分的初始化jps.setLayout(null);//设置jps布局管理器为nulljps.setBackground(bgColor);//设置按钮大小并添加到JPanel面板里jba.setBounds(5,10,80,26);jba.setFont(font);jba.setForeground(foreColor);jba.addActionListener(this);//为添加按钮注册事件监听器jps.add(jba);//添加按钮到jps面板里jbs.setBounds(90,10,80,26);jbs.setFont(font);jbs.setForeground(foreColor);jbs.addActionListener(this);//为查找按钮注册事件监听器jps.add(jbs);//添加按钮到jps面板里//设置jtfs文本框大小并添加到jps面板里jtfs.setBounds(175,10,120,26);jtfs.addActionListener(this);//为文本框注册事件监听器jps.add(jtfs);//设置单选按钮大小和位置并添加到jpbr面板里同时添加到bg单选按钮组里jrbxm.setBounds(5,0,50,26);jrbxm.setBackground(bgColor);jrbxm.setForeground(foreColor);jrbxm.addItemListener(this);//为单选按钮注册ItemEvent事件监听器bg.add(jrbxm);jpbr.add(jrbxm);jrbbh.setBounds(60,0,50,26);jrbbh.setBackground(bgColor);jrbbh.setForeground(foreColor);jrbbh.addItemListener(this);//为单选按钮注册ItemEvent事件监听器bg.add(jrbbh);jpbr.add(jrbbh);jpbr.setBounds(300,8,200,28);jpbr.setBackground(bgColor);jpbr.setFont(font);jps.add(jpbr);}public void initTree(){//初始化树//设置背景色及字体色和字体jtz.setBackground(bgColor);jtz.setForeground(foreColor);jtz.setFont(font);jtz.setModel(dtm);//设置树模型jtz.setExpandsSelectedPaths(true);//设置树ExpandsSelectedPaths属性jtz.setCellRenderer(dtcr);//设置树的节点绘制器ImageIcon icon=new ImageIcon("images\\wzk.png");//得到树节点关闭的图标dtcr.setClosedIcon(icon);//设置树节点关闭的图标icon=new ImageIcon("images\\zk.png");//得到树节点展开的图标dtcr.setOpenIcon(icon);//设置树节点展开的图标icon=new ImageIcon("images\\mzjd.png");//得到树的叶子节点的图标dtcr.setLeafIcon(icon);//设置树的叶子节点的图标Vector<String> group=DBOperate.getNode(user,"uid");//从数据库得有多少个分组for(int i=0;i<group.size();i++){//添加组节点String s=group.get(i);DefaultMutableTreeNode dmtnGroup=//创建分组节点对象new DefaultMutableTreeNode(new NodeValue(s,1));dtm.insertNodeInto(dmtnGroup,root,i);//将分组节点添加到根节点//添加人名节点Vector<String> pnode=DBOperate.getNode(user,"pname;"+s);for(String person:pnode){dmtnGroup.add(this.initPerNode(person));//将各个分组下的联系人节点添加到分组节点}}}public void initJpy(){//界面右边为卡片布局的JPanel里一些控件的添加jpy.setLayout(cl);//设置背景色jpy.setBackground(bgColor);//设置选中根节点显示信息格式并添加到面板jlRoot.setFont(new Font("Courier",Font.PLAIN,22));jlRoot.setHorizontalAlignment(JLabel.CENTER);jlRoot.setVerticalAlignment(JLabel.CENTER);jpy.add("root",jlRoot);//添加根节点显示信息jpy.add("Info",jpyInfo);//添加联系人信息面板//设置选中分组节点显示信息格式并添加到面板jlGroup.setFont(new Font("楷体_GB2312",Font.BOLD,40));jlGroup.setForeground(foreColor);jlGroup.setHorizontalAlignment(JLabel.CENTER);jlGroup.setVerticalAlignment(JLabel.CENTER);jpy.add("group",jlGroup);//添加分组节点显示信息//初始化图片预览界面并添加到面板jpyview.setBackground(Color.black);//设置背景色为黑色jpyview.setLayout(new FlowLayout(FlowLayout.LEFT));jpy.add("tpyl",jspyview);//设置相册没有照片时提示信息格式并添加到面板jlNoPic.setFont(new Font("楷体_GB2312",Font.BOLD,40));jlNoPic.setForeground(foreColor);jlNoPic.setHorizontalAlignment(JLabel.CENTER);jlNoPic.setVerticalAlignment(JLabel.CENTER);jpy.add("nopic",jlNoPic);//初始化图片明细界面并添加到面板jlDetail.setOpaque(true);jlDetail.setBackground(Color.black);//设置背景色为黑色jlDetail.setVerticalAlignment(JLabel.CENTER);jlDetail.setHorizontalAlignment(JLabel.CENTER);jpy.add("tpmx",jspydetail);//初始化图片加载进度界面jpy.add("tpjd",jpProgress);jpProgress.setLayout(null);jpProgress.setBackground(bgColor);jlProgress.setBounds(20,20,250,50);//设置大小和位置jlProgress.setFont(new Font("楷体_GB2312",Font.PLAIN,25));jlProgress.setForeground(foreColor);jpProgress.add(jlProgress);//添加进度条jpb.setBounds(20,70,400,50);//设置大小和位置jpb.setBackground(new Color(208,244,247));//设置进度条背景色jpb.setFont(new Font("楷体_GB2312",Font.PLAIN,25));//设置进度显示百分比的字体jpProgress.add(jpb);jpb.setBorderPainted(true);//设置进度条边框显示jpb.setStringPainted(true);//设置进度条字符显示}public void initInfo(){//初始化信息界面//设置信息面板背景色jpyInfo.setBackground(bgColor);jpyInfo.setLayout(null);//设置布局管理器为空jpyInfo.setBounds(50,50,380,360);//设置信息面板的大小和位置jlPhoto.setBounds(220,10,150,170);//设置联系人图像JLabel的大小和位置jlPhoto.setBorder(BorderFactory.createLineBorder(Color.BLACK));//将JLbel的边框线显现出来jpyInfo.add(jlPhoto);//将显示联系人照片的JLabel添加到信息面板for(int i=0;i<10;i++)//添加文本标签,并设置大小和位置{jlInfo[i].setBounds(20,10+i*30,60,26);//设置标签文本颜色jlInfo[i].setForeground(foreColor);jpyInfo.add(jlInfo[i]);}//添加相片部分的控件jlInfo[10].setBounds(20,360,60,26);//设置标签文本颜色jlInfo[10].setForeground(foreColor);jpyInfo.add(jlInfo[10]);//上传照片张数进度提醒jlInfo[11].setBounds(270,395,300,30);jlInfo[11].setFont(font);jlInfo[11].setForeground(Color.RED);jpyInfo.add(jlInfo[11]);jtfPhoto.setBounds(80,360,200,26);//设置得到照片路径的文本框的大小和位置//设置照片路径的文本框文本颜色jtfPhoto.setForeground(foreColor);jpyInfo.add(jtfPhoto);//将得到照片路径的文本框添加到信息面板jbInfo[6].setBounds(285,360,80,26);//设置标签文本颜色jbInfo[6].setForeground(foreColor);jbInfo[6].addActionListener(this);//为添加照片的浏览按钮注册事件监听器jpyInfo.add(jbInfo[6]);//设置文件选择器的几种选择文件格式jfcPho.addChoosableFileFilter(new FileNameExtensionFilter("GIF图片文件","gif","GIF"));jfcPho.addChoosableFileFilter(new FileNameExtensionFilter("PNG图片文件","png","PNG"));jfcPho.addChoosableFileFilter(new FileNameExtensionFilter("JPEG图片文件","jpg","jpeg"));for(int i=0;i<10;i++){//初始化一些文本框jtfInfo[i]=new JTextField();//设置文本框颜色jtfInfo[i].setForeground(foreColor);}for(int i=1;i<7;i++){//设置一些类似文本框的位置if(i!=2&i!=6){jtfInfo[i].setBounds(80,10+i*30,135,26);//设置文本框颜色jtfInfo[i].setForeground(foreColor);jtfInfo[i].addActionListener(this);//为文本框注册事件监听器jpyInfo.add(jtfInfo[i]);//将文本框添加到信息面板}}//性别部分jrbMale.setBounds(5,3,50,26);jrbMale.setBackground(bgColor);//设置单选按钮文本颜色jrbMale.setForeground(foreColor);jrbMale.addItemListener(this); //为单选按钮注册ItemEvent事件监听器bgGender.add(jrbMale);jpGender.add(jrbMale);jrbFemale.setBounds(60,3,50,26);//设置单选按钮背景色jrbFemale.setBackground(bgColor);//设置单选按钮文本颜色jrbFemale.setForeground(foreColor);jrbFemale.addItemListener(this); //为单选按钮注册ItemEvent事件监听器bgGender.add(jrbFemale);jpGender.add(jrbFemale);jpGender.setBounds(60,70,125,26);//设置单选按钮容器背景色jpGender.setBackground(bgColor);jpyInfo.add(jpGender); //将单选按钮的面板jpbr添加到jps里//分组jcb.setBounds(80,190,75,26);//设置下拉列表框背景色jcb.setBackground(bgColor);//设置下拉列表框文本颜色jcb.setForeground(foreColor);jcb.setEditable(false);//设置分组文本为不可编辑this.initGroup();//初始话分组下拉列表框jcb.setSelectedIndex(4);//默认选择的是其他分组jpyInfo.add(jcb);//将分组下拉列表框添加到信息面板for(int i=0;i<2;i++)//添加分组删除分组按钮{jbInfo[4+i].setBounds(175+100*i,190,90,26);//设置按钮文本颜色jbInfo[4+i].setForeground(foreColor);jbInfo[4+i].addActionListener(this);//为按钮注册事件监听器jpyInfo.add(jbInfo[4+i]);}//用户编号jtfInfo[0].setBounds(80,10,135,26);jpyInfo.add(jtfInfo[0]);//更改图像jtfInfo[7].setBounds(80,220,200,26);jpyInfo.add(jtfInfo[7]);jbInfo[3].setBounds(285,220,80,26);//设置按钮文本颜色jbInfo[3].setForeground(foreColor);jbInfo[3].addActionListener(this);//为按钮注册事件监听器jpyInfo.add(jbInfo[3]);//将添加图像的浏览按钮添加到信息面板//设置文件选择器的几种选择文件格式jfcPic.addChoosableFileFilter(new FileNameExtensionFilter("GIF图片文件","gif","GIF")); jfcPic.addChoosableFileFilter(new FileNameExtensionFilter("PNG图片文件","png","PNG")); jfcPic.addChoosableFileFilter(new FileNameExtensionFilter("JPEG图片文件","jpg","jpeg")); //邮编文本框的添加jtfInfo[8].setBounds(80,250,135,26);jpyInfo.add(jtfInfo[8]);//地址文本框的添加jtfInfo[9].setBounds(80,280,285,26);jpyInfo.add(jtfInfo[9]);//编辑保存删除等按钮for(int i=0;i<3;i++){jbInfo[i].setBounds(80+i*100,320,80,26);//设置按钮文本颜色jbInfo[i].setForeground(foreColor);jbInfo[i].addActionListener(this);//为按钮注册事件监听器jpyInfo.add(jbInfo[i]);}for(int i=0;i<2;i++){//上传和删除按钮jbInfo[7+i].setBounds(80+i*100,395,80,26);jbInfo[7+i].setForeground(foreColor);jbInfo[7+i].addActionListener(this);//为按钮注册事件监听器jpyInfo.add(jbInfo[7+i]);}}public void initGroup()//初始化分组下拉列表{Vector<String> v=DBOperate.getNode(user,"uid");//得到所有分组列表boolean b=false;//记录下拉列表中是否存在已有的选项for(int i=0;i<v.size();i++){for(int j=0;j<jcb.getItemCount();j++){if(v.get(i).equals(jcb.getItemAt(j))){b=true; break;//下拉列表框中存在此选项时}}if(b==false){//下拉列表框中不存在此选项时将其添加到分组下拉列表框jcb.addItem(v.get(i));}else{b=false;//将b置为false 以待下一次循环使用}}}public void initTray()//初始化系统托盘{lockAndUnlockMainFrame.addActionListener(this);//为菜单选项注册监听器waitUser.addActionListener(this);//为菜单选项注册监听器showMainFrame.addActionListener(this);//为菜单选项注册监听器currently.addActionListener(this);//为菜单选项注册监听器exit.addActionListener(this);//为菜单选项注册监听器popup.add(lockAndUnlockMainFrame);//将菜单选项添加到菜单popup.add(waitUser);//将菜单选项添加到菜单popup.add(showMainFrame);//将菜单选项添加到菜单popup.add(currently);//将菜单选项添加到菜单popup.add(exit);//将菜单选项添加到菜单if(SystemTray.isSupported())//判断当前系统是否支持系统托盘{tray=SystemTray.getSystemTray();//通过静态方法得到系统托盘Image image=Toolkit.getDefaultToolkit().getImage("images\\link.png");//加载图像trayIcon=new TrayIcon(image,"我的通讯录",popup);//创建TrayIcon对象得到托盘图标trayIcon.setImageAutoSize(true);//设置托盘图标自动设置尺寸try{//将托盘图标设置到系统托盘中tray.add(trayIcon);}catch(AWTException e){e.printStackTrace();}trayIcon.addActionListener(this);//为trayIcon注册事件监听器}}public DefaultMutableTreeNode initPerNode(String person)//生成联系人节点{DefaultMutableTreeNode dmtnPerson=//根据得到的人名生成一个树节点new DefaultMutableTreeNode(new NodeValue(person,2));DefaultMutableTreeNode dmtnPhoto=//在联系人节点下添加相册节点new DefaultMutableTreeNode(new NodeValue("相册",3));dmtnPerson.add(dmtnPhoto);Vector<String> pphoto=DBOperate.getNode(user,person);//得到该用户下该联系人的相册照片名称列表for(String photo:pphoto){DefaultMutableTreeNode Photo=//生成照片节点。
个人通讯录管理系统,java源代码
/*** 业务类*/public class PABmanager {/*** 系统启动*/public static void main(String[] args) {Scanner input = new Scanner(System.in);UserDao userDao = new UserDaoImpl();TypeDao typeDao = new TypeDaoImpl();PersonDao personDao = new PersonDaoImpl();String in = input.next();if ("1".equals(in)) {boolean islogin = userDao.login();if(islogin){}else{System.exit(-1);}}else if ("2".equals(in)) {boolean modiFlag = userDao.modify();if(modiFlag){}else{}System.exit(-1);}else{System.exit(-1);}while(true){String in2 = input.next();if ("1".equals(in2)) {while(true){String num = input.next();if ("1".equals(num)) {String lbmc = input.next();String lbsm = input.next();String lbbz = input.next();Type type = new Type(lbmc,lbsm,lbbz);typeDao.createType(type);}else if ("2".equals(num)) {List<Type> types = typeDao.queryType();for (int i = 0; i < types.size(); i++) {Type type =types.get(i);}}else if ("3".equals(num)) {String lbmc = input.next();Type type = new Type(lbmc,null,null);typeDao.deleteType(type);}else if ("4".equals(num)) {break;}else{}}}else if ("2".equals(in2)) {while(true){String num = input.next();if ("1".equals(num)) {String lb = input.next();String xm = input.next();String dh = input.next();String gzdw = input.next();String zz = input.next();String yzbm = input.next();Person person = new Person(lb,xm,dh,sjh,gzdw,zz,yzbm);personDao.createPerson(person);}else if ("2".equals(num)) {String name = input.next();Person p = personDao.queryPerson(name);}else if ("3".equals(num)) {int id = input.nextInt();String item = input.next();String val = input.next();personDao.updatePerson(id,item, val);}else if ("4".equals(num)) {personDao.deletePerson(name);}else if ("5".equals(num)) {break;}else{}}}else if ("3".equals(in2)) {System.exit(-1);}else{}}}}。
java通讯录代码全
package com.tel;import java.awt.*;import javax.swing.*;//创建面板public class Frame1extends JFrame {JPanel contentPane;BorderLayout borderLayout1 = new BorderLayout(); public Frame1() {try {setDefaultCloseOperation(EXIT_ON_CLOSE);jbInit();}catch (Exception exception) {exception.printStackTrace();}}/*** Component initialization.**/private void jbInit() throws Exception {contentPane = (JPanel) getContentPane();contentPane.setLayout(borderLayout1);setSize(new Dimension(400, 300));setTitle("Frame Title");}}package com.tel;import java.awt.*;import java.awt.event.*;class MyWindowListener extends WindowAdapter {public void windowClosing(WindowEvent e){System.exit(1);}}package com.tel;import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;public class TelAdd implements ActionListener{private TelFields fields;private JTextArea ta;private Connection con;public TelAdd(Connection c,TelFields f,JTextArea a){con=c;fields=f;ta=a;}public void actionPerformed(ActionEvent e){try {//执行insert语句添加新数据PreparedStatement pstmt=con.prepareStatement("insert into tongxun values(?,?)");String name=.getText();String tel=fields.tel.getText();pstmt.setString(1,name);pstmt.setString(2,tel);pstmt.executeUpdate();pstmt.close();ta.setText("SQL 语句: \nINSERT INTO tongxun V ALUES('"+ name +"','"+ tel +"')" + "\n 加入成功");}catch (SQLException ex) {System.err.println("SQLException: "+ex.getMessage());}}public void showResultSet(ResultSet rs){try {if(rs.next())fields.tel.setText(rs.getString(2));elsefields.tel.setText("找不到合乎条件的记录");}catch (SQLException e3) {e3.printStackTrace();ta.append("\n"+e3.toString()+"\n");}}package com.tel;//设计按钮import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;public class TelButtons extends JPanel{public TelButtons() {try {jbInit();}catch (Exception ex) {ex.printStackTrace();}}private JButton findButton,addButton,updateButton; private JButton sqlButton,deleteButton,helpButton;public TelButtons(Connection c,TelFields f,JTextArea ta) {setLayout(new GridLayout(1,6));findButton=new JButton("查找");findButton.addActionListener(new TelFind(c,f,ta));add(findButton);addButton=new JButton("添加");addButton.addActionListener(new TelAdd(c, f, ta));add(addButton);updateButton=new JButton("更新");updateButton.addActionListener(new TelUpdate(c, f, ta));add(updateButton);deleteButton=new JButton("删除");deleteButton.addActionListener(new TelDelete(c, f, ta));add(deleteButton);helpButton=new JButton("说明");helpButton.addActionListener(new TelHelp(ta));add(helpButton);}private void jbInit() throws Exception {}package com.tel;//"删除"功能代码import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;public class TelDelete implements ActionListener{private TelFields fields;private JTextArea ta;private Connection con;public TelDelete(Connection c,TelFields f,JTextArea a){con=c;fields=f;ta=a;}public void actionPerformed(ActionEvent e){try {Statement stmt=con.createStatement();if (!fields.tel.getText().equals("")) {//用delete语句删除数据String query="delete from tongxun where tel='"+fields.tel.getText()+"'";ta.setText("SQL 查询: \n"+query+"\n");int result=stmt.executeUpdate(query);if(result==1)ta.append("删除成功\n");else{ta.append("删除失败\n");.setText("");fields.tel.setText("");}stmt.close();}else {ta.setText("您只可删除已有记录\n");}}catch (SQLException e2) {e2.printStackTrace();ta.append("\n"+e2.toString()+"\n");}package com.tel;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class TelFields extends JPanel{private JPanel labelPanel,fieldPanel;private String[] labels={"姓名:","电话:"};JTextField name,tel;public TelFields(){labelPanel=new JPanel();labelPanel.setLayout(new GridLayout(labels.length,1));for(int i=0;i<labels.length;i++)labelPanel.add(new JLabel(labels[i],0));fieldPanel=new JPanel();fieldPanel.setLayout(new GridLayout(labels.length,1));name=new JTextField(10);fieldPanel.add(name);tel=new JTextField(12);fieldPanel.add(tel);setLayout(new GridLayout(1,2));add(labelPanel);add(fieldPanel);}}package com.tel;//"查询"功能代码import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;public class TelFind implements ActionListener{private TelFields fields;private JTextArea ta;private Connection con;public TelFind(Connection c,TelFields f,JTextArea a) {con=c;fields=f;ta=a;public void actionPerformed(ActionEvent e){try {if (!.getText().equals("")) {Statement stmt=con.createStatement();//用select语句查询,关键字为name中的信息String query="SELECT * FROM tongxun WHERE Name LIKE'%"+.getText()+"%'";ta.setText("SQL 查询: \n"+query+"\n");ResultSet rs=stmt.executeQuery(query);showResultSet(rs);ta.append("查询成功\n");stmt.close();}else {ta.setText("请输入姓名后按查找按钮\n");}}catch (SQLException e2) {e2.printStackTrace();ta.append("\n"+e2.toString()+"\n");}}public void showResultSet(ResultSet rs){try {if(rs.next()){ta.append(rs.getString(1)+"\t"+rs.getString(2)+"\n");while(rs.next())ta.append(rs.getString(1)+"\t"+rs.getString(2)+"\n");}elsefields.tel.setText("找不到合乎条件的记录");}catch (SQLException e3) {e3.printStackTrace();ta.append("\n"+e3.toString()+"\n");}}}package com.tel;import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;{private JTextArea ta;public TelHelp(JTextArea a){ta=a;}public void actionPerformed(ActionEvent e){ta.setText(" 按钮操作说明\n"+"查找按钮: 输入姓名后按查找按钮找记录\n"+"添加按钮: 输入姓名及电话后按加入按钮加入一条记录\n"+"更新按钮: 输入姓名及电话后按更新按钮更新一条记录\n"+"删除按钮: 输入电话后按删除按钮删除一条记录\n");}}package com.tel;//以JDBC-ODBC桥接方式连接数据库Telimport java.io.*;import java.sql.*;class TelQuery{public static void main(String[] args){try{//新建适用的JDBC驱动类Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException ce){System.out.println("SQLException: "+ce.getMessage());}try{//通过JDBC URL取得数据库连接Connectioncon=DriverManager.getConnection("jdbc:odbc:tongxunDS");//建立SQL语句对象Statement stmt=con.createStatement();//执行SQL语句及接收返回结果ResultSet rs=stmt.executeQuery("select * from tongxun");while(rs.next())System.out.println("姓名:"+rs.getString(1)+"\t"+"电话号码:"+rs.getString(2));}stmt.close();con.close();}catch(SQLException e){System.out.println("SQLException: "+e.getMessage());}}}package com.tel;//自定义sql语句功能import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;public class TelSql implements ActionListener{public TelSql() {try {jbInit();}catch (Exception ex) {ex.printStackTrace();}}private JTextArea ta;private Connection con;public TelSql(Connection c,JTextArea a){con=c;ta=a;}public void actionPerformed(ActionEvent e){try {String query=JOptionPane.showInputDialog("请输入SQL语句如select * from tongxun");//直接将输入的sql语句赋给queryif (query.length()==0) query="select * from tongxun";ResultSet rs=stmt.executeQuery(query);ta.setText("SQL语句: "+query+ "\n");while(rs.next())ta.append(rs.getString(1)+"\t"+rs.getString(2)+"\n");}catch (SQLException ex) {System.err.println("SQLExcetption: "+ex.getMessage());}}private void jbInit() throws Exception {}}package com.tel;//"修改"功能代码import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;public class TelUpdate implements ActionListener{private TelFields fields;private JTextArea ta;private Connection con;public TelUpdate(Connection c,TelFields f,JTextArea a){con=c;fields=f;ta=a;}public void actionPerformed(ActionEvent e){try {Statement stmt=con.createStatement();if ((!.getText().equals(""))&&(!fields.tel.getText().equals(""))) {/*PreparedStatement pstmt=con.prepareStatement("UPDATE Tel SET Tel=? WHERE Name=?");*///可以用update语句修改数据String name=.getText();String tel=fields.tel.getText();//也可以以先删除、后添加的方式更新String query="delete from tongxun where tel='"+tel+"'";stmt.executeUpdate(query);String newTel=JOptionPane.showInputDialog("请输入"+name+"的新的电话号码: ");if (newTel.length()==0) query="insert into tongxun values('"+name+"','"+tel+"')";stmt.executeUpdate(query);ta.setText(/*"SQL 语句: \nUPDATE TeL SET TeL='" + tel + "' WHERE Name='" + name + "')" + */"\n更新成功");}else {ta.setText("您只可对已有记录更新\n");}}catch (SQLException e2) {e2.printStackTrace();ta.append("\n"+e2.toString()+"\n");}}}package com.tel;//以JDBC-ODBC桥接方式连接数据库Tel,并启动该程序import java.sql.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class TelMain extends JFrame{private TelButtons buttons;private TelFields fields;private JTextArea ta;private String url;private Connection con;private JScrollPane scrollPane;public TelMain(){super("电话簿");Container c=getContentPane();fields=new TelFields();ta=new JTextArea(7,30);c.setLayout(new BorderLayout());c.add(new JScrollPane(fields),BorderLayout.CENTER);scrollPane=new JScrollPane(ta);c.add(scrollPane,BorderLayout.SOUTH);try {url="jdbc:odbc:tongxunDS";//新建适用的JDBC驱动类Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//通过JDBC URL取得数据库连接con=DriverManager.getConnection(url);ta.setText("链接成功");word格式-可编辑-感谢下载支持catch (ClassNotFoundException cnfex) {cnfex.printStackTrace();ta.setText(cnfex.toString());}catch(SQLException sqlex){sqlex.printStackTrace();ta.setText(sqlex.toString());}catch(Exception ex){ex.printStackTrace();ta.setText(ex.toString());}buttons=new TelButtons(con,fields,ta);c.add(buttons,BorderLayout.NORTH);setSize(400,250);show();try {jbInit();}catch (Exception ex) {ex.printStackTrace();}}public static void main(String[] args){TelMain telMain=new TelMain();telMain.addWindowListener(new MyWindowListener()); }private void jbInit() throws Exception {}}。
通讯录管理系统源代码
源代码#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct _EmployeeInformation{int number;char name[20];char sex[20];char birthday[20];char job[20];char salary[20];char telephone[20];}EmployeeInformation;void viewall(EmployeeInformation employee[], int a);//查询所有职工的信息函数声明void viewa(EmployeeInformation employee[], int b);//查询一个职工的信息函数声明void add(EmployeeInformation employee[], int c);//新增一个职工的信息函数声明void delet(EmployeeInformation employee[], int d);//删除一个职工的信息函数声明void modify(EmployeeInformation employee[], int e);//修改一个职工的信息函数声明int main(){EmployeeInformation employee[100];EmployeeInformation a[1] = {0};int choice2, x = 0, i, j;char choice1 = 'y';FILE *fp;if((fp = fopen("d:\\EmployeeInfo.txt","r")) == NULL) //判断该文件是否存在,如否则提示,否则读出{printf("File open error!\n");exit(0);}fp = fopen("d:\\EmployeeInfo.txt","r");while(! feof(fp)){fscanf(fp,"%d %s %s %s %s %s %s\n",&employee[x].number,employee[x].name,employee[x].sex,employee[x].birthday,employee[x].job,employee[x].salary,employee[x].telephone);x ++;}fclose(fp);do{system("color 1f");printf("=====Welcome to Employee Management System!=====\n");printf("* 1.View All Employee Information. #\n");printf("# 2.View A Employee Information. *\n");printf("* 3.Add Employee Information. #\n");printf("# 4.Delete Employee Information. *\n");printf("* 5.Modify Employee Information. #\n");printf("# 6.Exit. *\n");printf("================================================\n");printf("Please Select:");scanf("%d", &choice2);switch(choice2){case 1: //查询所有职工的信息system("color 2f");viewall(employee, x);printf("y -> 继续系统n-> 退出系统\n");fflush(stdin);scanf("%c", &choice1);system("cls");break;case 2: //查询一个职工的信息system("color 3f");while(choice2 == 2){viewa(employee, x);printf("2->Countinue 0->Stop\n");scanf("%d",&choice2);}printf("y -> 继续系统n -> 退出系统\n");fflush(stdin);scanf("%c", &choice1);system("cls");break;case 3: //新增一个职工的信息system("color 4f");while(choice2 == 3){add(employee, x);x ++;printf("3->Countinue 0->Stop\n");scanf("%d", &choice2);}printf("y -> 继续系统n-> 退出系统\n");fflush(stdin);scanf("%c", &choice1);system("cls");break;case 4: //删除一个职工的信息system("color 5f");while(choice2 == 4){printf("Please input you want to delete number:");delet(employee, x);x --;printf("4->Countinue 0->Stop\n");scanf("%d", &choice2);}printf("y -> 继续系统n -> 退出系统\n");fflush(stdin);scanf("%c", &choice1);system("cls");break;case 5: //修改一个职工的信息system("color 6f");while(choice2 == 5){printf("Please input you want to modify number:");modify(employee, x);printf("5->Countinue 0->Stop\n");scanf("%d",&choice2);}printf("y -> 继续系统n -> 退出系统\n");fflush(stdin);scanf("%c", &choice1);system("cls");break;case 6: //退出系统system("color 7f");printf("Thank you for using this system!\n");printf("Press enter to exit……\n");exit(0);default: //提醒输入有误system("color 8f");printf("Your input is wrong.\n");printf("y -> 继续系统n -> 退出系统\n");fflush(stdin);scanf("%c", &choice1);system("cls");break;}}while(choice1 == 'y');for(j = 0; j < x-1; j ++) //冒泡排序,将职工按职工号大小进行排序{for(i = 0; i <= x-2 ; i ++){if(employee[i].number > employee[i+1].number){a[0] = employee[i];employee[i] = employee[i+1];employee[i+1] = a[0];}}}fp=fopen("d:\\EmployeeInfo.txt","w"); //新建文本并写入职工信息for(i = 0; i < x; i ++){fprintf(fp,"%d %s %s %s %s %s %s\n",employee[i].number,employee[i].name,employee[i].sex,employee[i].birthday,employee[i].job,employee[i].salary,employee[i].telephone);}fclose(fp);system("color 9f");printf("Thank you for using this system!\n");printf("Pres s enter to exit……\n");return 0;}void viewall(EmployeeInformation employee[], int a) //查询所有职工的信息{int i,j;EmployeeInformation b[1] = {0};for(j = 0; j < a-1; j ++) //冒泡排序,将从文本读出的职工信息按职工号大小进行排序{for(i = 0; i <= a-2 ; i ++){if(employee[i].number > employee[i+1].number){b[0] = employee[i];employee[i] = employee[i+1];employee[i+1] = b[0];}}}printf("Number\t \tName\tSex\tBir\tJob\tSalary\tTelephone\n");for(i = 0; i < a; i ++) //打出所有职工的信息{printf("%d\t",employee[i].number);printf("%s\t",employee[i].name);printf("%s\t",employee[i].sex);printf("%s\t",employee[i].birthday);printf("%s\t",employee[i].job);printf("%s\t",employee[i].salary);printf("%s\n",employee[i].telephone);}}void viewa(EmployeeInformation employee[], int b) //查询一个职工的信息{int i, flag, num;printf("Please input you want to search number:\n");scanf("%d", &num);flag = -1;for(i = 0; i < b; i ++) //将输入的号码与原有比较,如没有则提醒,否则继续{if(num == employee[i].number){flag = i;break;}}if(flag >= 0){printf("Number\t \tName\tSex\tBir\tJob\tSalary\tTelephone\n");printf("%d\t", employee[i].number);printf("%s\t", employee[i].name);printf("%s\t", employee[i].sex);printf("%s\t", employee[i].birthday);printf("%s\t", employee[i].job);printf("%s\t", employee[i].salary);printf("%s\n", employee[i].telephone);}else{printf("Not have this employee information.\n");}}void add(EmployeeInformation employee[], int c) //新增一个职工的信息{int i, num, flag;printf("Please input you want to add employee's informatoin:\n");printf("Number:");scanf("%d", &num);flag = -1;for(i = 0; i < c; i ++) //将输入的号码与原有比较,如已有则提醒,否则继续{if(num == employee[i].number){flag = i;break;}}if(flag >= 0){printf("There have had this employee information.\n");printf("Number\t \tName\tSex\tBir\tJob\tSalary\tTelephone\n");printf("%d\t", employee[i].number);printf("%s\t", employee[i].name);printf("%s\t", employee[i].sex);printf("%s\t", employee[i].birthday);printf("%s\t", employee[i].job);printf("%s\t", employee[i].salary);printf("%s\n", employee[i].telephone);}else{employee[c].number = num;printf("Name:");scanf("%s", employee[c].name);printf("Sex:");scanf("%s", employee[c].sex);printf("Birthday:");scanf("%s", employee[c].birthday);printf("Job:");scanf("%s", employee[c].job);printf("Salary:");scanf("%s", employee[c].salary);printf("Telephone:");scanf("%s", employee[c].telephone);printf("Add success!\n");}}void delet(EmployeeInformation employee[], int d) //删除一个职工的信息{int i, k, flag, num, choice4;scanf("%d", &num);flag = -1;for(i = 0; i < d; i ++) //将输入的号码与原有比较,如没有该职工则提醒,否则继续{if(num == employee[i].number){flag = i;k = i;break;}}if(flag >= 0){printf("Number\t \tName\tSex\tBir\tJob\tSalary\tTelephone\n");printf("%d\t",employee[i].number);printf("%s\t",employee[i].name);printf("%s\t",employee[i].sex);printf("%s\t",employee[i].job);printf("%s\t",employee[i].salary);printf("%s\n",employee[i].telephone);printf("Do you really want to delet this employee information.\n");printf("1->Yes 2->No\n");scanf("%d", &choice4);if(choice4 == 1) //将要删除的信息用后面的覆盖掉,以达到删除的目的{for(k = i; k < d-1; k ++){employee[k] = employee[k + 1];}}printf("Delete success!\n");}else{printf("Not have this employee information.\n");}}void modify(EmployeeInformation employee[], int e) //修改一个职工的信息{int i, flag, num, choice5;scanf("%d", &num);flag = -1;for(i = 0; i < e; i ++) //将输入的号码与原有比较,如没有该职工则提醒,否则继续{if(num == employee[i].number){flag = i;break;}}if(flag >= 0){printf("Number\t \tName\tSex\tBir\tJob\tSalary\tTelephone\n");printf("%d\t", employee[i].number);printf("%s\t", employee[i].name);printf("%s\t", employee[i].sex);printf("%s\t", employee[i].birthday);printf("%s\t", employee[i].job);printf("%s\n", employee[i].telephone);printf("Do you really want to change this employee information.\n");printf("1->Yes 2->No\n");scanf("%d", &choice5);if(choice5 == 1) //重新编辑职工的信息{printf("New number:");scanf("%d", &employee[i].number);printf("New name:");scanf("%s", employee[i].name);printf("New sex:");scanf("%s", employee[i].sex);printf("New birthday:");scanf("%s", employee[i].birthday);printf("New job:");scanf("%s", employee[i].job);printf("New salary:");scanf("%s", employee[i].salary);printf("New telephone:");scanf("%s", employee[i].telephone);printf("Modify success!\n");}}else{printf("Not have this employee information.\n");}}。
Java实现简单通讯录管理系统
Java实现简单通讯录管理系统本⽂实例为⼤家分享了Java实现通讯录管理系统的具体代码,供⼤家参考,具体内容如下题⽬:1、完成⼀个通讯录,需求:(1)添加联系⼈(联系⼈:编号,姓名,⼿机号,QQ,邮箱地址)添加时需要检查⼿机号和邮箱地址格式是否正确,若不正确,不允许添加(2)联系⼈查询(输⼊姓名或电话查询)(3)显⽰联系⼈列表(4)根据编号删除指定编号的联系⼈代码分析:之前写过类似的管理系统,不过是使⽤数组进⾏数据存储,这次的通讯录管理系统通过动态数组ArrayList进⾏数据存储。
其中代码实现的原理和之前所写相似。
在此不再赘述。
判断⼿机号邮箱地址格式是否格式正确使⽤了正则表达式进⾏判断,如果输⼊错误则输出提⽰语句,并重新输⼊正确格式,递归实现。
其中修改⼿机号的⽅法和删除⽤户类似,顺带写了⼀下,没有进⾏实现,感兴趣的朋友可以⾃⼰进⾏实现测试⼀下。
代码实现:⽤户类:package com.softeem.j2106.work;/*** @author admin* 2021/7/26*/public class User {private int no;private String name;private String phone;private String QQ;private String email;public User() {}public User(int no, String name, String phone, String QQ, String email) {this.no = no; = name;this.phone = phone;this.QQ = QQ;this.email = email;}public int getNo() {return no;}public void setNo(int no) {this.no = no;}public String getName() {return name;}public void setName(String name) { = name;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}public String getQQ() {return QQ;}public void setQQ(String QQ) {this.QQ = QQ;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}@Overridepublic String toString() {return "User{" +"no=" + no +", name='" + name + '\'' +", phone='" + phone + '\'' +", QQ='" + QQ + '\'' +", email='" + email + '\'' +'}';}}⽤户管理类:public class UserMange {static ArrayList<User> s = new ArrayList<>();public boolean addUser(User user){return s.add(user);}public ArrayList showInfo(){return s;}public User searchByName(String name){for (User user : s) {if (Objects.equals(name,user.getName()) ||Objects.equals(name,user.getPhone())){ return user;}}return null;}public boolean updatePhone(int no,String phone){User user = null;for(User u:s) {if(no == u.getNo()) {u.setPhone(phone);break;}}if(user == null) {System.out.println("该⽤户不存在");return false;}System.out.println("修改成功!");return true;}public boolean delUser(int no){User user = null;for(User u:s) {if(no == u.getNo()) {user = u;break;}}if(user == null) {System.out.println("该⽤户不存在");return false;}return s.remove(user);}}测试类:public class Test2 {static UserMange user = new UserMange();static Scanner sc = new Scanner(System.in);public static void start(){System.out.println("=======SOFTEEM通讯录管理系统=====");System.out.println("【1】添加联系⼈");System.out.println("【2】联系⼈查询");System.out.println("【3】显⽰联系⼈列表");System.out.println("【4】根据编号删除指定编号的联系⼈");System.out.println("=============================");int i = sc.nextInt();switch (i){case 1:add();start();break;case 2:System.out.println("【1】通过联系⼈姓名查询/【2】通过联系⼈电话查询"); int a = sc.nextInt();findbyName(a);start();break;case 3:show();start();break;case 4:del();start();break;case 0:System.out.println("谢谢使⽤,再见!");System.exit(0);break;default:System.out.println("请输⼊正确的指令!");start();break;}}public static void add(){System.out.println("请输⼊联系⼈编号:");int a = sc.nextInt();System.out.println("请输⼊联系⼈姓名:");String b = sc.next();System.out.println("请输⼊联系⼈⼿机号:");String c = sc.next();judgePhone(c);System.out.println("请输⼊联系⼈QQ:");String d = sc.next();System.out.println("请输⼊联系⼈邮箱地址:");String e = sc.next();judgeEmail(e);User x = new User(a,b,c,d,e);if(user.addUser(x)){System.out.println("添加成功!");}}public static void judgePhone(String phone){if (phone.matches("1[34589][0-9]{9}")){}else {System.out.println("⼿机号输⼊有误,请重新输⼊");String v = sc.next();judgePhone(v);}}public static void judgeEmail(String email){if (email.matches("[A-Za-z0-9]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)")){}else {System.out.println("邮箱格式输⼊有误,请重新输⼊");String v = sc.next();judgeEmail(v);}}public static void findbyName(int a){if (a==1){System.out.println("请输⼊联系⼈姓名");}else {System.out.println("请输⼊联系⼈电话");}String name = sc.next();User user = er.searchByName(name);System.out.println(user);}public static void show(){ArrayList list = user.showInfo();for (Object o : list) {System.out.println(o);}}public static void del(){System.out.println("请输⼊编号");int no = sc.nextInt();if(user.delUser(no)){System.out.println("删除成功");}}public static void main(String[] args) {start();}}以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
个人通讯录java代码完整版
个人通讯录java代码完整版importjava.awt.choice;importjava.awt.container;importjava.awt.gridlayout;impor tjava.awt.menuitem;importjava.awt.event.actionevent;importjava.awt.event.actionlistener;importjav a.awt.print.printable;importjava.io.bufferedreader;importjava.io.file;importjava.io.filenotfoundexception;importjava.io.filereader;importjava.io.fil ewriter;importjava.io.ioexception;importjava.io.printwriter;importjava.text.co llator;importjava.util.arrays;importjavax.swing.jbutton;importjavax.swing.jdialog;importjavax.swing.jframe;i mportjavax.swing.jlabel;importjavax.swing.jmenubar;importjavax.swing.jmenu;imp ortjavax.swing.jmenuitem;importjavax.swing.joptionpane;importjavax.swing.jpane l;importjavax.swing.jtextarea;importjavax.swing.jtextfield;importjavax.swing.windowconstants;publicclassmyaddbook{publicstaticjframeframe ;publicmyaddbook(){frame=newjframe(\个人通讯录\frame.setdefaultcloseoperation(jframe.exit_on_close);frame.setvisible(true);j menubarmenubar=newjmenubar();jmenuedit=newjmenu(\编辑\jmenuitemedit1=newjmenuitem(\打印\jmenuitemedit2=newjmenuitem(\查阅\jmenuitemedit3=newjmenuitem(\删掉\jmenuitemedit4=newjmenuitem(\修正\jmenuitemedit5=newjmenuitem(\排序\edit1.addactionlistener(newtypein());jmenushow=newjmenu(\显示信息\jmenuitemshow1=newjmenuitem(\同学\jmenuitemshow2=newjmenuitem(\同事\jmenuitemshow3=newjmenuitem(\朋友\jmenuitemshow4=newjmenuitem(\亲戚\jmenuitemshow5=newjmenuitem(\全体人员\containerc=frame.getcontentpane();jpanelpane=newjpanel();c.add(pane);pane.add(menubar);menubar.add(edit);edit.add(edit1);edit.add(edit2);edit.add(e dit3);edit.add(edit4);edit.add(edit5);menubar.add(show);show.add(show1);show.add(show2);show.add(show3);show.add(sho w4);show.add(show5);frame.setsize(300,100);//frame.pack();//查阅修正删掉classsearch{jdialogdialog=newjdialog(frame,\查询对话框\publicsearch(stringstr,intn){dialog.setsize(250,200);containerc=dialog.getcon tentpane();dialog.setlayout(newgridlayout(2,1,5,5));jlabellsearch=newjlabel(\恳请输出必须\人员的名字:\finaljtextfieldtname=newjtextfield(10);jbuttoncertain=newjbutton(\确认\jbuttoncancel=newjbutton(\中止\//finalstringin=tname.gettext();jpanelpane1=newjpanel();jpanelpane2=newjpanel ();c.add(pane1);c.add(pane2);pane1.add(lsearch);pane1.add(tname);pane2.add(certain);pane2.add(cancel);dialog.setdefaultcloseoperation(dialog.dispose_on_close);//dialog.setdefaultcloseoperation(windowconstants.dispose_on_close);if(n==2){certain.addactionlistener(newactionlistener(){//查询publicvoidactionperformed(actionevente){}});}if(n==3){try{filereaderfile=newfilereader(\scannerfind=newscanner(file);while(find.hasn ext()){if(find.next().equals(tname.gettext())){dialog.dispose();typeinfd=newty pein();fd.frame=newjframe(\查询结果如下\fd.tname.settext(tname.gettext());fd.cgroup.select(find.next());fd.cbirthyear. select(find.next());fd.cbirthmonth.select(find.next());fd.cbirthday.select(fin d.next());fd.tphone.settext(find.next());fd.temail.settext(find.next());fd.tot her.settext(find.next());fd.typein();}}file.close();find.close();}catch(filenotfoundexceptione1){//todoauto-generatedcatchblock//e1.printstacktrace();system.out.print(\未找到文件\}catch(ioexceptione2){//todoauto-generatedcatchblock//e2.printstacktrace();system.out.print(\未找到该人员\}certain.addactionlistener(newactionlistener()//删除{publicvoidactionperformed(actionevente){try{filefile=newfile(\scannerfind=new scanner(file);filewriterfile1=newfilewriter(\printwriterwrite=newprintwriter(f ile1);while(find.hasnext()){strings=find.next();if(!(s.equals(tname.gettext()) )){write.print(s+'\\t');write.print(find.next()+'\\t');write.print(find.next() +'');write.print(find.next()+'');write.print(find.next()+'\\t');write.print(fi nd.next()+'\\t');write.print(find.next()+'\\t');write.println(find.next());}el se{find.next();find.next();find.next();find.next();find.next();find.next();fin d.next();}}//file.close();find.close();file.delete();write.close();file1.close ();filefile2=newfile(\file2.renameto(newfile(\joptionpane.showmessagedialog(nu ll,\删除成功\\删除结果\}catch(filenotfoundexceptione1){//todoauto-generatedcatchblock//e1.printstacktrace();joptionpane.showmessagedialog(null,\未找到文件\}catch(ioexceptione2){//todoauto-generatedcatchblock//e2.printstacktrace();system.out.print(\未找到该人员\}}});}if(n==4){certain.addactionlistener(newactionlistener()//修改{publicvoidactionperformed(actionevente){try{filefile=newfile(\scannerfind=new scanner(file);filewriterfile1=newfilewriter(\printwriterwrite=newprintwriter(f ile1);while(find.hasnext()){strings=find.next();if(!(s.equals(tname.gettext()) )){write.print(s+'\\t');write.print(find.next()+'\\t');write.print(find.next() +'');write.print(find.next()+'');write.print(find.next()+'\\t');write.print(fi nd.next()+'\\t');write.print(find.next()+'\\t');write.println(find.next());}el se{dialog.dispose();typeinfd=newtypein();typein.y=1;fd.frame=newjframe(\查询结果如下\fd.tname.settext(tname.gettext());strings1=find.next();fd.cgroup.select(s1);s trings2=find.next();fd.cbirthyear.select(s2);strings3=find.next();fd.cbirthmon th.select(s3);。
简易通讯录代码
import java.awt.*;import java.awt.event.*;import java.sql.*;public class Main extends Frame implements ActionListener { //主类// Toolkit.getDefaultToolkit()→获取默认工具包public Toolkit tool = Toolkit.getDefaultToolkit();Label lab1, lab2, lab3, lab4, lab5, lab6;TextField txt1, txt2, txt3, txt4, txt5, txt6;Button but1, but2, but3;public void showWindow() { //显示窗体类// 获取屏幕的x,y坐标int x = tool.getScreenSize().width;int y = tool.getScreenSize().height;setBounds(x / 2 - 250, y / 2 - 275, 500, 450);setLayout(null);lab1 = new Label("学号:");lab2 = new Label("姓名:");lab3 = new Label("性别:");lab4 = new Label("电话:");lab5 = new Label("QQ:");lab6 = new Label("住址:");add(lab1);add(lab2);add(lab3);add(lab4);add(lab5);add(lab6);lab1.setBounds(getWidth() - 450, getHeight() - 400, 50, 30);lab2.setBounds(getWidth() - 450, getHeight() - 350, 50, 30);lab3.setBounds(getWidth() - 450, getHeight() - 300, 50, 30);lab4.setBounds(getWidth() - 450, getHeight() - 250, 50, 30);lab5.setBounds(getWidth() - 450, getHeight() - 200, 50, 30);lab6.setBounds(getWidth() - 450, getHeight() - 150, 50, 30);txt1 = new TextField("2009406001");txt2 = new TextField();txt3 = new TextField();txt4 = new TextField();txt5 = new TextField();txt6 = new TextField();// 设置文本框位置setBounds(int x,int y,int w,int h);txt1.setBounds(getWidth() - 400, getHeight() - 400, 350, 30); txt2.setBounds(getWidth() - 400, getHeight() - 350, 350, 30); txt3.setBounds(getWidth() - 400, getHeight() - 300, 350, 30); txt4.setBounds(getWidth() - 400, getHeight() - 250, 350, 30); txt5.setBounds(getWidth() - 400, getHeight() - 200, 350, 30); txt6.setBounds(getWidth() - 400, getHeight() - 150, 350, 30);add(txt1);add(txt2);add(txt3);add(txt4);add(txt5);add(txt6);// 添加按钮but1 = new Button("上一个");but2 = new Button("查询");but3 = new Button("下一个");but1.setBounds(getWidth() - 450, 380, 100, 30);but2.setBounds(getWidth() / 2 - 50, 380, 100, 30);but3.setBounds(getWidth() / 2 + 110, 380, 100, 30);add(but1);add(but2);add(but3);// 添加事件驱动but1.addActionListener(this);but2.addActionListener(this);but3.addActionListener(this);txt1.addActionListener(this);addWindowListener(new WindowAdapter(){ //添加关闭监视器public void windowClosing(WindowEvent e){System.exit(0);}});setVisible(true);validate();setResizable(false);but1.setV isible(false);but3.setV isible(false);}public void actionPerformed(ActionEvent e) { //添加动作监听// 连接数据库,并进行编程if (e.getActionCommand() == "上一个") {//上一个代码开使String a=txt1.getText();int i=Integer.parseInt(a);i=i-1;Connection con;Statement sql;ResultSet rs;try{con=DriverManager.getConnection("jdbc:odbc:小小通讯录","admin","admin");sql=con.createStatement();rs=sql.executeQuery("SELECT * FROM information where 学号= '"+i+"' ");while(rs.next()){String number1=rs.getString(1);//学号String number2=rs.getString(2);//姓名String number3=rs.getString(3);//性别String number4=rs.getString(4);//联系电话String number5=rs.getString(5);//联系QQString number6=rs.getString(6);//家庭住址txt1.setText(number1);txt2.setText(number2);txt3.setText(number3);txt4.setText(number4);txt5.setText(number5);txt6.setText(number6);}con.close();}catch(SQLException e1){System.out.println(e1);}//上一个代码结束}if (e.getActionCommand() == "查询") {//如果单击“查询”按钮则:but1.setV isible(true);but3.setVisible(true);String a=txt1.getText();Connection con;Statement sql;ResultSet rs;try{con=DriverManager.getConnection("jdbc:odbc:小小通讯录","admin","admin");sql=con.createStatement();rs=sql.executeQuery("SELECT * FROM information where 学号= '"+a+"' ");while(rs.next()){String number2=rs.getString(2);//姓名String number3=rs.getString(3);//性别String number4=rs.getString(4);//联系电话String number5=rs.getString(5);//联系QQString number6=rs.getString(6);//家庭住址txt2.setText(number2);txt3.setText(number3);txt4.setText(number4);txt5.setText(number5);txt6.setText(number6);}con.close();}catch(SQLException e1){System.out.println(e1);//查询代码结束}}if (e.getActionCommand() == "下一个"){//单击按钮“下一个”//下一个开始String a=txt1.getText();int i=Integer.parseInt(a);i=i+1;Connection con;Statement sql;ResultSet rs;try{con=DriverManager.getConnection("jdbc:odbc:小小通讯录","admin","admin");sql=con.createStatement();rs=sql.executeQuery("SELECT * FROM information where 学号= '"+i+"' ");while(rs.next()){String number1=rs.getString(1);//学号String number2=rs.getString(2);//姓名String number3=rs.getString(3);//性别String number4=rs.getString(4);//联系电话String number5=rs.getString(5);//联系QQString number6=rs.getString(6);//家庭住址txt1.setText(number1);txt2.setText(number2);txt3.setText(number3);txt4.setText(number4);txt5.setText(number5);txt6.setText(number6);}con.close();}catch(SQLException e1){System.out.println(e1);}//下一个结束}}public static void main(String args[]) { //main方法Main m = new Main();m.showWindow();}}。
Java课程设计--个人通讯录管理系统
《JAVA程序设计》课程设计说明书目录1 引言 01.1课程设计选题 01.2课程设计的目的 01.3本选题的设计背景 02 需求分析 02.1 功能需求 02.2 系统的开发运行环境 (1)3 总体设计 (1)3.1 系统体系结构设计 (1)3.2系统功能模块及主要类设计 (2)3.3数据库设计 (4)4 详细设计与实现 (6)4.1 登录模块 (6)4.2 注册新用户模块 (7)4.3 查询模块 (8)4.4 添加模块 (10)4.5 修改模块 (12)4.6删除模块 (15)4.7备份模块 (17)4.8退出模块 (18)5 小结和展望 (19)参考文献 (20)附录 (21)使用说明书 (21)1引言1.1课程设计选题《个人通讯录管理系统》1.2课程设计的目的通过编写并调试一个Java应用软件,熟悉和掌握使用Java开发应用程序的完整过程。
使学生巩固和加深以Java 语言为基础的面向对象编程技术理论知识的理解,提高实际动手编程能力的培养,掌握以Java为核心的应用软件开发方案,达到能独立阅读、编制和调试一定规模的Java程序的水平。
1.3本选题的设计背景一直以来就想做一个比较实用的通讯录管理系统,这样可以方便我对于身边联系人信息的管理,防止遗忘和丢失。
在这样一个信息化的社会里,人们的生活也越来越离不开电脑了,本次通过做个人通讯录管理系统,希望摈弃传统的纸质记录的弊端,发挥电脑软件的优势,方便人们对自己的联系人信息的管理。
2需求分析2.1 功能需求2.1.1个人通讯录功能需求(1)登陆功能。
用户可以直接输入用户名和密码,登陆进入通讯录的主功能界面。
(2)注册功能。
其他用户可以输入自己的用户名和密码及确认密码,来实现注册成为该通讯录的使用者。
(3)查询功能。
在该功能里,用户可以采用模糊查询和精确查询两种查询方式来对自己存储的联系人信息进行查询。
(4)添加功能。
在该功能里,用户可以添加自己的常用联系人和分组信息。
Java通讯录代码
Java 通讯录项目----------mainWindowjava 2008-03-09 22:51:04 阅读29 评论0字号:大中小package miniBook;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class MainWindow {Controler controler;public MainWindow(){System.out.println("\t\t=============请选择你要操纵的项目===============");System.out.println("\t\t 1.[添加]");System.out.println("\t\t 2.[查询]");System.out.println("\t\t 3.[编辑]");System.out.println("\t\t 4.[退出]");}public void chooseOption(){String inputNumber=null;BufferedReader br =new BufferedReader(new InputStreamReader(System.in));try {inputNumber=br.readLine();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}int option;if(isDigital(inputNumber)){option=new Integer(inputNumber);controler=new Controler();switch(option){case 1: controler.add(); break;case 2: controler.query(); break;case 3: controler.edit(); break;case 4: System.exit(0); break;default: System.out.println("输入错误,请输入1------------4进行选择");}}else{System.out.println("请输入数字!");}}public boolean isDigital (String str){boolean isDigital = true;for(int i=1;i<str.length();i++){char ch = str.charAt(i);if(ch<57&&ch>48){isDigital=false;break;}else{System.out.println("输入错误");}}return isDigital;}Java 通讯录项目----------Loginjava 2008-03-09 22:50:28 阅读23 评论0字号:大中小package miniBook;import java.io.BufferedReader;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;import java.util.Properties;public class Login {MainWindow mainWindow;public Login(){System.out.println("==============欢迎进入登录页面============="); }public void validate(){Properties pro =new Properties ();try{pro.load(new FileInputStream("admin.properties"));}catch(Exception e){e.printStackTrace();}String userName = pro.getProperty("");String password = pro.getProperty("admin.password");BufferedReader br =new BufferedReader(new InputStreamReader(System.in));String inputUserName = null,inputPassword=null;int inputUserNameCount=0,inputPasswordCount=0;do{System.out.println("请输入用户名");try {inputUserName = br.readLine();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}if(userName.equals(inputUserName)){System.out.println("请输入密码");try {inputPassword=br.readLine();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}if(password.equals(inputPassword)){mainWindow = new MainWindow();mainWindow.chooseOption();break;}else{inputPasswordCount++;System.out.println("密码输入错误,请重新输入,你还有"+(3-inputPasswordCount)+"次机会");if(inputPasswordCount==3){System.exit(0);}}}else{inputUserNameCount++;System.out.println("用户名输入错误,请重新输入,你还有"+(3-inputUserNameCount)+"次机会");if(inputUserNameCount==3){break;}}}while(inputUserNameCount<=3||inputPasswordCount<=3);}}Java 通讯录项目----------Controler默认分类2008-03-09 22:51:31 阅读36 评论0字号:大中小package miniBook;import java.io.BufferedReader;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.util.Properties;public class Controler {public Controler(){}public void add(){System.out.println("===================添加====================");Properties pro = new Properties();BufferedReader br =new BufferedReader(new InputStreamReader(System.in));StringinputAddInfoName=null,inputAddInfoAge=null,inputAddInfoSex=null,inputAddInfoPhone=null;try {System.out.println("用户名");inputAddInfoName=br.readLine();System.out.println("年龄");inputAddInfoAge=br.readLine();System.out.println("性别");inputAddInfoSex=br.readLine();System.out.println("电话号");inputAddInfoPhone=br.readLine();} catch (IOException e) {e.printStackTrace();}pro.setProperty(inputAddInfoName+".name", inputAddInfoName);pro.setProperty(inputAddInfoName+".age", inputAddInfoAge);pro.setProperty(inputAddInfoName+".sex", inputAddInfoSex);pro.setProperty(inputAddInfoName+".phone", inputAddInfoPhone);try {/**建立一个到目录adress.properties的文件输出流以便写入文件*/FileOutputStream fs = new FileOutputStream("adress.properties",true);} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}System.out.println("添加成功\n");}public void query(){System.out.println("===================查询====================\n");System.out.println("请输入你要查询人的姓名\n");Properties pro = new Properties();try{pro.load(new FileInputStream("adress.properties"));}catch(Exception e){e.printStackTrace();}BufferedReader br =new BufferedReader(new InputStreamReader(System.in));String inputQuery=null;try {inputQuery = br.readLine();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}String outputInfoName = pro.getProperty(inputQuery+".name");if(outputInfoName!=null){System.out.println("姓名:"+pro.getProperty(inputQuery+".name"));System.out.println("性别:"+pro.getProperty(inputQuery+".sex"));System.out.println("年龄:"+pro.getProperty(inputQuery+".age"));System.out.println("电话:"+pro.getProperty(inputQuery+".phone"));}else{System.out.println("查无此人\n");}}public void edit(){System.out.println("===================编辑====================\n");System.out.println("请输入你要修改人的姓名\n");Properties pro = new Properties();BufferedReader br =new BufferedReader(new InputStreamReader(System.in)); String editInfoName=null,editInfoAge=null,editInfoSex=null,editInfoPhone=null; try{pro.load(new FileInputStream("adress.properties"));}catch(Exception e){e.printStackTrace();}try {editInfoName=br.readLine();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}if(pro.getProperty(editInfoName+".name")!=null){System.out.println("你要修改人的信息如下:\n");System.out.println("姓名:"+pro.getProperty(editInfoName+".name")); System.out.println("性别:"+pro.getProperty(editInfoName+".sex")); System.out.println("年龄:"+pro.getProperty(editInfoName+".age")); System.out.println("电话:"+pro.getProperty(editInfoName+".phone")); System.out.println("请选择想修改的选项:");System.out.println(" 1:性别");System.out.println(" 2:年龄");System.out.println(" 3:电话号");String inputEditNumber=null;try {inputEditNumber=br.readLine();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}if(isDigital(inputEditNumber)){int option=new Integer(inputEditNumber);switch(option){case 1:System.out.println("请输入性别!");try {editInfoSex=br.readLine();} catch (IOException e) {// TODO 自动生成catch 块e.printStackTrace();}pro.setProperty(editInfoName+".sex", editInfoSex);try {FileOutputStream fs = new FileOutputStream("adress.properties",true);pro.store(fs,"1");} catch (FileNotFoundException e) {// TODO 自动生成catch 块e.printStackTrace();} catch (IOException e) {// TODO 自动生成catch 块e.printStackTrace();}System.out.println("修改成功!");break;case 2:System.out.println("请输入年龄!");try {editInfoAge=br.readLine();} catch (IOException e) {// TODO 自动生成catch 块e.printStackTrace();}pro.setProperty(editInfoName+".age", editInfoAge);try {FileOutputStream fs = new FileOutputStream("adress.properties",true); pro.store(fs,"1");} catch (FileNotFoundException e) {// TODO 自动生成catch 块e.printStackTrace();} catch (IOException e) {// TODO 自动生成catch 块e.printStackTrace();}System.out.println("修改成功!");break;case 3:System.out.println("请输入电话号!");try {editInfoPhone=br.readLine();} catch (IOException e) {// TODO 自动生成catch 块e.printStackTrace();}pro.setProperty(editInfoName+".phone", editInfoPhone);try {FileOutputStream fs = new FileOutputStream("adress.properties",true);pro.store(fs,"1");} catch (FileNotFoundException e) {// TODO 自动生成catch 块e.printStackTrace();} catch (IOException e) {// TODO 自动生成catch 块e.printStackTrace();}System.out.println("修改成功!");break;default : System.out.println("无此选项,请输入1------3进行选择!");}}else{System.out.println("请输入数字\n");}}else{System.out.println("查无此人,请重新输入\n");}}public boolean isDigital (String str){boolean isDigital = true;for(int i=1;i<str.length();i++){char ch = str.charAt(i);if(ch<57&&ch>48){isDigital=false;break;}else{System.out.println("输入错误");}}return isDigital;}。
JAVA通讯录(内含源代码)
JA V A课程设计实验报告学校:江西农业大学班级:软件1115班姓名:***学号:********课程:JA V A通讯录指导教师:***2012.12.29一、设计目的本课程设计是java语言学习中很重要的实践性环节之一,是在学习完java 课程后进行的一次全面的综合练习旨在巩固和加深我们对java语言的基本知识的理解和掌握,掌握java语言编程和程序调试的基本技能,利用java语言进行基本的软件设计,掌握书写程序设计说明文档的能力,提高运用java语言解决实际问题的能力。
1、掌握类的定义及应用方法2、掌握对象的创建方法,了解实例变量、实例方法和静态字段的特征3、体会java在中类和对象的面向对象的设计思想二、实验内容本次课程设计是开发一个简易的、小型的通讯录,我们命名为“通讯录”。
通讯录保存在计算机中,便于分组,还便于增加、修改、删除好友信息。
设计一个通讯录管理软件,要求如下:增加组、删除组、修改组、查询好友、添加好友、修改好友,删除好友,退出。
通讯录好友信息包括:姓名,电话,手机,住址,性别等。
(1)通讯录的每一条信息包括姓名,电话,电话;(2)输入功能:可以一次完成若干条信息的输入;(3)显示功能:完成全部通讯录信息的显示(可现实多个好友和好友分组);(4)查找功能:完成按姓名查找通讯信息;(5)删除功能:完成按姓名删除通讯信息;(6)应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!三、实验要求1、对系统进行功能模块分析、功能模块分析正确;2、系统设计要有经济价值,要实用;3、编程简练,可用,功能全面,具有较好的健壮性;4、系统界面外观和布局,可个性化设计,总体原则是“界面简洁、操作便捷”;5、说明书、流程图要清楚;6、应用程序打包发布。
四,设计思路1程序设计总体思路通讯录的功能模块有:(1)提供显示主界面,方便用户操作,满足需求;(2)添加:可以添加通讯录好友分组和好哦与信息,依次输入姓名、性别、手机、固定电话、地址、组别、归属组等;(3)显示:可以显示输出所有通讯录里信息;(4)查询:可以用姓名查询;(5)修改:输入欲修改的那个人的名字后,再依次输入姓名、性别、电话、手机、地址、组别、可完成修改,也可以修改组名;(6)删除:可以直接删除好友分组及里面的好友,也可以单独删除好友;(7)帮助:可以在帮助里面;程序分为多个小模块,通过调用实现各种功能,增强了程序的可建设性。
通讯录管理系统java课程设计源代码
通讯录管理系统简介通讯录是一种记录联系人信息的工具,用于存储和管理与个人、组织或机构相关的联系信息。
通讯录管理系统是一个用于创建、编辑、查找和删除联系人信息的软件应用程序。
本文将介绍一个使用Java编写的通讯录管理系统的设计源代码。
功能需求通讯录管理系统需要具备以下功能: 1. 添加联系人:用户可以输入联系人的姓名、电话号码、电子邮件地址等信息,并将其添加到通讯录中。
2. 编辑联系人:用户可以选择要编辑的联系人,并可以修改其姓名、电话号码、电子邮件地址等信息。
3. 查找联系人:用户可以输入关键字进行搜索,系统将根据关键字在通讯录中查找匹配的联系人并显示出来。
4. 删除联系人:用户可以选择要删除的联系人,并将其从通讯录中删除。
5. 显示所有联系人:系统可以列出所有已存储在通讯录中的联系人信息。
设计思路数据结构为了实现上述功能,我们需要设计合适的数据结构来存储联系人信息。
在这里,我们可以使用一个类来表示每个联系人,其中包含姓名、电话号码和电子邮件地址等属性。
然后,我们可以使用一个集合(如ArrayList)来存储所有的联系人对象。
用户界面为了方便用户操作,我们可以使用命令行界面(CLI)来实现通讯录管理系统。
用户可以通过输入不同的命令来执行相应的操作,如添加联系人、编辑联系人、查找联系人等。
功能实现1.添加联系人:用户输入联系人的姓名、电话号码和电子邮件地址,系统创建一个联系人对象,并将其添加到集合中。
2.编辑联系人:用户选择要编辑的联系人,并输入要修改的信息,系统更新该联系人对象的属性。
3.查找联系人:用户输入关键字,系统遍历所有联系人对象并检查是否包含该关键字,将匹配的结果显示出来。
4.删除联系人:用户选择要删除的联系人,系统从集合中移除该对象。
5.显示所有联系人:系统遍历集合中的所有联系人对象,并将其属性逐个显示出来。
代码实现import java.util.ArrayList;import java.util.Scanner;class Contact {private String name;private String phoneNumber;private String email;public Contact(String name, String phoneNumber, String email) { = name;this.phoneNumber = phoneNumber;this.email = email;}public String getName() {return name;}public void setName(String name) { = name;}public String getPhoneNumber() {return phoneNumber;}public void setPhoneNumber(String phoneNumber) {this.phoneNumber = phoneNumber;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}}public class AddressBook {private ArrayList<Contact> contacts;public AddressBook() {contacts = new ArrayList<>();}public void addContact(Contact contact) {contacts.add(contact);System.out.println("Contact added successfully!");}public void editContact(int index, Contact contact) {if (index >= 0 && index < contacts.size()) {contacts.set(index, contact);System.out.println("Contact edited successfully!");} else {System.out.println("Invalid index!");}}public void searchContacts(String keyword) {boolean found = false;for (Contact contact : contacts) {if (contact.getName().contains(keyword) || contact.getPhoneNumber ().contains(keyword)|| contact.getEmail().contains(keyword)) {System.out.println(contact.getName() + " | " + contact.getPhon eNumber() + " | " + contact.getEmail());found = true;}}if (!found) {System.out.println("No matching contacts found.");}}public void deleteContact(int index) {if (index >= 0 && index < contacts.size()) {contacts.remove(index);System.out.println("Contact deleted successfully!");} else {System.out.println("Invalid index!");}}public void displayAllContacts() {for (Contact contact : contacts) {System.out.println(contact.getName() + " | " + contact.getPhoneNum ber() + " | " + contact.getEmail());}}public static void main(String[] args) {AddressBook addressBook = new AddressBook();Scanner scanner = new Scanner(System.in);while (true) {System.out.println("\nAddress Book Management System");System.out.println("1. Add Contact");System.out.println("2. Edit Contact");System.out.println("3. Search Contacts");System.out.println("4. Delete Contact");System.out.println("5. Display All Contacts");System.out.println("6. Exit");System.out.print("\nEnter your choice: ");int choice = scanner.nextInt();switch (choice) {case 1:scanner.nextLine(); // Consume newline characterSystem.out.print("Enter name: ");String name = scanner.nextLine();System.out.print("Enter phone number: ");String phoneNumber = scanner.nextLine();System.out.print("Enter email address: ");String email = scanner.nextLine();Contact contact = new Contact(name, phoneNumber, email);addressBook.addContact(contact);break;case 2:System.out.print("Enter index of the contact to edit: ");int indexToEdit = scanner.nextInt();if (indexToEdit >= 0 && indexToEdit < addressBook.contacts. size()) {scanner.nextLine(); // Consume newline characterSystem.out.print("Enter name: ");String newName = scanner.nextLine();System.out.print("Enter phone number: ");String newPhoneNumber = scanner.nextLine();System.out.print("Enter email address: ");String newEmail = scanner.nextLine();Contact newContact = new Contact(newName, newPhoneNumb er, newEmail);addressBook.editContact(indexToEdit, newContact);} else {System.out.println("Invalid index!");}break;case 3:scanner.nextLine(); // Consume newline characterSystem.out.print("Enter keyword to search contacts: ");String keyword = scanner.nextLine();addressBook.searchContacts(keyword);break;case 4:System.out.print("Enter index of the contact to delete: "); int indexToDelete = scanner.nextInt();addressBook.deleteContact(indexToDelete);break;case 5:addressBook.displayAllContacts();break;case 6:System.exit(0);break;default:System.out.println("Invalid choice!");}}}}总结通过以上的设计和实现,我们创建了一个简单的通讯录管理系统。
通讯录管理系统课程设计报告Java
通讯录管理系统课程设计报告Java1. 简介通讯录管理系统是一种方便用户存储和管理联系人信息的工具。
本课程设计将使用Java语言开发一个简单的通讯录管理系统,实现对联系人信息的增删改查功能。
通过本项目的实践,学习者将掌握Java编程语言的基础知识和面向对象编程的技巧。
2. 功能需求通讯录管理系统应包含以下功能: - 添加联系人信息:用户可以输入联系人的姓名、电话号码、邮箱等信息添加到通讯录中。
- 显示所有联系人信息:系统能够展示所有已保存在通讯录中的联系人信息。
- 查找联系人信息:用户可以通过姓名或电话号码查找特定联系人的信息。
- 修改联系人信息:用户可以对已保存的联系人信息进行修改。
- 删除联系人信息:用户可以删除通讯录中的联系人信息。
实现以上功能需要设计相应的数据结构和算法,以及编写用户交互界面。
3. 技术实现3.1 数据结构在Java中,可以使用ArrayList或HashMap等数据结构来存储联系人信息。
ArrayList适用于有序的联系人列表,而HashMap适用于根据键值快速查找联系人信息。
3.2 用户交互界面用户交互界面可以通过Java的Swing或JavaFX等GUI工具包来实现。
设计一个简洁明了的界面,包含菜单栏、输入框、按钮等组件,以方便用户操作。
3.3 功能实现•添加联系人信息:用户输入信息后,将联系人信息添加到数据结构中。
•显示所有联系人信息:遍历数据结构,将所有联系人信息展示在界面上。
•查找联系人信息:根据用户输入的查询条件,在数据结构中查找对应的联系人信息。
•修改联系人信息:根据用户输入的修改信息,更新数据结构中相应的联系人信息。
•删除联系人信息:根据用户输入的删除条件,从数据结构中移除对应的联系人信息。
4. 总结通讯录管理系统是一个简单实用的应用程序,能够帮助用户有效管理联系人信息。
通过本课程设计,学习者将学习如何使用Java语言开发基本的应用程序,掌握面向对象编程的基本原理和技巧。
个人通讯录管理系统java源代码
个人通讯录管理系统j a v a源代码This model paper was revised by the Standardization Office on December 10, 2020/*** 业务类*/public class PABmanager {/*** 系统启动*/public static void main(String[] args) {Scanner input = new Scanner;UserDao userDao = new UserDaoImpl();TypeDao typeDao = new TypeDaoImpl();PersonDao personDao = new PersonDaoImpl();String in = ();if ("1".equals(in)) {boolean islogin = ();if(islogin){}else{(-1);}}else if ("2".equals(in)) {boolean modiFlag = ();if(modiFlag){}else{}(-1);}else{(-1);}while(true){String in2 = ();if ("1".equals(in2)) {while(true){String num = ();if ("1".equals(num)) {String lbmc = ();String lbsm = ();String lbbz = ();Type type = new Type(lbmc,lbsm,lbbz);(type);}else if ("2".equals(num)) {List<Type> types = ();for (int i = 0; i < (); i++) {Type type =(i);}}else if ("3".equals(num)) {String lbmc = ();Type type = new Type(lbmc,null,null);(type);}else if ("4".equals(num)) {break;}else{}}}else if ("2".equals(in2)) {while(true){String num = ();if ("1".equals(num)) {String lb = ();String xm = ();String dh = ();String sjh = ();String gzdw = ();String zz = ();String yzbm = ();Person person = new Person(lb,xm,dh,sjh,gzdw,zz,yzbm);(person);}else if ("2".equals(num)) {String name = ();Person p = (name);}else if ("3".equals(num)) {int id = ();String item = ();String val = ();(id,item, val);}else if ("4".equals(num)) {String name = ();(name);}else if ("5".equals(num)) {break;}else{}}}else if ("3".equals(in2)) {(-1);}else{}}}}。
JAVA通讯录(内含源代码)
JA V A课程设计实验报告学校:农业大学班级:软件1115班:朱利斌学号:20111976课程:JA V A通讯录指导教师:邓老师2012.12.29一、设计目的本课程设计是java语言学习中很重要的实践性环节之一,是在学习完java 课程后进行的一次全面的综合练习旨在巩固和加深我们对java语言的基本知识的理解和掌握,掌握java语言编程和程序调试的基本技能,利用java语言进行基本的软件设计,掌握书写程序设计说明文档的能力,提高运用java语言解决实际问题的能力。
1、掌握类的定义及应用方法2、掌握对象的创建方法,了解实例变量、实例方法和静态字段的特征3、体会java在中类和对象的面向对象的设计思想二、实验容本次课程设计是开发一个简易的、小型的通讯录,我们命名为“通讯录”。
通讯录保存在计算机中,便于分组,还便于增加、修改、删除好友信息。
设计一个通讯录管理软件,要求如下:增加组、删除组、修改组、查询好友、添加好友、修改好友,删除好友,退出。
通讯录好友信息包括:,,手机,住址,性别等。
(1)通讯录的每一条信息包括,,;(2)输入功能:可以一次完成若干条信息的输入;(3)显示功能:完成全部通讯录信息的显示(可现实多个好友和好友分组);(4)查找功能:完成按查找通讯信息;(5)删除功能:完成按删除通讯信息;(6)应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!三、实验要求1、对系统进行功能模块分析、功能模块分析正确;2、系统设计要有经济价值,要实用;3、编程简练,可用,功能全面,具有较好的健壮性;4、系统界面外观和布局,可个性化设计,总体原则是“界面简洁、操作便捷”;5、说明书、流程图要清楚;6、应用程序打包发布。
四,设计思路1程序设计总体思路通讯录的功能模块有:(1)提供显示主界面,方便用户操作,满足需求;(2)添加:可以添加通讯录好友分组和好哦与信息,依次输入、性别、手机、固定、地址、组别、归属组等;(3)显示:可以显示输出所有通讯录里信息;(4)查询:可以用查询;(5)修改:输入欲修改的那个人的名字后,再依次输入、性别、、手机、地址、组别、可完成修改,也可以修改组名;(6)删除:可以直接删除好友分组及里面的好友,也可以单独删除好友;(7)帮助:可以在帮助里面;程序分为多个小模块,通过调用实现各种功能,增强了程序的可建设性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
publicLoginForm()
{
//设置窗体相关属性
//设置标题栏显示图标
Image icon2=Toolkit.getDefaultToolkit().getImage("images\\ico.gif");
this.setIconImage(icon2);
//设置窗口标题
this.setTitle("--登录--");
//定义一个图标对象,用于显示登陆界面图像
ImageIcon icon1=newImageIcon("images\\txl_1.jpg");
//设置图像
arrayJLabel[2].setIcon(icon1);
//设置标签位置及尺寸
arrayJLabel[2].setBounds(0,0,350,158);
passwordJPasswordField.setForeground(Color.RED);
//设置文本域和密码框的字体
userNameJTextField.setFont(newFont("宋体",Font.BOLD,16));
passwordJPasswordField.setFont(newFont("宋体",Font.BOLD,16));
privateJPasswordFieldpasswordJPasswordField=newJPasswordField();//声明密码输入域
privateJButton[]arrayJButton={newJButton("登录"),newJButton("注册")};//声明包含两个按钮数组
arrayJButton[i].setFont(newFont("宋体",Font.PLAIN,15));
//将2个标签和2个按钮添加到面板容器
jpanel1.add(arrayJLabel[i]);
jpanel1.add(arrayJButton[i]);
//为按钮添加动作事件监听器
arrayJButton[i].addActionListener(this);
passwordJPasswordField.setBounds(115, 198, 160, 30);
//设置密码输入回显字符
passwordJPasswordField.setEchoChar('*');
//设置文本域和密码框的文本颜色
userNameJTextField.setForeground(Color.RED);
passwordJPasswordField.addActionListener(this);
//将面板容器添加到内容窗格
this.add(jpanel1);
//为窗口添加关闭响应事件
//设置2个标签和两个按钮的文本颜色
arrayJLabel[i].setForeground(Color.RED);
arrayJButton[i].setForeground(Color.RED);
//设置2个标签和两个按钮的字体
arrayJLabel[i].setFont(newFont("宋体",Font.PLAIN,14));
intsrceenHeight=screenSize.height;
//设置窗口于屏幕中央
setLocation((screenWidth-getWidth())/2,(srceenHeight-getHeight())/2);
//设置组件的相关属性
//设置面板容器的布局策略为空
jpanel1.setLayout(null);
//设置面板容器背景色
jpanel1.setBackground(Color.WHITE);
//利用循环添加标签和按钮
for(inti=0;i<2;i++)
{
//设置2个标签和2个按钮的位置及大小
arrayJLabel[i].setBounds(65, 164+i*35, 80, 26);
arrayJButton[i].setBounds(60+i*135, 235, 90, 26);
//设置窗口不可拖动大小
this.setResizable(false);
//设置窗口大小
this.setSize(350,300);
//获取屏幕尺寸
Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
intscreenWidth=screenSize.width;
{
//声明组件
privateJPaneljpanel1=newJPanel();//声明面板容器
privateJLabel[]arrayJLabel={newJLabel("用户名:"),newJLabel("密码:"),newJLabel("")};//声明包含三个标签的标签数组
privateJTextFielduserNameJTextField=newJTextField();//声明用户名文本域
}
//设置文本域和密码框的最大输入字符量
userNameJTextField.setColumns(15);
passwordJPasswordField.setColumns(16);
//设置文本域和密码框的位置及大小
userNameJTextField.setBounds(115, 161, 160, 30);
Java实现《通讯录》
软件测试.094
谭 又 中
2011/09/25
(共37页)
登陆界面:
源码:
packagesources;
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
publicclassLoginFormextendsJFrameimplementsActionListener
//将文本域和密码框添加到面板容器
jpanel1.add(arrayJLabel[2]);
jpanel1.add(userNameJTextField);
jpanel1.add(passwordJPasswordField);
//为文本域和密码框添加事件监听器
userNameJTextField.addActionListener(this);