个人通讯录java代码完整版
java验证手机号码、电话号码(包括最新的电信、联通和移动号码)
java验证⼿机号码、电话号码(包括最新的电信、联通和移动号码)⼀、⽬前的号码段(2017-06-01更新)⼆、代码package com.linbilin.test;import java.util.regex.Pattern;public class CheckPhone {/** 座机电话格式验证 **/private static final String PHONE_CALL_PATTERN = "^(?:\\(\\d{3,4}\\)|\\d{3,4}-)?\\d{7,8}(?:-\\d{1,4})?$";/*** 中国电信号码格式验证⼿机段: 133,153,180,181,189,177,1700,173* **/private static final String CHINA_TELECOM_PATTERN = "(?:^(?:\\+86)?1(?:33|53|7[37]|8[019])\\d{8}$)|(?:^(?:\\+86)?1700\\d{7}$)";/*** 中国联通号码格式验证⼿机段:130,131,132,155,156,185,186,145,176,1707,1708,1709,175* **/private static final String CHINA_UNICOM_PATTERN = "(?:^(?:\\+86)?1(?:3[0-2]|4[5]|5[56]|7[56]|8[56])\\d{8}$)|(?:^(?:\\+86)?170[7-9]\\d{7}$)";/*** 简单⼿机号码校验,校验⼿机号码的长度和1开头*/private static final String SIMPLE_PHONE_CHECK = "^(?:\\+86)?1\\d{10}$";/*** 中国移动号码格式验证* ⼿机段:134,135,136,137,138,139,150,151,152,157,158,159,182,183,184* ,187,188,147,178,1705***/private static final String CHINA_MOBILE_PATTERN = "(?:^(?:\\+86)?1(?:3[4-9]|4[7]|5[0-27-9]|7[8]|8[2-478])\\d{8}$)|(?:^(?:\\+86)?1705\\d{7}$)";/*** 仅⼿机号格式校验*/private static final String PHONE_PATTERN = new StringBuilder(300).append(CHINA_MOBILE_PATTERN).append("|").append(CHINA_TELECOM_PATTERN).append("|").append(CHINA_UNICOM_PATTERN).toString();/*** ⼿机和座机号格式校验*/private static final String PHONE_TEL_PATTERN = new StringBuilder(350).append(PHONE_PATTERN).append("|").append("(").append(PHONE_CALL_PATTERN).append(")").toString();/*** 匹配多个号码以,、或空格隔开的格式,如 177********* 133********、(596)3370653,177********,133******** (0596)3370653* @param input* @param separator 可以⾃⼰指定分隔符,如"、, "表⽰可以以顿号、逗号和空格分隔* @return*/public static boolean checkMultiPhone(String input, String separator) {separator = escapeMetacharacterOfStr(separator);String regex = "^(?!.+["+ separator+ "]$)(?:(?:(?:(?:\\(\\d{3,4}\\)|\\d{3,4}-)?\\d{7,8}(?:-\\d{1,4})?)|(?:1\\d{10}))(?:["+ separator + "]|$))+$";return match(regex, input);}/*** 转义字符串中的[]-^\元字符** @param input* @param separator* @return*/private static String escapeMetacharacterOfStr(String input) {String regex = "[-^\\[\\]\\\\]";return input.replaceAll(regex, "\\\\$0");}/*** 仅⼿机号码校验** @param input* @return*/public static boolean isPhone(String input) {return match(PHONE_PATTERN, input);}/*** ⼿机号或座机号校验** @param input* @return*/public static boolean isPhoneOrTel(String input) {System.out.println(PHONE_TEL_PATTERN);return match(PHONE_TEL_PATTERN, input);}/*** 验证电话号码的格式** @author LinBilin* @param str* 校验电话字符串* @return 返回true,否则为false*/public static boolean isPhoneCallNum(String str) {return match(PHONE_CALL_PATTERN, str);}/*** 验证【电信】⼿机号码的格式** @author LinBilin* @param str* 校验⼿机字符串* @return 返回true,否则为false*/public static boolean isChinaTelecomPhoneNum(String str) { return match(CHINA_TELECOM_PATTERN, str);}/*** 验证【联通】⼿机号码的格式** @author LinBilin* @param str* 校验⼿机字符串* @return 返回true,否则为false*/public static boolean isChinaUnicomPhoneNum(String str) { return match(CHINA_UNICOM_PATTERN, str);}/*** 验证【移动】⼿机号码的格式** @author LinBilin* @param str* 校验⼿机字符串* @return 返回true,否则为false*/public static boolean isChinaMobilePhoneNum(String str) { return match(CHINA_MOBILE_PATTERN, str);}/*** 简单⼿机号码校验,校验⼿机号码的长度和1开头** @param str* @return*/public static boolean isPhoneSimple(String str) {return match(SIMPLE_PHONE_CHECK, str);}/*** 匹配函数** @param regex* @param input* @return*/private static boolean match(String regex, String input) { return Pattern.matches(regex, input);}}。
JAVA的即时通讯源代码
JAVA实现即使通讯的代码图形界面////////////////////////////////////////////////////////////用Java 编写的聊天器,可以当服务器或者是客户端,一对一,自定义对方IP 及端口。
//虽然名为LANChat ,但不限于局域网。
对象甚至可以是某种“服务器”。
///////////////////////////////////////////////////////////import java.io.*;import .*;import java.awt.*;import javax.swing.*;import java.awt.event.*;//////////////////////////////////////////////////////////public class LANChatV12{public static void m ain(String args[]){LoginFrame lf =new LoginFrame("输入目标");lf.show();}}/////////////////////////////////////////////////////////class LoginFrame extends JFrame{JButton BOK;JLabel LdesAddr, Lport;JTextField TFdesAddr, TFport;String desAddr, port;LoginFrame(){}LoginFrame(String title){super(title);Fram e t =this;BOK =new JButton("确定");LdesAddr =new JLabel("目标IP");Lport =new JLabel("端口");TFdesAddr =new JTextField(desAddr,12);TFport =new JTextField(port,12);//TFpassword.setEchoChar('*');BOK.addActionListener(new BOKListener(t)); setBackground(Color.blue);setBounds(350,250,200,128);setLayout(new FlowLayout(FlowLayout.CENTER,5,7)); add(LdesAddr);add(TFdesAddr);add(Lport);add(TFport);add(BOK);setResizable(false);//setVisible(true);addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){ System.exit(0);}});}class BOKListener implements ActionListener{Fram e t;BOKListener(){}BOKListener(Frame t){this.t =t;}public void actionPerformed(ActionEvent e){ desAddr =TFdesAddr.getText();port =TFport.getText();t.setVisible(false);Messenger m =new Messenger(desAddr, port); m.start();}}}/////////////////////////////////////////////////////class Messenger extends Thread{String desAddr;String port;int iport;TextArea content, send;JButton Bsend;ChatFram e cf;String title;Socket client;ServerSocket ss;OutputStream Writer osw =null; InputStreamReader isr =null; BufferedReader br;String line;boolean flag;//端口号是否正确boolean cbc; //can be client ?int tryTurns =3; //客户方式尝试的次数Messenger(){}Messenger(String desAddr, String port){super("LANChatMessenger");content =new TextArea("",0,0,TextArea.SCROLLBARS_VERTICAL_ONLY); send =new TextArea("",0,0,TextArea.SCROLLBARS_VERT ICAL_ONLY); Bsend =new JButton("发送");Bsend.setEnabled(false);title ="与" + desAddr +" 聊天";flag =true;cbc =true;cf =new ChatFram e(title, content, send, Bsend);cf.show();this.desAddr =desAddr;this.port =port;try{iport =Integer.parseInt(port);}catch(NumberFormatException nfe){content.append("非法的端口,程序4 秒后关闭。
Java通讯录管理系统设计报告
Java通讯录管理系统设计报告1. 引言随着社会发展和信息技术的进步,通讯录在人们的日常生活和工作中变得越来越重要。
Java通讯录管理系统是一种用于管理个人和组织联系信息的软件系统。
本篇文档将详细介绍Java通讯录管理系统的设计和实现。
2. 功能需求Java通讯录管理系统具有以下功能需求: - 添加联系人:用户可以添加新的联系人,包括姓名、电话号码、电子邮件等相关信息。
- 删除联系人:用户可以删除已存在的联系人。
- 编辑联系人:用户可以修改已存在联系人的信息。
- 搜索联系人:用户可以根据姓名、电话号码或其他关键字搜索联系人。
- 显示联系人列表:用户可以查看所有联系人的列表,并按照姓名或其他方式进行排序。
- 导入/导出联系人:用户可以将联系人导入/导出到文件中,以实现数据的备份和共享。
3. 系统设计3.1 技术栈选择Java通讯录管理系统采用Java语言进行开发,使用Java的面向对象特性来实现系统的各个功能模块。
系统使用MySQL数据库来存储联系人的信息。
3.2 系统架构Java通讯录管理系统采用三层架构,分为表示层、业务逻辑层和数据访问层。
•表示层:负责与用户的交互,包括图形界面和用户输入输出的处理。
•业务逻辑层:负责处理用户的请求,对联系人信息进行增加、删除、编辑、搜索等操作,并调用数据访问层进行数据的读写。
•数据访问层:负责与数据库交互,进行联系人信息的读写操作。
3.3 类设计在Java通讯录管理系统中,主要涉及以下类的设计: - Contact类:表示一个联系人,包含姓名、电话号码、电子邮件等属性。
- ContactDAO接口:定义对联系人的增删改查等操作。
- ContactDAOImpl类:实现ContactDAO接口,负责与数据库进行交互。
- ContactService类:负责处理业务逻辑,调用ContactDAOImpl 类进行联系人信息的操作。
- ContactConsole类:表示层的用户界面,处理用户输入输出和展示联系人信息。
手机通讯录源代码
}ren;
//菜单
void menu() //目录
{
system("cls"); //清屏
printf(" #########欢迎使用手机通讯录#########\n");
printf("\n");
printf("==============================================================================\n");
if(!feof(fp))
{ printf("人员的信息如下:\n");
printf("说明:(A办公类B个人类C商务类)");
printf("\n%10s %15s %10s %20s \n","姓名","号码","类别","邮箱");
while(!feof(fp))
{
if(strcmp(ry.leibie,leibie)==0) //若为该类别则输出
void bohao()
{ ren ry[N];
FILE *fp;
char name[10];
int i,len,k=-1;
system("cls");
printf("\n输入要删除的人员姓名: ");scanf(""ren.dat","rb+"))==NULL) {printf("can't open file!\n");exit(0);}
Java课程设计通讯录管理系统
摘要随着社会的发展,人际关系变来越重要,为了保持良好的人际关系,必须常与亲戚朋友,同学同事保持联系,但有时候存在许多限制条件,因此我们需要为了快速查找联系人的信息,节省查找时间,开发通讯录管理系统。
通讯录管理系统是一个基于C/S模式的个人通讯录管理系统,它是将自己的联系人的具体信息集中处理,成为一个方便人们使用的小软件。
在开发过程中应用java,JDK,MYSQL,SWING等技术,由于开发工具与数据库之间的良好使用,可以为开发带来方便,使之成为可视性的系统。
通过采用相关技术,将系统设计的功能全部实现。
功能包括:用户登录,添加联系人信息,修改联系人信息,删除联系人信息,查询联系人信息,可以浏览全部通讯录联系人,可以根据数据表的歌字段来查询你要找的联系人等功能。
关键字:C/S架构,联系信息,通讯录,数据库目录一、需求分析 (2)二、系统总体规划 (2)三、程序流程 (2)四、设计步骤 (5)1.数据库表的设计 (5)2.详细设计 (5)五、设计总结 (9)六、结束语 (10)六、参考文献 (11)七、程序清单 (12)1一需求分析通讯录在当今的日常生活工作中的应用是十分普及的,每个人都拥有大量的通讯录资料信息,当前大家一般都用手工来记录所有的通讯录信息。
但随着时代的发展,人们的联系方式及信息变得复杂多样,通讯录信息大量增加,导致管理这些信息资料就成了问题。
直接操作来查找,添加,修改,删除这些信息,由于数据多,工作量十分巨大,查找,编辑都很困难,而且极易出错,容易造成资料的混乱或丢失。
在各种手机,上午通内设的电话簿尽管携带方便却又存在“记录量少,界面小,浏览不方便,记录信息不全面”的缺点。
有人利用Excel或Word编制通讯录,虽然数据比较全面,信息比较充分,可是查找及其不便,维护起来也麻烦,所以运用文件或数据库技术建立一个通讯录管资料理系统十分必要,使通讯录资料管理工作规范化,系统化,程序化,避免资料管理中的混乱。
java课程设计通讯录
java 课程设计通讯录一、教学目标本章节的教学目标是使学生掌握Java编程语言的基本语法和面向对象编程思想,通过实现一个简单的通讯录应用程序,培养学生解决实际问题的能力。
具体目标如下:1.掌握Java基本数据类型、运算符、控制结构。
2.理解面向对象编程的基本概念,如类、对象、封装、继承、多态。
3.熟悉Java常用类库,如String、ArrayList、HashMap等。
4.能够使用Java编写简单的程序,实现基本的数据处理和算法。
5.能够运用面向对象编程思想设计和实现应用程序。
6.掌握基本的调试和排错技巧。
情感态度价值观目标:1.培养学生对编程的兴趣和热情,提高学生解决问题的自信心。
2.培养学生团队协作、自主学习的习惯。
3.培养学生对编程事业的尊重和敬业精神。
二、教学内容本章节的教学内容主要包括以下几个部分:1.Java基本语法:数据类型、运算符、控制结构。
2.面向对象编程:类、对象、封装、继承、多态。
3.Java常用类库:String、ArrayList、HashMap等。
4.通讯录应用程序设计:需求分析、系统设计、编码实现、测试与调试。
三、教学方法为了达到本章节的教学目标,将采用以下几种教学方法:1.讲授法:讲解Java基本语法、面向对象编程思想和通讯录应用程序设计。
2.案例分析法:分析实际案例,让学生更好地理解面向对象编程思想和应用程序设计。
3.实验法:让学生动手编写和调试程序,提高学生的实际操作能力。
4.讨论法:学生进行小组讨论,培养学生的团队协作和沟通能力。
四、教学资源为了支持本章节的教學,将准备以下教学资源:1.教材:《Java编程思想》、《Java核心技术》。
2.参考书:提供相关领域的经典教材和在线资源。
3.多媒体资料:制作PPT、视频教程等,帮助学生更好地理解教学内容。
4.实验设备:为学生提供必要的编程环境和实验设备。
五、教学评估本章节的教学评估将采用多元化的评价方式,以全面、客观、公正地评估学生的学习成果。
简易通讯录代码
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();}}。
1构建手机通讯录系统
题目:手机通讯录系统要求:制作一个手机通讯录系统系统描述:手机中有一个简单的通讯录工具,用于管理联系人的基本信息,其基本功能包括对联系人信息的新建、修改、删除、查询等。
联系人的基本信息只包括姓名、年龄、联系电话,通讯录最多容纳50名联系人的信息。
功能:用户验证:根据用户输入的用户名和密码判断是否合法用户(合法用户可以不只一个),并进行相应处理。
提供系统操作菜单联系人的基本信息只包括姓名、年龄、联系电话等可以对联系人的基本信息进行输入、修改、删除、浏览等操作可以查询联系人的基本信息可以对联系人的基本信息进行排序处理用结构体表示联系人的基本信息,用文件存储信息提示:1、建立如下结构体struct friends_list{char name[10];int age;char telephone[13];};2、存储和显示信息表格形式3、姓名、年龄、联系电话4、系统功能结构图5、功能要求描述:(1)主函数:定义所需变量,显示主菜单,接受用户选择,根据用户选择执行相应的自定义函数。
(2)密码确认由于输入、修改、删除操作需要具有一定权限的人员进行操作,所以在这些功能模块中应该有密码确认功能,例如,一段检测用户密码的程序段:#include <stdio.h>#include <string.h>void main(){ char password[20];printf(“请输入密码:”);gets(password);while(strcmp(password,”administrators”)!=0){printf(“\n无效密码”);printf(“\n请重新输入密码:”);gets(password);}printf(“OK!”);}(3)输入新信息功能定义结构体变量,建立一个文件,从键盘输入一条信息,到变量中,再将其写入文件中,例如,(4)修改信息首先输入要修改的联系人的名、或其它关键信息,从文件逐条读出信息进行比对,查找是否有该信息,没有就直接输出信息;有则进行修改,修改后的信息继续存入文件。
编制通讯录
电子通讯录功能如下:Function choose1.Read2.Append3.Delete4.Search5.Save and exit6.Quit说明:上图是电子通讯录的主菜单,利用它,将能够轻松地录入一个朋友的电话号码,通讯地址和出生日期,而且它还提供了检索和删除功能。
在后面还将提供按生日先后排序的功能,这些都有助于该通讯录的管理。
电子通讯录是采用线性表作为电子通讯录功能如下:Function choose1.Read2.Append3.Delete4.Search5.Save and exit6.Quit说明:上图是电子通讯录的主菜单,利用它,将能够轻松地录入一个朋友的电话号码,通讯地址和出生日期,而且它还提供了检索和删除功能。
在后面还将提供按生日先后排序的功能,这些都有助于该通讯录的管理。
电子通讯录是采用线性表作为程序的基本结构的。
设计思想:1。
用顺序表设计电子通讯录的结构为了表示较为复杂的数据内容,一般用结构这种数据类型,第一步就是在结构中定义所需要的各项信息。
一般的通讯录都包括姓名,性别,出生年月,通讯地址和联系电话这几项,而在这几项中,出生年月又包括年份,月份和日期三项,通讯地址包括邮编和家庭地址二项,我们把这些联系较为紧密的内容又用单独的结构表示,这样就产生了电子通讯录的基本结构:struct addr /*通讯地址结构定义*/{ char post_num[10]; /*邮编*/char addr[40]; /*家庭地址*/};struct birth /*出生年月结构定义*/{ int year; /*年份*/int month; /*月份*/int day; /*日期*/};struct friend /*电子通讯录结构定义*/{ int number; /*序号*/char name[20] /*姓名*/char sex; /*性别*/struct birth birth; /*出生年月*/struct addr addr; /*通信地址*/char telephone[13]; /*联系电话*/};定义的主结构friend包含了前述的五项内容 name,sex,和telephone分别代表了姓名,性别和联系电话。
java程序设计需求分析
课设题目:个人通讯录管理程序需求分析:
随着科技的进步和信息产业的飞速发展,通讯录成为了现代生活中一个重要的工具。
在“时间就是金钱”的今天,人们需要更加方便快捷的实现对自己通讯录的管理,来提高工作生活的效率。
本通讯录管理系统利用计算机对通讯录进行统一管理,正满足了人们普遍的需求。
一、功能需求分析
本通讯录包括用户登陆、添加记录、删除记录、显示所有记录、修改记录、查询记录、备份记录、退出等功能,通
2
3
4
5
6
7
通过点击备份按钮,系统将自动的把用户的所有记录信息打包备份。
8、退出
当用户不在对通讯录进行操作的时候,可以通过点击退出按钮退出系统。
二、性能需求分析
1. 数据精确度
查询时应保证查全率,所有相应域包含查询关键字的记录都应能查到。
来源于网络
2. 时间特性
一般操作的响应时间应在1~2秒内。
3、适应性
满足个人使用的需求(记录量控制在1000项内)。
三、目标对象需求分析
本系统主要为有计算机的用户设计,特别是为应对工作族大量的社会关系而设计。
来源于网络。
java通讯录课程设计报告
课程设计报告:Java通讯录一、引言本次课程设计是关于Java通讯录的开发,旨在让我们更深入地理解Java编程语言在现实生活中的应用。
通讯录是一种常见的应用程序,它可以帮助我们管理联系人信息,方便我们与朋友和家人保持联系。
二、需求分析本次课程设计的目标是根据用户需求,设计并实现一个功能齐全的Java通讯录应用程序。
具体需求如下:用户可以添加联系人信息,包括姓名、电话号码、电子邮件地址等。
用户可以删除联系人信息。
用户可以编辑联系人信息。
用户可以按姓名、电话号码或电子邮件地址搜索联系人信息。
用户可以查看所有联系人信息。
三、设计数据库设计为了存储联系人信息,我们选择使用Java内置的ArrayList类作为数据库。
ArrayList是一个动态数组,可以根据需要自动增长。
我们将使用ArrayList的add()方法添加联系人信息,使用get()方法获取联系人信息,使用remove()方法删除联系人信息。
界面设计我们使用Java Swing库来创建用户界面。
界面包括以下组件:JLabel:显示提示信息和标题。
JTextField:用于输入和编辑联系人信息。
JButton:用于触发添加、删除、编辑和搜索等操作。
JTable:用于显示所有联系人信息。
JComboBox:用于选择搜索条件。
四、实现添加联系人信息当用户点击“添加”按钮时,程序会创建一个新的联系人对象,并将用户输入的信息设置到该对象中。
然后,程序将该对象添加到ArrayList中。
删除联系人信息当用户选择要删除的联系人并点击“删除”按钮时,程序会从ArrayList中删除该联系人对象。
编辑联系人信息当用户选择要编辑的联系人并点击“编辑”按钮时,程序会将该联系人的信息显示在文本框中,以便用户进行修改。
修改完成后,程序会将修改后的信息保存到ArrayList中。
搜索联系人信息当用户选择搜索条件并输入搜索关键字时,程序会在ArrayList 中查找符合条件的联系人对象,并将其显示在表格中。
eclipse个人通讯录
赣南师范学院科技学院数学与信息科学系数据库课程设计报告设计题目:通讯录管理系统开发专业:计算机科学与技术班级:计算机111班学号:1120061116姓名:沈钊指导老师:谢辅雯日期:2013年 12 月日成绩:目录1.需求分析 (3)1.1系统需求分析 (3)1.2功能需求分析 (3)1.2.1系统功能的描述 (3)1.2.2系统功能模块的划分 (3)1.2.3系统管理 (3)1.2.4地址信息的管理 (3)1.2.5地址信息的查询与统计 (4)1.2.6用户管理 (4)2.E-R图 (4)3.数据流图 (4)3.1管理员部分数据流图 (4)3.2用户部分数据流图 (5)4.数据库表 (5)4.1系统用户表 (5)4.2联系人信息表 (6)5.调试过程 (6)6.代码段 (17)6.1登录界面代码 (17)6.2添加用户代码 (18)6.3修改用户密码,删除用户,修改权限代码 (20)6.3.1修改用户密码 (20)6.3.2删除用户 (21)6.3.3修改权限 (22)6.4查询用户 (23)6.5添加、选择图片代码 (24)6.5.1添加图片代码 (24)6.5.2选择图片代码 (25)6.6管理员添加,修改,删除,查询联系人 (26)6.6.1添加联系人 (26)6.6.2修改联系人代码 (28)6.6.3删除联系人代码 (29)6.6.4查询联系人代码 (30)7.总结 (33)通讯簿信息管理系统开发设计本系统模拟用户在通讯录中管理内容,包括地址信息的管理,地址信息的查询与统计,用户管理。
制作系统成员与分工:成员:范德泉、沈钊分工: 范德泉:需求分析及系统开发中的“地址信息的查询与统计”。
沈钊:系统开发中的“地址信息的管理”与“用户管理”。
一、需求分析1.1系统需求分析个人或者企业可以通过通讯簿信息管理系统对企业或者个人日常联系人信息的管理。
1.2功能需求分析1.2.1系统功能的描述通讯簿信息管理系统在管理功能上较简单主要实现地址信息的管理、地址信息的查询与统计以及用户管理等功能1.2.2系统功能模块的划分通讯录管理系统功能分析总图1.2.3系统管理管理员通过此模块来管理用户登陆,普通用户通过此模块来进行用户登陆操作。
通讯录管理系统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语言开发基本的应用程序,掌握面向对象编程的基本原理和技巧。
基于的通讯录管理系统
} public void displayContacts() { contactList.di splayContacts()
} public void exit()
{ System.exit(0)
} }```
-
感谢您的观看
THANK YOU FOR WATCHING
XXXX
单击此处输入你的正文,文字是您思想的提炼,为了最终演示发布的良好效果,请尽量 言简意赅的阐述观点;根据需要可酌情增减文字
合度
4
技术实现
技术实现
开发环境
Java SE Development Kit (JDK) 8或以上版本, 用于编写和运行Java
程序
Step.01
开发工具
Eclipse或IntelliJ IDEA等集成开发环境
(IDE)
Step.02
类库
Java自带的标准类库 和第三方类库
Step.03
数据库
可以选择使用SQLite 或MySQL等关系型数 据库存储联系人信息
2 项目需求分析
项目需求分析
通讯录管理系统需要 具备以下基本功能
01
03
05
项目需求分析
02
04
06
3
系统设计
系统设计
1
用户界面设计:采用命令 行界面,包括菜单选项和 命令输入。菜单应清晰明
了,易于操作
2
数据存储设计:使用文本 文件或数据库存储联系人
信息,便于数据持久化
3
架构设计:采用简单的 MVC(模型-视图-控制器)架 构,降低各模块之间的耦
Step.04
ห้องสมุดไป่ตู้
编码规范
遵循Java编码规范, 提高代码的可读性和
手机通讯录代码
#include<stdio.h>#include<string.h>struct friends_list{char name[10];char age[12];char telephone[13];char banji[6];char sn[13];char address[8];char sex[4];};int Count=0;FILE *fp;void new_friend(struct friends_list friends[]);void show_friend(struct friends_list friends[]);void search_friend(struct friends_list friends[]);void statistics_friend(struct friends_list friends[]);void xiugai_friend(struct friends_list friends[]);void shanchu_friend(struct friends_list friends[]);int main(void){int choice;char name[10];char sn[12];struct friends_list friends[50];do{printf("\t***********************************************\n"); printf("\t$ $\n"); printf("\t$ 学生通讯系统功能选项 $\n");printf("\t$ $\n"); printf("\t***********************************************\n"); printf("\t1:新建2:显示3:查询4:统计5:修改6:删除0:退出\n"); printf("请选择功能:");scanf("%d",&choice);switch(choice){case 1:new_friend(friends);break;case 2:show_friend(friends);break;case 3:search_friend(friends);break;case 4:statistics_friend(friends);break;case 5:xiugai_friend(friends);break;case 6:shanchu_friend(friends);break;case 0:break;}}while(choice!=0);printf("谢谢使用通讯录功能!\n");return 0;}//新建void new_friend(struct friends_list friends[]){struct friends_list f;int choice;if(Count==50){printf("通讯录已满!\n");return;}printf("请输入新联系人的姓名:");scanf("%s",&);printf("请输入新联系人的年龄:");scanf("%s",&f.age);printf("请输入新联系人的联系电话:");scanf("%s",&f.telephone);printf("请输入新联系人的学号:");scanf("%s",&f.sn);printf("请输入新联系人的班级:");scanf("%s",&f.banji);printf("请输入新联系人的地址:");scanf("%s",&f.address);printf("请输入新联系人的性别<男/女>:");scanf("%s",&f.sex);printf("您添加了一个记录,内容如下:\n");printf("\t~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~\n");printf("\t 姓名性别班级学号地址电话年龄 \n");printf("\t %s %s %s %s %s %s %s\n",,f.sex,f.banji,f.sn,f.address,f.telephone,f.age);printf("\t~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~\n");printf("您确定要添加吗<1:确定:否>?");scanf("%d",&choice);if(choice==1){fp=fopen("file1.txt","a");fprintf(fp,"%s %s %s %s %s %s %s\n",,f.sex,f.banji,f.sn,f.address,f.telephone,f.age);fclose(fp);printf("\t& & & & & & & &\n");printf("\t&您已添加成功&\n");printf("\t& & & & & & & &\n");}elsereturn;friends[Count]=f;Count++;}//显示void show_friend(struct friends_list friends[]){struct friends_list f;printf("\t~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~\n");printf("\t 姓名性别班级学号地址电话年龄 \n");printf("\t~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~\n");fp=fopen("file1.txt","r");while(!feof(fp)){fscanf(fp,"%s %s %s %s %s %s %s\n",&,&f.sex,&f.banji,&f.sn,&f.address,&f.telephone,&f .age);printf("\t %s %s %s %s %s %s %s\n",,f.sex,f.banji,f.sn,f.address,f.telephone,f.age);}fclose(fp);printf("\t~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~\n");}//查询void search_friend(struct friends_list friends[]){ char name[10];char sn[12];int i,flag=0,a=0;int choice=0;struct friends_list f;fp=fopen("file1.txt","r");while(!feof(fp)){fscanf(fp,"%s %s %s %s %s %s %s\n",&,&f.sex,&f.banji,&f.sn,&f.address,&f.telephone,&f .age);printf("\t %s %s %s %s %s %s %s\n",,f.sex,f.banji,f.sn,f.address,f.telephone,f.age);a++;}printf("一共有记录数为:%d\n",a);printf("请选择查询方法<1:按姓名:按学号>");scanf("%d",&choice);if(choice==1){printf("^ ^您选择了按姓名查询\n");printf("请输入要查询学生的姓名:");scanf("%s",name);fp=fopen("file1.txt","r");for(i=0;i<a;i++){fscanf(fp,"%s %s %s %s %s %s %s\n",&friends[i].name,&friends[i].sex,&friends[i].banji,&friends[i ].sn,&friends[i].address,&friends[i].telephone,&friends[i].age);if(strcmp(name,friends[i].name)==0){printf("\t~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~\n");printf("\t 姓名性别班级学号地址电话年龄 \n");printf("\t %s %s %s %s %s %s %s\n",friends[i].name,friends[i].sex,friends[i].banji,friends[i].sn,friends[i].address,friends[i].telephone,friends[i].age);printf("\t~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~\n");}elseprintf("无此联系人!\n");}}if(choice==2){printf("^ ^您选择了按学号查询");printf("请输入要查询学生的学号:");scanf("%s",&sn);fp=fopen("file1.txt","r");for(i=0;i<a;i++){fscanf(fp,"%s %s %s %s %s %s %s\n",&friends[i].name,&friends[i].sex,&friends[i].banji,&frie nds[i].sn,&friends[i].address,&friends[i].telephone,&friends[i].age);if(strcmp(sn,friends[i].sn)==0){printf("\t~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~\n");printf("\t 姓名性别班级学号地址电话年龄 \n");printf("\t %s %s %s %s %s %s %s \n",,f.sex,f.banji,f.sn,f.address,f.telephone,f.age);printf("\t~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~\n");}elseprintf("无此联系人!\n");}fclose(fp);}}//统计void statistics_friend(struct friends_list friends[]){int s=0;int b=0;int i,flag=0,a=0;int choice=0;char banji[10];char sex[12];struct friends_list f;a++;printf("一共有学生的数目:%d\n",a);printf("请选择查询方法<1:按班级:按性别>");scanf("%d",&choice);if(choice==1){printf("~ ~您选择了按班级查询\n");printf("请输入要查询学生的班级:");scanf("%s",banji);fp=fopen("file1.txt","r");for(i=0;i<a;i++){fscanf(fp,"%s %s %s %s %s %s %s\n",&friends[i].name,&friends[i].sex,&friends[i].banji,&frie nds[i].sn,&friends[i].address,&friends[i].telephone,&friends[i].age);if(strcmp(banji,friends[i].banji)==0)b++;}printf("%s共有%d个学生\n",banji,b);}if(choice==2){printf("~ ~您选择了按性别查询\n");printf("请输入要查询学生的性别:");scanf("%s",sex);fp=fopen("file1.txt","r");for(i=0;i<a;i++){fscanf(fp,"%s %s %s %s %s %s %s\n",&friends[i].name,&friends[i].sex,&friends[i].banji,&frie nds[i].sn,&friends[i].address,&friends[i].telephone,&friends[i].age);if(strcmp(sex,friends[i].sex)==0)s++;}printf("%s共有%d个学生\n",sex,s);}fclose(fp);}//修改void xiugai_friend(struct friends_list friends[]){ char name[10];char sn[12];int i;int choice=0;char ch[12];printf("请选择查询方法<1:按姓名:按学号>");scanf("%d",&choice);if(choice==1){printf("* *您选择了按姓名查询\n");printf("请输入要查询学生的姓名:");scanf("%s",name);}else{printf("* *您选择了按学号查询");printf("请输入要查询学生的学号:");scanf("%s",&sn);}fp=fopen("file1.txt","r");for(i=0;i<Count;i++){fscanf(fp,"%s %s %s %s %s %s %s\n",&friends[i].name,&friends[i].sex,&friends[i].banji,&frie nds[i].sn,&friends[i].address,&friends[i].telephone,&friends[i].age);if((strcmp(name,friends[i].name)==0)||(strcmp(sn,friends[i].sn)==0)){printf("\t~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~\n");printf("\t 姓名性别班级学号地址电话年龄 \n");printf("\t %s %s %s %s %s %s %s\n",friends[i].name,friends[i].sex,friends[i].banji,friends[i].sn,friends[i].address,friends[i].telephone,friends[i].age);printf("\t~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~\n");printf("请选择要修改的项目<1:姓名:性别:班级:学号:地址:电话:年龄:退出>:\n");scanf("%d",&choice);printf("请输入要修改的内容:");scanf("%s",ch);switch(choice){case 1:strcpy(friends[i].name,ch);break;case 2:strcpy(friends[i].sex,ch);break;case 3:strcpy(friends[i].banji,ch);break;case 4:strcpy(friends[i].sn,ch);break;case 5:strcpy(friends[i].address,ch);break;case 6:strcpy(friends[i].telephone,ch);break;case 7:strcpy(friends[i].age,ch);break;case 0:break;}printf("\t~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~\n");printf("\t 修改后的信息如下: \n");printf("\t 姓名性别班级学号地址电话年龄 \n");printf("\t %s %s %s %s %s %s %s\n",friends[i].name,friends[i].sex,friends[i].banji,friends[i].sn,friends[i].address,friends[i].telephone,friends[i].age);printf("\t~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~\n");printf("\t& & & & & & & &\n");printf("\t&您已添加成功&\n");printf("\t& & & & & & & &\n");}}fclose(fp);}//删除void shanchu_friend(struct friends_list friends[]){int i;int choice=0;char name[10];char sn[12];char ch[12];printf("请选择查询方法<1:按姓名:按学号>");scanf("%d",&choice);if(choice==1){printf("& &您选择了按姓名删除\n");printf("请输入要删除学生的姓名:");scanf("%s",name);}if(choice==2){printf("& &您选择了按学号删除");printf("请输入要删除学生的学号:");scanf("%s",&sn);}fp=fopen("file1.txt","r");for(i=0;i<Count;i++){fscanf(fp,"%s %s %s %s %s %s %s\n",&friends[i].name,&friends[i].sex,&friends[i].banji,&frie nds[i].sn,&friends[i].address,&friends[i].telephone,&friends[i].age);if((strcmp(name,friends[i].name)==0)||(strcmp(sn,friends[i].sn)==0)){printf("\t~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~\n");printf("\t 姓名性别班级学号地址电话年龄 \n");printf("\t %s %s %s %s %s %s %s\n",friends[i].name,friends[i].sex,friends[i].banji,friends[i].sn, friends[i].address,friends[i].telephone,friends[i].age); printf("\t~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~\n");printf("是否删除?<1:是:否>:");scanf("%d",&choice);if(choice==1){printf("\t& & & & & & & &\n");printf("\t&您已删除成功&\n");printf("\t& & & & & & & &\n");}elsereturn;}}fclose(fp);}。
简单个人电话号码查询系统设计--程序部分
#include<iostream>#include<fstream>#include<string>using namespace std;int x=0;char a;int j=1;struct TeleNumber //数据类{char name[10]; //姓名double phoneNumber; //固定电话号码double mobileNumber; //移动电话号码char email[10]; //电子邮箱int s;TeleNumber * Next;void ReadFile(istream & in);void input();void display();} ;void TeleNumber::ReadFile(istream & in) //从文件把数据读入到程序{in>>name>>phoneNumber>>mobileNumber>>email;}void TeleNumber::input() //信息输入{cout<<"请输入姓名"<<endl;cin>>name;cout<<"请输入固定电话号码"<<endl;cin>>phoneNumber;cout<<"请输入移动电话号码"<<endl;cin>>mobileNumber;cout<<"请输入电子邮箱"<<endl;cin>>email;s=j++;}void TeleNumber::display() //信息输出{cout<<"姓名:"<<name<<'\t'<<"固定号码:"<<phoneNumber<<'\t'<<"移动电话号码:"<<mobileNumber<<'\t'<<"电子邮箱:"<<email<<endl; }class TeleMessage //功能类{public:TeleMessage(); //构造数据结构~TeleMessage(); //释放单链表void Save(); //数据保存到文件TeleNumber * Search(char *); //信息查找void Sort(); //排序void Insert(); //插入void Remove(); //删除void Change(); //更改void Show(); //显示void Swap(TeleNumber *,TeleNumber *); //两个TeleNumber对象交换数据域private:TeleNumber * End,* Head;ifstream in; //定义读,写文件对象ofstream out;};TeleMessage::TeleMessage(){Head=new TeleNumber; //头插法建立单链表Head->Next=new TeleNumber;End=Head->Next;in.open("TeleNumber.text"); //打开外存文件,看是否有数据存在if(!in)cout<<"电话系统中没有任何号码"<<endl;else{while(!in.eof()) //如果有,则打开,并将数据读取到程序{End->ReadFile(in);if(End->name[0]=='\0')break;End->Next=new TeleNumber;End=End->Next;}in.close();cout<<"读取电话号码系统成功!"<<endl;}cout<<"输入任意字符键继续"<<endl;cin>>a;}TeleMessage::~TeleMessage() //释放单链表{TeleNumber * temp;while(Head->Next!=End){temp=Head->Next;Head=Head->Next;delete temp;}delete Head,End; //删除头尾指针}void TeleMessage::Save() //保存文件{out.open("TeleNumber.txt"); //建立外存文件TeleNumber.txtfor(TeleNumber *p=Head->Next;p!=End;p=p->Next)out<<p->name<<"\t"<<p->phoneNumber<<"\t"<<p->mobileNumber<<"\t"<<p->email<<en dl; //将数据存到外存文件里out.close();cout<<"保存成功!"<<endl;}void TeleMessage::Swap(TeleNumber *p1,TeleNumber *p2) //两个类对象数据域进行交换{TeleNumber * temp=new TeleNumber;strcpy(temp->name,p1->name);strcpy(temp->email,p1->email);temp->mobileNumber=p1->mobileNumber;temp->phoneNumber=p1->phoneNumber;temp->s=p1->s;strcpy(p1->name,p2->name);strcpy(p1->email,p2->email);p1->mobileNumber=p2->mobileNumber;p1->phoneNumber=p2->phoneNumber;p1->s=p2->s;strcpy(p2->name,temp->name);strcpy(p2->email,temp->email);p2->mobileNumber=temp->mobileNumber;p2->phoneNumber=temp->phoneNumber;p2->s=temp->s;}void TeleMessage::Sort() //起泡排序{TeleNumber *p=NULL,*q=NULL;int exchange=j-1;int bound;int i;while(exchange){bound=exchange;exchange=0;for(p=Head->Next,i=1;i<bound;i++,p=p->Next)if(p->mobileNumber>p->Next->mobileNumber){Swap(p,p->Next); //调用交换函数exchange=p->s;}}Show();}void TeleMessage::Insert() //插入{End->input(); //从单链表尾部插入End->Next=new TeleNumber;End=End->Next;cout<<endl<<"插入成功"<<endl;}void TeleMessage::Remove() //删除{char name[20];TeleNumber * p=new TeleNumber,*temp=NULL;cout<<"请输入要删除人的姓名:"<<endl;cin>>name;p->Next=Search(name); //先进行查找,找到所要删除的结点if(Search(name)){temp=p->Next;p->Next=p->Next->Next; //摘链delete temp;cout<<"\t\t删除成功!"<<endl;}else{cout<<"\t\t没有找到!"<<endl;}}TeleNumber * TeleMessage::Search(char * name){for(TeleNumber *p=Head->Next;p!=End;p=p->Next)if(!strcmp(p->name,name)){if(x==4){p->display();return p;}elsereturn p;}if(x==4)cout<<"查无此人"<<endl;return 0;}void TeleMessage::Change() //修改信息{char name[20];cout<<"请输入要修改的人的姓名:";cin>>name;if(Search(name)){cout<<"\t\t已找到个人的信息,请输入新的信息!"<<endl;Search(name)->input();cout<<"修改成功!"<<endl;}else{cout<<"\t\t没有找到!"<<endl;}}void TeleMessage::Show(){for(TeleNumber * p=Head->Next;p!=End;p=p->Next)p->display();}int main(){bool flag=true;TeleMessage tele;char name[20];while(flag){system("cls");cout<<" 简单个人电话号码查询系统"<<endl;cout<<"1.增加电话号码"<<endl;cout<<"2.显示电话号码"<<endl;cout<<"3.排序个人电话"<<endl;cout<<"4.查找个人电话"<<endl;cout<<"5.删除个人信息"<<endl;cout<<"6.修改个人信息"<<endl;cout<<"7.保存个人信息*"<<endl;cout<<"0.退出系统*"<<endl;cout<<"请选择:";cin>>x;switch(x){case 0:flag=false;break;case 1:tele.Insert();break;case 2:tele.Show();break;case 3:tele.Sort();break;case 4:cout<<"请输入欲查找认得姓名"<<endl;cin>>name;tele.Search(name);break;case 5:tele.Remove();break;case 6:tele.Change();break;case 7:tele.Save();break;}cout<<"输入任意字母返回"<<endl;cin>>a;}return 0;}。
个人通讯录
目录1.课程设计目的 (2)2.主要任务及技术要求 (2)2.1主要任务 (2)2.2技术要求 (2)3.总体设计 (2)3.1总体设计方案 (2)3.1.1总体分析 (2)3.2总体设计 (3)3.2.1总体框图 (3)3.2.2总体流程图 (4)3.3数据库设计 (4)3.3.1用户信息表 (4)3.3.2好友信息表 (5)3.3.3好友分组表 (5)4.个人通讯录系统的实现 (5)4.1老用户登入和新用户注册功能 (5)4.1.1老用户登入 (5)4.1.2新用户注册 (6)4.2在主窗体中显示所有好友的部分信息功能 (7)4.3用户修改密码的功能。
(11)4.4分组设置功能 (12)4.5好友信息添加功能 (15)4.6好友信息编辑功能 (17)5.调试 (20)6.心得体会 (20)参考文献 (20)1.课程设计目的本课程设计是C#语言学习中很重要的实践性环节之一,是在学习完C#课程后进行的一次全面的综合练习。
旨在巩固和加深学生对C#语言课程的基本知识的理解和掌握;掌握C#语言编程和程序调试的基本技能;利用C#语言进行基本的软件设计;掌握书写程序设计说明文档的能力;提高运用C#语言解决实际问题的能力。
2.主要任务及技术要求2.1主要任务(1)根据技术要求和现有开发环境,分析题目;(2)设计软件方案。
包括:模式的选择(B/S或C/S)、数据库的选择、软件功能结构、各功能模块的详细描述、关键程序流程图、数据库表的结构设计等。
(3)使用C#语言,并结合数据库,实现软件功能。
(4)调试、修改并完善程序;(5)生成安装程序,编写软件使用说明书(图文结合进行描述);(6)撰写课程设计报告。
2.2技术要求(1)通讯信息的录入、删除和修改功能;(2)支持通讯信息的精确查询和模糊查询。
3.总体设计3.1总体设计方案3.1.1总体分析(1)需求分析:每个人从小到大一直在不断结识不同的人,因此每一个人都有很多很多的朋友。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
import java.awt.Choice;import java.awt.Container;import java.awt.GridLayout;import java.awt.MenuItem;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.print.Printable;import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.PrintWriter;import java.text.Collator;import java.util.Arrays;import parator;import java.util.Scanner;import javax.swing.JButton;import javax.swing.JDialog;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JMenuBar;import javax.swing.JMenu;import javax.swing.JMenuItem;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextArea;import javax.swing.JTextField;import javax.swing.WindowConstants;public class MyAddBook {public static JFrame frame;public MyAddBook(){frame=new JFrame("个人通讯录");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);JMenuBar menubar=new JMenuBar();JMenu edit=new JMenu("编辑");JMenuItem edit1=new JMenuItem("录入");JMenuItem edit2=new JMenuItem("查询");JMenuItem edit3=new JMenuItem("删除");JMenuItem edit4=new JMenuItem("修改");JMenuItem edit5=new JMenuItem("排序");edit1.addActionListener(new Typein());JMenu show=new JMenu("显示信息");JMenuItem show1=new JMenuItem("同学");JMenuItem show2=new JMenuItem("同事");JMenuItem show3=new JMenuItem("朋友");JMenuItem show4=new JMenuItem("亲戚");JMenuItem show5=new JMenuItem("全体人员");Container c=frame.getContentPane();JPanel pane=new JPanel();c.add(pane);pane.add(menubar);menubar.add(edit);edit.add(edit1);edit.add(edit2);edit.add(edit3);edit.add(edit4);edit.add(edit5);menubar.add(show);show.add(show1);show.add(show2);show.add(show3);show.add(show4);show.add(show5);frame.setSize(300,100);//frame.pack();//查询修改删除class Search{JDialog dialog=new JDialog(frame,"查询对话框",true);public Search(String str,int n){dialog.setSize(250,200);Container c=dialog.getContentPane();dialog.setLayout(new GridLayout(2,1,5,5));JLabel Lsearch=new JLabel("请输入要"+str+"人员的名字:");final JTextField Tname=new JTextField(10);JButton certain=new JButton("确定");JButton cancel=new JButton("取消");//final String in=Tname.getText();JPanel pane1=new JPanel();JPanel pane2=new JPanel();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(new ActionListener() //查询{public void actionPerformed(ActionEvent e){try {FileReader file=new FileReader("D:\\AddressBook.txt");Scanner find=new Scanner(file);while(find.hasNext()){if(find.next().equals(Tname.getText())){dialog.dispose();Typein fd=new Typein();fd.frame=new JFrame("查询结果如下");fd.Tname.setText(Tname.getText());fd.Cgroup.select(find.next());fd.Cbirthyear.select(find.next());fd.Cbirthmonth.select(find.next());fd.Cbirthday.select(find.next());fd.Tphone.setText(find.next());fd.Temail.setText(find.next());fd.Tother.setText(find.next());fd.typein();}}file.close();find.close();} catch (FileNotFoundException e1) {// TODO Auto-generated catch block//e1.printStackTrace();System.out.print("未找到文件");} catch (IOException e2) {// TODO Auto-generated catch block//e2.printStackTrace();System.out.print("未找到该人员");}}});}if(n==3){certain.addActionListener(new ActionListener() //删除{public void actionPerformed(ActionEvent e){try {File file=new File("D:\\AddressBook.txt");Scanner find=new Scanner(file);FileWriter file1=new FileWriter("D:\\AddressBook1.txt",true);PrintWriter write=new PrintWriter(file1);while(find.hasNext()){String s=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(find.next()+'\t');write.print(find.next()+'\t');write.println(find.next());}else {find.next();find.next();find.next();find.next();find.next();find.next();find.next();}}//file.close();find.close();file.delete();write.close();file1.close();File file2=new File("D:\\AddressBook1.txt");file2.renameTo(new File( "D:\\AddressBook.txt"));JOptionPane.showMessageDialog(null,"删除成功","删除结果",RMATION_MESSAGE);} catch (FileNotFoundException e1) {// TODO Auto-generated catch block//e1.printStackTrace();JOptionPane.showMessageDialog(null, "未找到文件");} catch (IOException e2) {// TODO Auto-generated catch block//e2.printStackTrace();System.out.print("未找到该人员");}}});}if(n==4){certain.addActionListener(new ActionListener() //修改{public void actionPerformed(ActionEvent e){try {File file=new File("D:\\AddressBook.txt");Scanner find=new Scanner(file);FileWriter file1=new FileWriter("D:\\AddressBook1.txt",true);PrintWriter write=new PrintWriter(file1);while(find.hasNext()){String s=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(find.next()+'\t');write.print(find.next()+'\t');write.println(find.next());}else{dialog.dispose();Typein fd=new Typein();Typein.y=1;fd.frame=new JFrame("查询结果如下");fd.Tname.setText(Tname.getText());String s1=find.next();fd.Cgroup.select(s1);String s2=find.next();fd.Cbirthyear.select(s2);String s3=find.next();fd.Cbirthmonth.select(s3);String s4=find.next();fd.Cbirthday.select(s4);String s5=find.next();fd.Tphone.setText(s5);String s6=find.next();fd.Temail.setText(s6);String s7=find.next();fd.Tother.setText(s7);fd.typein();if(Typein.z==1){write.print(Tname.getText()+'\t');write.print(s1+'\t');write.print(s2+' ');write.print(s3+' ');write.print(s4+'\t');write.print(s5+'\t');write.print(s6+'\t');write.println(s7);Typein.z=2;}}}//file.close();find.close();file.delete();write.close();file1.close();File file2=new File("D:\\AddressBook1.txt");file2.renameTo(new File( "D:\\AddressBook.txt"));} catch (FileNotFoundException e1) {// TODO Auto-generated catch block//e1.printStackTrace();System.out.print("未找到文件");} catch (IOException e2) {// TODO Auto-generated catch block//e2.printStackTrace();System.out.print("未找到该人员");}}});}cancel.addActionListener(new ActionListener()//取消{public void actionPerformed(ActionEvent e){System.out.println("fdas");//dialog.dispose();}});}}edit2.addActionListener(new ActionListener() //监听查询{public void actionPerformed(ActionEvent e){new Search("查询",2).dialog.setVisible(true);}});edit3.addActionListener(new ActionListener() //监听删除{public void actionPerformed(ActionEvent e){new Search("删除",3).dialog.setVisible(true);}});edit4.addActionListener(new ActionListener() //监听修改{public void actionPerformed(ActionEvent e){new Search("修改",4).dialog.setVisible(true);}});//输出类class Print{public JTextArea area;public Print(String st,int n){JFrame frame = new JFrame(st+"信息如下");frame.setSize(800, 400);//frame.setLocation(350, 150);area = new JTextArea();frame.add(area);frame.setVisible(true);if(n==2)try//排序{int i,j,k;String []all;all=new String[1000];BufferedReader read=new BufferedReader(new FileReader("D:\\AddressBook.txt"));area.append("姓名"+'\t'+"组别"+'\t'+"生日"+'\t'+"电话"+'\t'+"Email"+'\t'+"其他"+'\n');int z=1,count=0;while(z==1){for(i=0;i<1000;i++){String str=read.readLine();if(str!=null){all[i]=str;count++;}else z=0;}}String[] bll;bll=new String[count];for(i=0;i<count;i++)bll[i]=all[i];getSortOfChinese(bll);for (i = 0; i < count; i++)area.append(bll[i]+'\n');read.close();}catch (FileNotFoundException e1) {e1.printStackTrace();}catch (IOException e2){e2.printStackTrace();}if(n==1)try//各类人员{FileReader file=new FileReader("D:\\AddressBook.txt");Scanner find=new Scanner(file);area.append("姓名"+'\t'+"组别"+'\t'+"生日"+'\t'+"电话"+'\t'+"Email"+'\t'+"其他"+'\n');while(find.hasNext()){String str1=find.next();String str2=find.next();if(str2.equals(st)){area.append(str1+'\t');area.append(str2+'\t');area.append(find.next()+' ');area.append(find.next()+' ');area.append(find.next()+'\t');area.append(find.next()+'\t');area.append(find.next()+'\t');area.append(find.next()+'\n');}else{find.next();find.next();find.next();find.next();find.next();find.next();}}file.close();find.close();}catch (FileNotFoundException e1) {e1.printStackTrace();}catch (IOException e2){e2.printStackTrace();}if(n==0)try//全体人员信息{BufferedReader read=new BufferedReader(new FileReader("D:\\AddressBook.txt"));area.append("姓名"+'\t'+"组别"+'\t'+"生日"+'\t'+"电话"+'\t'+"Email"+'\t'+"其他"+'\n');int z=1;while(z==1){String str=read.readLine();if(str!=null)area.append(str+'\n');else z=0;}read.close();}catch (FileNotFoundException e1) {e1.printStackTrace();}catch (IOException e2){e2.printStackTrace();}}}edit5.addActionListener(new ActionListener() //监听排序{public void actionPerformed(ActionEvent e){new Print("按姓名排序后",2);}});show1.addActionListener(new ActionListener() //监听同学{public void actionPerformed(ActionEvent e){new Print("同学",1);}});show2.addActionListener(new ActionListener() //监听同事{public void actionPerformed(ActionEvent e){new Print("同事",1);}});show3.addActionListener(new ActionListener() //监听朋友{public void actionPerformed(ActionEvent e){new Print("朋友",1);}});show4.addActionListener(new ActionListener() //监听亲戚{public void actionPerformed(ActionEvent e){new Print("亲戚",1);}});show5.addActionListener(new ActionListener() //监听全体人员{public void actionPerformed(ActionEvent e){new Print("全体人员",0);}});}public static void main(String []args){new MyAddBook();}public static String[] getSortOfChinese(String[] a) {// Collator 类是用来执行区分语言环境这里使用CHINAComparator cmp = Collator.getInstance(java.util.Locale.CHINA);// JDKz自带对数组进行排序。