文档库 最新最全的文档下载
当前位置:文档库 › 班级通讯录管理系统(java大作业完美版)

班级通讯录管理系统(java大作业完美版)

班级通讯录管理系统(java大作业完美版)
班级通讯录管理系统(java大作业完美版)

一、问题及功能分析

需求分析

功能需求:

1、提供身份验证:能否使用该系统。

2、提供用户注册及修改密码功能。

3、提供对同学通讯信息的增加、删除、修改和查询功能。

4、查询功能要求:能实现根据学号、姓名的精确查询,也能对地区的模

糊查询,比如:查询“广州市天河区”,能列出所有家在广州市天河区的同学信息。

性能需求:

1、操作界面美观、友好。

2、通讯录采用MySQL数据库再用JDBC连接。

系统功能结构

经过需求分析,此班级通讯录主要包括用户的注册登录模块和对联

系人的信息管理模块,系统结构如图

目录结构

该软件主要的实体有用户、联系人和照片,下面介绍各实体的E-R图,通过E-R图来了解实体属性,这里主要介绍联系人和联系人照片的E-R图。

数据库表的设计

本软件共建了三张表:用户表、联系人表和照片表。

用户表

二、概要设计

1、构建开发环境

开发此通讯录所用到的软件环境

●JDK 1.7版本

●MySQL 5.5

●Navicat Premium 数据库可视化工具

●Myeclipse开发工具

2、图形用户界面构成

●登录模块

用户名、密码两个JLabel ,登录、注册、修改密码按钮JButton ,输入用户名、密码的文本框。如图

●联系人信息管理模块

界面上部分是实现查询功能的组件,中间部分是信息显示组件,下面部分是查询返回的JTable列表。如图

三、详细设计

1、登录界面的搭建

login.java

运用了PS设计一些icon以及页面布局方法,实现了登录界面的美化。(详细代码请看工程文件夹下文件login.java)

3、登录窗口功能的实现

login.java、DButil.java

提供了登录校验方法,包括账号密码合法性、修改密码、注册等。(详细代码请看工程文件夹下文件login.java、 DButil.java)

4、主窗体的搭建及功能

MainFrame.java

窗体界面布局,各个事件的监听以及实现。如:查询操作。(详细代码请看工程文件夹下文件MainFrame.java)

5、登录窗体及联系人信息管理窗体所用到的数据库操作方法

DButil.java

定义各种数据库操作方法。如:登录验证、注册、查询、插入等。(详细代码请看工程文件夹下文件DButil.java)

2、登录界面的搭建

3、package Frame;

4、import java.awt.*;

5、import java.awt.event.ActionEvent;

6、import java.awt.event.ActionListener;

7、import java.sql.*;

8、import javax.swing.*;

9、import db.DButil;

10、public class login extends JFrame implements

ActionListener{

11、private JPanel jp=new JPanel();

12、//创建标签数组

13、private JLabel[] jlArray={new JLabel("用户名"), new

JLabel("密码"),new JLabel("")};

14、

15、private JButton jb1;

16、private JButton jb2;

17、private JButton jb3;

18、private JTextField jtf=new JTextField();

19、private JPasswordField jpf=new JPasswordField();

20、

21、//布局构造实现方法

22、

23、public login(){

24、Icon icon1=new ImageIcon("login.jpg");

25、Icon icon2=new ImageIcon("reset.jpg");

26、Icon icon3=new ImageIcon("zhuce.jpg");

27、

28、JPanel jp=new JPanel(){

29、protected void paintComponent(Graphics g) {

30、 ImageIcon icon = new

ImageIcon("bg.jpg");

31、 Image img = icon.getImage();

32、 g.drawImage(img, 0, 0,

icon.getIconWidth(), icon.getIconHeight(),

icon.getImageObserver());

33、}};

34、jp.setLayout(null);

35、jb1=new JButton(icon1);

36、jb2=new JButton(icon3);

37、jb3=new JButton(icon2);

38、jlArray[0].setBounds(70,120,90,32);

39、jb1.setBounds(365,110,130,60);

40、jb2.setBounds(365,170,130,60);

41、jlArray[1].setBounds(70,170,90,32);

42、//将标签与按钮添加到JPanel容器中

43、jp.add(jlArray[0]);

44、jp.add(jlArray[1]);

45、jp.add(jb1);

46、jp.add(jb2);

47、jb1.addActionListener(this);

48、jb2.addActionListener(this);//为按钮注册动作事

件监听器

49、//添加修改密码的按钮

50、jb3.setBounds(365,230,130,60);

51、jp.add(jb3);

52、jp.add(jtf);

53、jtf.setBounds(140,120,180,30);//设置文本框位置

54、jp.add(jpf);

55、jpf.setBounds(140,170,180,30);//设置密码框位置

56、jpf.setEchoChar('*'); //密码显示字符形式

57、jpf.addActionListener(this); //为密码框注册

动作事件监听器

58、this.setVisible(true);//设置窗体的可见性

59、jpf.addActionListener(this); //为密码框注册

动作事件监听器

60、//设置用于显示登陆状态的标签大小位置,并将其添加进

JPanel容器

61、jlArray[2].setBounds(70,220,300,30);

62、jp.add(jlArray[2]);

63、this.setTitle("登陆");//设置窗体标题

64、this.setBounds(450,200,500,318);//设置窗体的大

65、this.setResizable(false);//设置窗体不让用户调整

大小

66、

this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

67、this.setVisible(true);//设置窗体的可见性

68、this.add(jp);//将窗体添加到面板中

69、jp.setBackground(Color.blue);

70、}

71、public static void main(String[] args) {

72、new login();//创建登陆窗体 }

73、}

6、登录窗口功能的实现

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

//得到用户名与密码

String user=jtf.getText().trim();

String pwd=String.valueOf(jpf.getPassword());//返回密码的字符串表示方式

String sql="";

if(e.getSource()==jtf){//事件源为文本框,切换焦点到密码框

j pf.requestFocus();

}

else if(e.getSource()==jb1||e.getSource()==jpf){

//判断用户名和密码是否匹配查询数据库

i f(DButil.check(user, pwd)){

//登陆成功

MainFrame mf=new MainFrame(jtf.getText());//主窗体

this

}

e lse{

//登陆失败

jlArray[2].setText("对不起,非法的用户名和密码");

this.clear();

}

}

else if(e.getSource()==jb2)

{//事件源为注册按钮

if(user.equals("")||pwd.equals(""))

{//如果注册的用户名为空或者密码为空

jlArray[2].setText("用户名和密码都不得为空!!!");

this.clear();//清空输入文本框

}

else

{

sql="select uid from user where uid='"+user+"'";

if(DButil.isExist(sql))

{//用户名已经存在

jlArray[2].setText("对不起,用户名已存在!!!");

this.clear();//清空输入文本框

}

else

{

sql="insert into user

values('"+user+"','"+pwd+"')";

if(DButil.update(sql)>0)

{//注册成功

jlArray[2].setText("恭喜您!!!注册成功,请登陆");

}

}

}

}

else if(e.getSource()==jb3)//修改密码的监听

{

//判断是否已经输入用户名和密码

if(user.equals("")||pwd.equals(""))

{

jlArray[2].setText("修改密码先输入正确的用户名和密码!!!");

this.clear();//清空输入文本框

}

//判断是否输入了正确的用户名和密码

else if(DButil.check(user,pwd))

{

//正确的用户名和密码

String password=JOptionPane.showInputDialog(this,"修改密码:","请输入新密码",

JOptionPane.PLAIN_MESSAGE);

//得到新的密码为空

if(password==null||password.equals(""))

{

JOptionPane.showMessageDialog(this,"密码不得为空!!!","错误",

JOptionPane.WARNING_MESSAGE);

}

else

{//密码不为空

sql="update user set pwd='"+password+"' where uid='"+user+"'";//更新密码的SQL

if(DButil.update(sql)>0)

{//密码修改成功

this.clear();//清空输入文本框

jlArray[2].setText("恭喜您!!!密码修改成功,请

用新密码登陆");

}

}

}

else

{

JOptionPane.showMessageDialog(this,"用户名或者密码错误!!!","错误",

JOptionPane.WARNING_MESSAGE);

this.clear();//清空输入文本框

}

}

}

7、主窗体的搭建及功能

package Frame;

import javax.swing.*;

import javax.swing.table.DefaultTableModel;

import db.DButil;

import java.awt.*;

import java.awt.event.*;

import java.sql.*;

import java.io.*;

import java.util.*;

public class MainFrame extends JFrame implements ActionListener,ItemListener {

private String uname=null;//当前用户的名字

private boolean isInsert=false;//是否为添加默认为否

private JPanel topjp=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("按学号查找",false);

private ButtonGroup bg=new ButtonGroup();//单选按钮组

private JPanel jpbr=new JPanel();//单选按钮面板

private JPanel jpyInfo=new JPanel();//右侧显示个人信息的面板

private JTextArea jta=new JTextArea(); // 模糊查询得到的信息文本区private JLabel[] jlInfo={new JLabel("学号:"),new JLabel("姓名:"),

new JLabel("性别:"),new JLabel("出生日期:"),

new JLabel("电话号码:"),new JLabel("QQ:"),

new JLabel("Email:"),new JLabel("地址:"),

new JLabel("添加相片")};

private JButton[] jbInfo={new JButton("编辑"),new JButton("保存"), new JButton("浏览"), new JButton("上传"),};

private JLabel jlPhoto=new JLabel();//显示图像的JLabel控件

private JTextField[] jtfInfo=new JTextField[10];

private JTextField jtfPhoto=new JTextField();//添加照片到相册的路径

private JFileChooser jfcPic=new JFileChooser();//上传图像的文件选择器

private DefaultTableModel tableModel;

private JTable table;

//性别部分

private JRadioButton jrbMale=new JRadioButton("男",true);

private JRadioButton jrbFemale=new JRadioButton("女");

private ButtonGroup bgGender=new ButtonGroup();

private JPanel jpGender=new JPanel();//单选按钮面板

private JLabel jlDetail=new JLabel();//右侧显示一幅图片的标签private JSplitPane jspOuter=//上下分割的JSplitPane

new JSplitPane(JSplitPane.VERTICAL_SPLIT,true);

//系统托盘部分

private PopupMenu popup=new PopupMenu();

private SystemTray tray;//定义SystemTray成员变量

private TrayIcon trayIcon;//定义TrayIcon成员变量

private MenuItem exit=new MenuItem("退出程序");//定义菜单

public void initJps()

{//界面上半部分的初始化

topjp.setLayout(null);//设置topjp布局管理器为null

//设置按钮大小并添加到JPanel面板里

jba.setBounds(5,10,120,26);

jba.addActionListener(this);//为模糊查询按钮注册事件监听器

topjp.add(jba);

jbs.setBounds(130,10,80,26);

jbs.addActionListener(this);//为查找按钮注册事件监听器

topjp.add(jbs);//添加按钮到topjp面板里

//设置jtfs文本框大小并添加到jps面板里

jtfs.setBounds(215,10,120,26);

jtfs.addActionListener(this);//为文本框注册事件监听器

topjp.add(jtfs);

//设置单选按钮大小和位置并添加到jpbr面板里同时添加到bg单选按钮组里

jrbxm.setBounds(5,3,50,26);

jrbxm.addItemListener(this);//为单选按钮注册ItemEvent事件监听器

bg.add(jrbxm);

jpbr.add(jrbxm);

jrbbh.setBounds(60,3,50,26);

jrbbh.addItemListener(this);

bg.add(jrbbh);

jpbr.add(jrbbh);

jpbr.setBounds(360,10,200,26);

topjp.add(jpbr);

}

public void initInfo()

{//初始化信息界面

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添加到信息面板tableModel=new DefaultTableModel();

Vector vector1 = new Vector();

DButil db = new DButil();

vector1.add("学号");

vector1.add("姓名");

vector1.add("性别");

vector1.add("出生日期");

vector1.add("电话号码");

vector1.add("QQ");

vector1.add("Email");

vector1.add("地址");

vector1.add("照片路径");

tableModel.setDataVector(null, vector1);

System.out.print(123);

table=new JTable(tableModel);

//table.addMouseListener((MouseListener) this);

table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

JScrollPane js=new JScrollPane(table);

//添加相片部分的控件

jtfPhoto.setBounds(80,250,200,26);//设置得到照片路径的文本框的大小和位置

jpyInfo.add(jtfPhoto);//将得到照片路径的文本框添加到信息面板jbInfo[2].setBounds(285,250,80,26);

jbInfo[2].addActionListener(this);//为添加照片的浏览按钮注册事件监听器

jpyInfo.add(jbInfo[2]);

//上传按钮

jbInfo[3].setBounds(380,250,80,26);

jbInfo[3].addActionListener(this);//为添加照片的浏览按钮注册事件监听器

jpyInfo.add(jbInfo[3]);

for(int i=0;i<9;i++)//添加JLabel,并设置大小和位置

{

jlInfo[i].setBounds(20,10+i*30,60,26);

jpyInfo.add(jlInfo[i]);

}

for(int i=0;i<10;i++)

{//初始化一些文本框

jtfInfo[i]=new JTextField();

}

//学号

jtfInfo[0].setBounds(80,10,135,26);

jpyInfo.add(jtfInfo[0]);

//姓名

jtfInfo[1].setBounds(80,40,135,26);

jpyInfo.add(jtfInfo[1]);

//出生日期

jtfInfo[3].setBounds(80,100,135,26);

jpyInfo.add(jtfInfo[3]);

//电话号码

jtfInfo[4].setBounds(80,130,135,26);

jpyInfo.add(jtfInfo[4]);

//QQ

jtfInfo[5].setBounds(80,160,135,26);

jpyInfo.add(jtfInfo[5]);

//Email

jtfInfo[6].setBounds(80,190,135,26);

jpyInfo.add(jtfInfo[6]);

//地址文本框的添加

jtfInfo[7].setBounds(80,220,285,26);

jpyInfo.add(jtfInfo[7]);

//模糊查询信息文本区的添加

js.setBounds(0,350,600,100);

jpyInfo.add(js);

//编辑、保存按钮

jbInfo[0].setBounds(160,300,80,26);

jbInfo[0].addActionListener(this);

jpyInfo.add(jbInfo[0]);

jbInfo[1].setBounds(260,300,80,26);

jbInfo[1].addActionListener(this);

jpyInfo.add(jbInfo[1]);

//性别部分

jrbMale.setBounds(5,3,50,26);

jrbMale.addItemListener(this); //为单选按钮注册ItemEvent 事件监听器

bgGender.add(jrbMale);

jpGender.add(jrbMale);

jrbFemale.setBounds(60,3,50,26);

jrbFemale.addItemListener(this); //为单选按钮注册ItemEvent 事件监听器

bgGender.add(jrbFemale);

jpGender.add(jrbFemale);

jpGender.setBounds(60,70,125,26);

jpyInfo.add(jpGender);

}

public void clearInfo()//清空信息面板

{

for(int i=0;i<10;i++)

{

jtfInfo[i].setText("");//清空文本框

}

jlPhoto.setIcon(null);//清空图像

}

public void setjtaArea(String information){

if(information.isEmpty()){

JOptionPane.showMessageDialog(this,"所查用户不存在!!!","错误",

JOptionPane.WARNING_MESSAGE);

}

else {

jta.setText(information);

}

}

public void setInfo(Vector pInfo)//将信息向量设置到信息面板中

{//将信息向量按规则填到信息面板里

this.clearInfo();

if(pInfo.size()==0)

{

JOptionPane.showMessageDialog(this,"所查用户不存在!!!","错误",

JOptionPane.WARNING_MESSAGE);

}

else

{

for(int i=0;i<2;i++)

{//显示联系人编号和姓名

jtfInfo[i].setText(pInfo.get(i));

}

if(pInfo.get(2).equals("男"))

{//显示性别

jrbMale.setSelected(true);

}

else

{//显示性别

jrbFemale.setSelected(true);

}

for(int i=3;i<9;i++)

{//显示出生日期、电话号码和QQ

jtfInfo[i].setText(pInfo.get(i));

}

}

}

public Vector getInfo()//从信息面板得到用户输入的信息

{

Vector pInfo=new Vector();

pInfo.add(jtfInfo[0].getText().trim());//添加pid

pInfo.add(jtfInfo[1].getText().trim());//添加pname

String gender=jrbMale.isSelected()?"男":"女";

pInfo.add(gender);//添加性别

pInfo.add(jtfInfo[3].getText().trim());//出生日期

pInfo.add(jtfInfo[4].getText().trim());//电话号码

pInfo.add(jtfInfo[5].getText().trim());//QQ

pInfo.add(jtfInfo[6].getText().trim());//Email

pInfo.add(jtfInfo[7].getText().trim());//地址

String photoPath=jtfPhoto.getText().trim();//得到照片路径

pInfo.add(photoPath);//照片路径

return pInfo;

}

public void monitorSaveButton() //监听保存按钮的方法

{

String sql="";

String pid=jtfInfo[0].getText().trim();//得到联系人的编号

String pname=jtfInfo[1].getText().trim();//得到联系人的姓名

String gender=jrbMale.isSelected()?"男":"女";

String s1=jtfInfo[3].getText().trim();

String s2=jtfInfo[4].getText().trim();

String s3=jtfInfo[5].getText().trim();

String s4=jtfInfo[6].getText().trim();

String s5=jtfInfo[7].getText().trim();

String s6=jtfPhoto.getText().trim();

String sqla="select * from contacts where pid='"+pid+"'";//判断此编号是否存在的SQL

String sqlb="select * from contacts where pname='"+pname+"'";//判断此姓名是否存在的SQL

boolean isIdExist=DButil.isExist(sqla);//得到编号是否存在

boolean isNameExist=DButil.isExist(sqlb);//得到姓名是否存在

if(!(pid.equals(" ")||pname.equals(" ")))

{

if(isIdExist||isNameExist){

JOptionPane.showMessageDialog(this,"联系人已存在"+

" , 添加联系人失败","错误",JOptionPane.WARNING_MESSAGE);

}

else {

sql="insert into contacts values (?,?,?,?,?,?,?,?,?,?)";

String[]

paras={pid,pname,gender,s1,s2,s3,s4,s5,s6,null};

if(DButil.update(sql,paras)>0){

JOptionPane.showMessageDialog(this,"联系人保存成功","提示",

https://www.wendangku.net/doc/e311229127.html,RMATION_MESSAGE);

}

}

}

}

public void setEditable(boolean Editable)//设置信息窗口是否可编辑{

jrbFemale.setEnabled(Editable);//设置性别是否可编辑

jrbMale.setEnabled(Editable);//设置性别是否可编辑

for(int i=0;i<8;i++)

{

jtfInfo[i].setEditable(Editable);//设置文本框是否可编辑}

}

public void monitorSearchButton()//监听查找按钮的方法

{

String name=jtfs.getText().trim();

String sql="";//声明查找字符串

if(name.equals(""))

{

JOptionPane.showMessageDialog(this,"查找条件不能为空!!!",

"错误", JOptionPane.WARNING_MESSAGE);

}

else

{

if(jrbxm.isSelected()==true)

{//按姓名查找

sql="select

pid,pname,pgender,pbirthday,pnumber,pQQ,pemail,padress,pphoto from contacts where pname='"+name+"'";

this.setInfo(DButil.getPerInfo(sql));//设置信息面板为该联系人的信息

}

else

{//按编号查找

sql="select

pid,pname,pgender,pbirthday,pnumber,pQQ,pemail,padress,pphoto from contacts where pid='"+name+"'";

this.setInfo(DButil.getPerInfo(sql));//设置信息面板为该联系人的信息

}

}

this.setEditable(false);//设置面板不可编辑

}

public void monitorRandomSearchButton(String information){ //监听模糊查询按钮

String adress=jba.getText().trim();

String sql="";//声明查找字符串

if(adress.equals(""))

{

JOptionPane.showMessageDialog(this,"查找条件不能为空!!!",

"错误", JOptionPane.WARNING_MESSAGE);

}

else{

sql="select

pid,pname,pgender,pbirthday,pnumber,pQQ,pemail,padress,pphoto from contacts where padress like '%天河区%'";

}

}

public MainFrame(String uname)

{ //主窗体构造器

this.uname=uname;//设置用户名

this.initJps();//界面上半部分的搭建

this.initInfo();

jspOuter.setDividerLocation(46);//设置分割窗体JSplitPane的位置

jspOuter.setTopComponent(topjp);//设置窗体上半部分的控件

jspOuter.setBottomComponent(jpyInfo);//设置下半部分的控件

//设置窗体关闭按钮执行的动作

this.add(jspOuter);

this.addWindowListener(

new WindowAdapter()

{

@SuppressWarnings("deprecation")

public void WindowClosing(WindowEvent e)

{

//将窗体隐藏

MainFrame.this.hide();

}

}

);

//设置主窗体的图标、标题、大小以及可见性

this.setResizable(false);//设置窗体不让调整大小

this.setTitle(uname+"的通讯录");

this.setBounds(420,80,618,550);

this.setVisible(true);

}

public void actionPerformed(ActionEvent e) {

if(e.getSource()==jbInfo[1])

{//保存按钮的监听

this.monitorSaveButton();

}

else if(e.getSource()==jba)

{//模糊查询按钮的监听

DButil db = new DButil();

Vector vector1 = new Vector();

vector1.add("学号");

vector1.add("姓名");

vector1.add("性别");

vector1.add("出生日期");

vector1.add("电话号码");

vector1.add("QQ");

vector1.add("Email");

vector1.add("地址");

vector1.add("照片路径");

String ad = jtfs.getText().trim();

tableModel.setDataVector(db.getData(ad),vector1);

}

else if(e.getSource()==jbInfo[2])

{//打开图像文件路径

jfcPic.showOpenDialog(this);

if(jfcPic.getSelectedFile()!=null)

{

jtfPhoto.setText(""+jfcPic.getSelectedFile());

}

}

else if(e.getSource()==jbInfo[0])

{//编辑按钮的监听

this.setEditable(true);//设置信息面板可编辑

}

else if(e.getSource()==jbs||e.getSource()==jtfs)

{//查找,按按钮或者在文本框里敲回车

this.monitorSearchButton();

}

}

public void itemStateChanged(ItemEvent e) {

}

public static void main(String[] args){

}

}

8、登录窗体及联系人信息管理窗体所用到的数据库操作方法

package db;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.ResultSetMetaData;

import java.sql.Statement;

import java.util.Vector;

public class DButil

{

private static String jdbcName="org.gjt.mm.mysql.Driver";//声明驱动类字符串

//声明数据库连接字符串

private static String dbUrl="jdbc:mysql://127.0.0.1:3306/maillist";

private static String dbUserName="root";

private static String dbPassword="admin";

private static Connection con=null;//声明数据库连接对象引用

private static Statement stat=null;//声明语句对象引用

private static PreparedStatement pstmt=null;

private static ResultSet rs=null;//声明结果集对象引用

private static PreparedStatement psInsert=null;//声明预编译语句对象引用

public static Connection getConnection()//得到数据库连接的方法

{

System.out.println("连接中..");

try

{

Class.forName(jdbcName);//加载驱动类

con=DriverManager.getConnection(dbUrl,dbUserName,dbPassword);//得到连接

System.out.println("成功连接");

}

catch(Exception e){e.printStackTrace();}

return con;//返回连接

}

public static boolean check(String user,String pwd)//登陆验证

{

boolean flag=false;

try

{

con=DButil.getConnection();//得到数据库连接

stat=con.createStatement();//创建语句对象

rs=stat.executeQuery("select pwd from user where uid='"+user+"'");

rs.next();

String spwd=rs.getString(1);//得到密码

if(spwd.equals(pwd))

{

flag=true;//密码匹配,登陆成功

}

}

catch(Exception e)

{

flag=false;//有任何异常发生,登陆失败

}

finally{DButil.closeCon();}//关闭数据库连接

return flag;

}

//某条记录是否存在

public static boolean isExist(String sql)

{

boolean flag=false;//设置返回值

try

{

con=DButil.getConnection();//得到数据库连接

stat=con.createStatement();//创建语句对象

rs=stat.executeQuery(sql);//执行查询

if(rs.next())

{

flag=true;//存在,设置返回值为true

Java课程设计-个人通讯录管理系统

《JAVA程序设计》课程设计说明书

目录 1 引言 0 1.1课程设计选题 0 1.2课程设计的目的 0 1.3本选题的设计背景 0 2 需求分析 0 2.1 功能需求 0 2.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源代码

/** * 业务类 */ public class PABmanager { /** * 系统启动 */ public static void main(String[] args) { Scanner input = new Scanner(System.in); 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 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)) { break; }else{ } } }else if ("3".equals(in2)) { System.exit(-1); }else{ } } } }

个人通讯录管理系统java源代码

package cn pab import java.util.List; import java.util.Scanner; import cn.pab.dao.PersonDao; import cn.pab.dao.TypeDao; import https://www.wendangku.net/doc/e311229127.html,erDao; import cn.pab.dao.impl.PersonDaoImpl; import cn.pab.dao.impl.TypeDaoImpl; import https://www.wendangku.net/doc/e311229127.html,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("******** *** 成功登录个人通讯录管理系统 nm\、\ ? //System.out.print(" \n 退出系统):"); }else{ System.out.println(" System.exit(-1); } }else if ("2".equals(in)) { 请选择操作(1. 类别管理 2. 联系人管理 3. 用户名或密码错误,不能登录!");

个人通讯录管理系统,java源代码

package cn.pab.manager; import java.util.List; import java.util.Scanner; import cn.pab.dao.PersonDao; import cn.pab.dao.TypeDao; import https://www.wendangku.net/doc/e311229127.html,erDao; import cn.pab.dao.impl.PersonDaoImpl; import cn.pab.dao.impl.TypeDaoImpl; import https://www.wendangku.net/doc/e311229127.html,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();

班级通讯录管理系统课程设计分析报告

高级语言程序设计(1)课程设计 专业班级学号 姓名完成日期指导教师: 1.程序设计说明书 【设计题目】班级通讯录管理系统 【问题描述】 信息1002班上学生的通讯基本信息包含姓名、电话号码、QQ号和宿舍号。对信息1002班学生的基本通讯信息进行统一整理,并可以按电话号码或姓名等查到学生个人基本通讯信息。可以显示所有的通讯记录,并对现有的通讯记录进行修改和增删等处理。 【基本要求】 1.通过此软件可以直接录入各个学生的基本通讯信息,并且会将所有信息自动保存到磁盘 上。 2.通过此软件可以直接对已录入的各个学生的通讯基本信息进行修改,并且修改完成后会将 更改后的信息情况自动保存到原磁盘文件中。 3.通过此软件可以直接对信息1002班每个同学的基本信息情况进行查询。 【算法思想】 1.根据要求,通讯录数据以文本文件存放在文件中: 2.需要提供文件的输入输出的等操作: 3.还需要保存记录已进行修改,删除,查找的操作: 4.另外还需提供键盘式选择菜单实现功能的选择。 【总体设计】 图1系统功能模块图 【详细设计】 主函数 主函数设计要求简洁,只提供部分提示语和函数的调用 【程序】

图2.主函数流程图 Voidmenu()/*主界面*/ { intn,w1; voidenter();voidadd();voidmodify();voidbrowse();voiddelete();voidsearch(); do { puts("\t*******菜单**************\t\n\n"); puts("\t\t\t\t1.新建联系人"); puts("\t\t\t\t2.添加联系人"); puts("\t\t\t\t3.修改"); puts("\t\t\t\t4.删除"); puts("\t\t\t\t5.浏览"); puts("\t\t\t\t6.查找"); puts("\t\t\t\t7.退出"); puts("\n\n\t*****信息1002班通讯录*************\t\n"); printf("请选择服务种类(1-7):[]\b\b"); scanf("%d",&n); if(n<1||n>7) {w1=1;getchar();} elsew1=0; }while(w1==1); switch(n) { case1:enter();break;/*输入模块*/ case2:add();break;/*添加模块*/ 【模块流程图】 main函数

JAVA课程设计--个人通讯录管理系统

JAVA课程设计 课题:个人通讯录管理系统 课程名称:java课程设计 院系:计算机科学与技术学院班级:09计本 组员: 组员: 组员: 组员: 指导教师:

一、个人通讯录管理系统概述 1、需求分析 通讯录在当今的日常生活工作中的应用是十分普及的。每个人都有可能拥有大量的通讯录资料信息,当前大家一般都用手工来记录所有的通讯录信息。随着时代的进步,人们的联系信息,联系方式变得复杂而多样化,通讯录信息的大量增加,导致管理这些信息资料就成了问题。直接操作来查找,添加,修改,删除这些信息,由于数据繁多,工作量十分巨大,查找,编辑都十分困难,而且极易出错,容易造成资料的混乱或者丢失。在各种手机,商务通内设的电话簿尽管携带方便却又存在“记录量少,界面小,浏览不方便,记录数据信息不全面”的缺点。有些人利用Excel 或Word编制通讯录,虽然数据比较全面,信息比较充分,可是查找极其不便,维护起来也麻烦。 所以运用数据库技术,在计算机中建立一个通讯录资料管理系统十分必要。使通讯录资料管理工作规范化,系统化,程序化,避免资料管理中的混乱,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改通讯录的情况。 2、系统总体规划 1.2.1 系统功能简介 个人通讯录系统。在明确了系统目标与数据库结构的前提下,设计出该系统的主要功能:系统登录、数据输入与修改、数据的删除、联系人和群组管理等。 主要功能包括: (1)可以登录和注册用户; (2)可以显示已有联系人和分组的基本信息。 (3)用户可以对自己已有的联系人和分组进行维护;如:删除和修改。 (4)用户可以随意添加自己的联系人和分组; 1.2.2 系统功能模块规划 系统的整体功能模块框架如图1.1所示:

java课程设计(通讯录管理系统)

合肥学院 计算机科学与技术系 课程设计报告 2013~2014学年第二学期 课程面向对象课程设计 课程设计名称通讯录程序 学生姓名XXX 学号 专业班级XXXXX 指导教师XXX 20 年月

目录 一、设计题目 (1) 二、设计要求 (1) 三、总体设计 (1) 3.1系统功能框架 (1) 3.2系统功能说明 (3) 四、详细设计 (3) 1.数据结构设计 (3) 2.系统模块设计 (10) 五、运行结果 (13) 一.设计题目 随着社会的进步与发展,通讯越来越密切。希望能通过对java课程设计的学习和掌握来编写一个通讯录管理系统。 二.设计要求 (1)只能使用Java语言,采用面向对象方法进行设计,要求源程序要有适当的注释,使程序容易阅读。 (2)程序必须与数据库进行通信。

(3)系统必须是图形用户界面的形式并连接数据库 三. 总体设计 3.1 3.2 系统功能说明 (1)具有新用户注册功能。 (2)具有注册用户登录功能。 (3)具有数据的录入功能。 (4)具有数据查询功能,可以实现查询全部信息和按条件执行查询。(5)具有按条件删除数据功能。

(6)具有统计功能 4. 详细设计 4.1数据结构设计(java程序设计) //登录系统 package com.ibm.etp.addressbook.action; import java.util.HashMap; import java.util.List; import https://www.wendangku.net/doc/e311229127.html,er; import com.ibm.etp.addressbook.service.LoginService; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport { private static final long serialVersionUID = 1L; public String username; public String password; private String message; @Override public String execute() throws Exception { HashMap result = new HashMap(); List list = null; System.out.println(username); if(username == null || username.trim().length() == 0) { result.put("success", false); result.put("msg", "https://www.wendangku.net/doc/e311229127.html,ername.empty"); } else if(password == null || password.trim().length() == 0) { result.put("success", false); result.put("msg", "login.password.empty"); } else { LoginService ls = new LoginService(); list = ls.checkLogin(username); } if(list == null) { result.put("success", false); result.put("msg", "https://www.wendangku.net/doc/e311229127.html,er.not.exist"); } else if(list.get(0).getPassword().equals(password)) { result.put("success", true); result.put("msg", "login.success"); } else {

Java通讯录管理系统课程设计报告0001

课程设计报告 (本科) 课程: 面向对象分析程序设计 学号: 姓名: 班级: 教师: 时间: 计算机科学与技术系

设计名称: 通讯录管理系统 设计内容、目的与要求: —~设计内容和目的:随着社会的发展,~人际关系变得越来越重要,为了保持良 好的人际关系,必须经常与亲戚、朋友、同学、同事和其他一些人保持联系,因 此,为了能够快速查找到联系人的信息,节省查找时间,可以创建一个通讯录管 理系统。 基本要求:有电话录入,修改,增加,删除,按姓名查询 ,按电话号码查询, 按部门查询,按部门显示,显示所有电话号码信息,打印等功能。 计划与进度安排: 4日一5月10日写需求分析,开会讨论需要实验的功能以及如何实现。 11日一5月16日 概要设计,分组把得到的系统扩展用例图转换为和。 17日一5月22日详细设计,详细设计每个模块实现算法,所需的局部结构。 23日一5月28日根据每人分工编写每人负责的代码。 29日一6月2日 整合大家代码,并做debug 。 3日一6月6日最后的测试、除错、修改细节以及文档编写。 设计过程、步骤(可加页): 通讯录管理系统给用户提供了一个在__Windows 操作系统上运行的通讯录管 理平台,用户可以对同学、同事、亲戚、朋友进行在电话号码、姓名以及简介等 方面的添加、删除、修改等管理操作。同时系统还可以判断登录用户,根据用户 的不同,其拥有的数据库也不同。 通讯录管理系统软件是为用户提供一个保存联系人及信息管理进行辅助的 应用软件、功能描述如下。 1. 用户登陆:进入界面后用户可以选择自己的账户进行登陆。 2. 添加联系人:用户根据提示输入联系人的姓名、简介。可一次性输入多 个联系人的相关信息。系统将联系人的信息存储在数据库的文件中,以便进行管 理、查找和备份。 3. 查询联系人: 4. 删除联系人: 5. 修改联系人: 件中有该联系人存在,则将该电话号码所对应的姓名、电话号码、简介以及得票 数所对应文件中加以修改。由系统提示是否继续进行修改操作, 让用户可多次进 行修改操作。 5月 5月 5月 5月 5月 6月 用以查看联系人的信息以及联系人的电话号码。 用以删除联 系人的信息以及联系人的电话号码。 提示用户输入要进行修改操作的联系人的信息,如果在文

班级通讯录管理系统课程设计报告

班级通讯录管理系统课 程设计报告 Coca-cola standardization office【ZZ5AB-ZZSYT-ZZ2C-ZZ682T-ZZT18】

高级语言程序设计(1)课程设计 专业班级学号 姓名完成日期指导教师: 1.程序设计说明书 【设计题目】班级通讯录管理系统 【问题描述】 信息1002班上学生的通讯基本信息包含姓名、电话号码、QQ号和宿舍号。对信息1002班学生的基本通讯信息进行统一整理,并可以按电话号码或姓名等查到学生个人基本通讯信息。可以显示所有的通讯记录,并对现有的通讯记录进行修改和增删等处理。 【基本要求】 1.通过此软件可以直接录入各个学生的基本通讯信息,并且会将所有信息自动保存 到磁盘上。 2.通过此软件可以直接对已录入的各个学生的通讯基本信息进行修改,并且修改完 成后会将更改后的信息情况自动保存到原磁盘文件中。 3.通过此软件可以直接对信息1002班每个同学的基本信息情况进行查询。 【算法思想】 1.根据要求,通讯录数据以文本文件存放在文件中: 2.需要提供文件的输入输出的等操作: 3.还需要保存记录已进行修改,删除,查找的操作: 4.另外还需提供键盘式选择菜单实现功能的选择。 图1系统功能模块图 【详细设计】 主函数 主函数设计要求简洁,只提供部分提示语和函数的调用 【程序】

图2.主函数流程图 Voidmenu()/*主界面*/ { intn,w1; voidenter();voidadd();voidmodify();voidbrowse();voiddelete();voidsearch(); do { puts("\t*******菜单**************\t\n\n"); puts("\t\t\t\t1.新建联系人"); puts("\t\t\t\t2.添加联系人"); puts("\t\t\t\t3.修改"); puts("\t\t\t\t4.删除"); puts("\t\t\t\t5.浏览"); puts("\t\t\t\t6.查找"); puts("\t\t\t\t7.退出"); puts("\n\n\t*****信息1002班通讯录*************\t\n"); printf("请选择服务种类(1-7):[]\b\b"); scanf("%d",&n); if(n<1||n>7) {w1=1;getchar();} elsew1=0; }while(w1==1); switch(n) { case1:enter();break;/*输入模块*/ case2:add();break;/*添加模块*/ 【模块流程图】 main函数

Java个人通讯录管理系统(主文档)

摘要 这个基于java编写的个人通讯录管理系统含有添加、删除、查找等基本功能。在程序中完成了与数据库的通信,并同样可以对数据库进行添加、查找、删除等功能。 关键词:个人通讯录管理系统、添加、删除、查找、数据库

目录 摘要 (1) 1 绪论 (3) 1.1 设计目的 (3) 1.2 设计内容 (3) 2 程序需求分析 (3) 3 算法分析 (4) 3.1 程序总体设计思想 (4) 3.2 程序设计总体框图 (5) 3.3 程序详细设计 (6) 4 调试过程 (8) 5 体会 (15) 6 参考文献 (15) 7 成员评分......................................................................................................................... 错误!未定义书签。附录(源程序)见另一文档《Java个人通讯录管理系统附录(源程序)》 . (15)

1 绪论 1.1 设计目的 本课程设计是java语言学习中很重要的实践性环节之一,是在学习完java课程后进行的一次全面的综合练习旨在巩固和加深我们对java语言的基本知识的理解和掌握,掌握java语言编程和程序调试的基本技能,利用java语言进行基本的软件设计,掌握书写程序设计说明文档的能力,提高运用java语言解决实际问题的能力。 1.2 设计内容 在设计一个完整的系统中,我从系统的管理员登录界面开始做,另外依据相关要求,对系统增加了数据库支持(Microsoft Access做的数据库),还有对数据库里的数据进行增加、删除、显示所有记录、查询记录、导出备份数据库文件。另外为了界面美观,增加了系统主界面背景界面图片的支持。为了保证数据库的安全,在系统中设立了管理员权限,即只有被允许的用户才可以进入该系统。 2 程序需求分析 设计一个通讯录管理软件,要求如下: 增加记录、删除记录、显示所有记录、查询记录、文件备份、退出。通讯录记录信息包括:姓名,电话,email等。 (1)通讯录的每一条信息包括姓名,单位,电话(可用数组或数据库); (2)输入功能:可以一次完成若干条信息的输入; (3)显示功能:完成全部通讯录信息的显示(一屏最多显示10条,超过十条应能够自动分屏显示); (4)查找功能:完成按姓名查找通讯信息; (5)删除功能:完成按姓名删除通讯信息; (6)应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观。

java个人通讯录程序设计

软件学院 课程设计报告书@ 课程名称面向对象程序设计 设计题目《 个人通讯录管理 专业班级 学号 姓名 指导教师。

2014年6月

目录 1 设计时间............................... 错误!未定义书签。 2 设计目的............................... 错误!未定义书签。 3 设计题目............................... 错误!未定义书签。4设计任务 ............................... 错误!未定义书签。5设计内容 ............................... 错误!未定义书签。整体设计思路............................. 错误!未定义书签。程序运行流程............................. 错误!未定义书签。程序代码................................. 错误!未定义书签。 6 功能模块实现........................... 错误!未定义书签。 7 运行与测试............................. 错误!未定义书签。进入主界面............................... 错误!未定义书签。选择功能模块............................. 错误!未定义书签。8总结与展望 ............................. 错误!未定义书签。参考文献................................. 错误!未定义书签。成绩评定................................. 错误!未定义书签。

JAVA版班级通讯录(含代码)

工商学院 项目名称:班级通讯录程序设计 学生:伟 学号:14404036 班级:14计科数据处理实验班指导教师:喻晓 2015年12月 13 日

目录 1选题背景 (1) 1.1国外选题现状 (1) 1.2开发技术简介 (1) 1.2.1GUI技术简介 (1) 1.2.2输入输出流简介 (1) 1.3系统测试环境 (2) 1.4功能模块及系统流程分析 (2) 1.4.1功能模块 (2) 1.4.2系统流程分析 (3) 2功能设计 (7) 2.1从技术角度分析实现的功能 (7) 2.2从系统角度分析实现的功能 (8) 3详细设计 (10) 3.1界面设计 (10) 3.2关键代码说明 (14) 4测试系统 (17) 总结 (19) 参考文献 (19)

1选题背景 1.1国外选题现状 通讯录在当今的日常生活工作中是十分普及的,每个人都拥有大量的通讯录资料信息,当前大家一般都用手工来记录所有的通讯信息。随着时代的发展,人们的联系方式及信息变得复杂多样,通讯录信息大量增加,导致管理这些信息资料就成了问题。直接操作来查找,添加,修改,删除这些信息,由于数据多,工作量十分巨大,查找,编辑,都很困难,而且极易出错,容易造成资料里的混乱与丢失。所以,运用文件或数据处库技术建立一个通讯录资料系统十分必要,使通讯录资料管理工作规化,程序化,避免资料管理中的混乱。提高信息处理速度和准确性,能够及时准确有效的查询和修改通讯录。 1.2开发技术简介 1.2.1GUI技术简介 GUI,用户与程序之间可以方便地进行交互。Java包含了许多支持GUI设计的类,如按钮,菜单,列表,文本框等组件类,同时要包含窗口,面板等容器类。Java1.0刚出现时,包含一个用于基本GUI编程的类库,Sun把它叫做抽象窗体工具箱(Abstract Window Toolkit,AWT).AWT库处理用户界面元素的方法是把这些元素的创建及其行为委托给每个目标平台(Window,Solaris,Macintosh等)的本地GUI工具进行处理。不同平台的AWT用户界面而存在着不同的bug。程序员们必须在每一个平台上测试他们的应用程序,他们因此嘲笑AWT是“一次编写,到处调试”。 1.2.2输入输出流简介 输入/输出时,数据在通信通道中流动。所谓“数据流(stream)”指的是所有数据通信通道之中,数据的起点和终点。信息的通道就是一个数据流。只要是数据从一个地方“流”到另外一个地方,这种数据流动的通道都可以称为数据流。输入/输出是相对于程序来说的。程序在使用数据时所扮演的角色有两个:一个是源,一个是目的。若程序是数据流的源,即数据的提供者,这个数据流对程序来说就是一个“输出数据流”(数据从程序流出)。若程序是数据流的终点,这个数据流对程序而言就是一个“输入数据流”(数据从程序外流向程序)。

Java课程设计通讯录管理系统

摘要 随着社会的发展,人际关系变来越重要,为了保持良好的人际关系,必须常与亲戚朋友,同学同事保持联系,但有时候存在许多限制条件,因此我们需要为了快速查找联系人的信息,节省查找时间,开发通讯录管理系统。 通讯录管理系统是一个基于C/S模式的个人通讯录管理系统,它是将自己的联系人的具体信息集中处理,成为一个方便人们使用的小软件。在开发过程中应用java,JDK,MYSQL,SWING等技术,由于开发工具与数据库之间的良好使用,可以为开发带来方便,使之成为可视性的系统。 通过采用相关技术,将系统设计的功能全部实现。功能包括:用户登录,添加联系人信息,修改联系人信息,删除联系人信息,查询联系人信息,可以浏览全部通讯录联系人,可以根据数据表的歌字段来查询你要找的联系人等功能。 关键字:C/S架构,联系信息,通讯录,数据库 目录 一、需求分析 (2) 二、系统总体规划 (2) 三、程序流程 (2) 四、设计步骤 (5) 1.数据库表的设计 (5) 2.详细设计 (5) 五、设计总结 (9) 六、结束语 (10) 六、参考文献 (11) 七、程序清单 (12) 1

2 一需求分析 通讯录在当今的日常生活工作中的应用是十分普及的,每个人都拥有大量的通讯录资料信息,当前大家一般都用手工来记录所有的通讯录信息。但随着时代的发展,人们的联系方式及信息变得复杂多样,通讯录信息大量增加,导致管理这些信息资料就成了问题。直接操作来查找,添加,修改,删除这些信息,由于数据多,工作量十分巨大,查找,编辑都很困难,而且极易出错,容易造成资料的混乱或丢失。在各种手机,上午通内设的电话簿尽管携带方便却又存在“记录量少,界面小,浏览不方便,记录信息不全面”的缺点。有人利用Excel 或Word 编制通讯录,虽然数据比较全面,信息比较充分,可是查找及其不便,维护起来也麻烦,所以运用文件或数据库技术建立一个通讯录管资料理系统十分必要,使通讯录资料管理工作规范化,系统化,程序化,避免资料管理中的混乱。提高信息处理速度和准确性,能够及时,准确,有效的查询和修改通讯录的情况。 二系统总体规划 在明确了系统与数据库结构的前提下,设计该系统主要功能:系统登录,数据的输入与修改,数据的删除,联系人和群管理等。 主要功能包括: (1)用户的登录,注册,删除功能; (2)联系人信息的增加,删除,修改,查询的功能; (3)联系人分组的增加,删除的功能; 三程序流程 通讯录管理系 统 按条查询 全部查询 用户数据统计功能 用户数据删除功能 用户数据查询功能 用户数据增添功能 系 统 管 理 登 录 注册新用户

通讯录管理系统--java课程设计

《面向对象程序设计》 课程设计报告 题目:通讯录管理系统软件设计与实现 院(系):信息科学与工程学院 专业班级:计算机科学与技术1201班 学生姓名:程伟 学号:20121183011 指导教师:吴奕 20 14 年 12 月 29 日至20 15 年 1 月 9 日 华中科技大学武昌分校制

面向对象程序设计课程设计任务书

目录 1需求与总体设计 (1) 1.1需求分析 (1) 1.2本系统总体功能 (1) 1.3系统流程图 (2) 1.4本系统E-R图 (5) 2详细设计 (8) 2.1用户登录模块功能 (8) 2.2用户提示功能实现 (8) 2.3帐户修改功能实现 (8) 2.4主窗体功能 (8) 2.5文件读取与新增模块功能 (9) 3编码实现 (9) 3.1用户登录模块代码 (9) 3.2登陆按钮触发事件代码 (11) 3.3主窗体代码 (12) 3.4新增与文件读取模块代码 (19) 4系统测试 (30) 总结 (33)

1需求与总体设计 1.1需求分析 随着社会的发展,现代人的交际圈越来越大,接触的人也越来越多。面对着没完没了的通讯记录,过去的老式人为存储已远远满足不了需求,如果想查询,则需一个一个的翻阅,却怎么都找不到自己的需要的号码。所设计的通讯录系统正是在这种需求之下应运而生的,通讯录管理系统是一个非常通用的管理系统。很多地方都需要拥有自己的通讯录管理系统,以便对自己的同学、同事、朋友等信息资料的管理及使用。所以在这两周的实训中,,通讯录作为一种实用行的工具,有着不可估量的市场前景。 1.2本系统总体功能模块图

1.3系统流程图 系统数据流程图 1.4本系统的E-R图 普通用户实体E-R图 普通用户实体E-R图

Java课程设计个人通讯录管理系统

J a v a课程设计个人通讯 录管理系统 Document serial number【LGGKGB-LGG98YT-LGGT8CB-LGUT-

《JAVA程序设计》 课程设计说明书班级: 学号:姓名: 设计题目: 个人通讯录管理系统 设计时间: 至 指导教师: 评语: 评阅成绩: 评阅教师:

目录

1引言 课程设计选题 《个人通讯录管理系统》 课程设计的目的 通过编写并调试一个Java应用软件,熟悉和掌握使用Java开发应用程序的完整过程。 使学生巩固和加深以Java 语言为基础的面向对象编程技术理论知识的理解,提高实际动手编程能力的培养,掌握以Java为核心的应用软件开发方案,达到能独立阅读、编制和调试一定规模的Java程序的水平。 本选题的设计背景 一直以来就想做一个比较实用的通讯录管理系统,这样可以方便我对于身边联系人信息的管理,防止遗忘和丢失。 在这样一个信息化的社会里,人们的生活也越来越离不开电脑了,本次通过做个人通讯录管理系统,希望摈弃传统的纸质记录的弊端,发挥电脑软件的优势,方便人们对自己的联系人信息的管理。 2需求分析 功能需求 (1)登陆功能。用户可以直接输入用户名和密码,登陆进入通讯录的主功能界面。 (2)注册功能。其他用户可以输入自己的用户名和密码及确认密码,来实现注册成为该通讯录的使用者。 (3)查询功能。在该功能里,用户可以采用模糊查询和精确查询两种查询方式来对自己存储的联系人信息进行查询。 (4)添加功能。在该功能里,用户可以添加自己的常用联系人和分组信息。

(5)修改功能。此功能里,用户可以修改数据库中已存的联系人信息和分组信息,以及个人的登陆密码。 (6)删除功能。在该功能里,用户可以输入自己想要删除的分组名和联系人姓名。 (7)备份功能。用户可以通过保存对话框,选择自己想要保存的联系人信息的路径,然后将其保存为txt文件。 (8)退出功能。用户可以选择退出程序,也可以选择重新登录。 (1)系统的容错能力。在做该系统时,一定要考虑全面可能出现错误信息的地方,然后加上try catch 语句进行捕捉,防止造成系统故障。 (2)系统的对话框提示。当注册用户时,用户名有重复时,提示不可注册;注册密码与确认密码不同时,也要弹出提示,不允许注册等等一系列对话框弹出提示。 (3)在使用数据的查询语句时,尽量使用存储过程提交,方便了对数据库的查询,同时也提高了查询速度。 (4)便捷性。尽量用户界面做的简洁大方美观,有很好的用户界面交互能力,也使用户使用起来更加方便。 系统的开发运行环境 本系统开发平台: Java + sql server 2008 本系统集成开发环境:Eclipse 本系统运行环境: windows 7 家庭普通版 3总体设计 系统体系结构设计 在登陆界面,如果不是该系统的用户的可以点击注册用户名和密码。如果已经是该系统的用户的,可以输入用户名和密码后,登陆进入主功能界面,在主功能界面里,用户可以对通讯录实现以下功能:查询、添加、修改、删除、备份,退出等功能。具体功能结构图如下:

班级通讯录管理系统

班级通讯录管理系统 (线性表应用) 院系:信息工程学院 专业:计算机科学与技术 一.题目:班级通讯录管理系统(线性表及应用) 二.设计目标 通过对班级通讯录管理系统的课程设计,更好地理解程序设计,C语言的基本知识和语法规则,以及数据结构中线性表的应用,从而培养和提高我

们编写程序的能力,而且能帮助学生熟练掌握线性表的基本操作在两种存储结构上的实现,其中以单链表的操作和应用为重点。 三.问题描述 为某个班级建立一个学生通讯录管理系统,可以方便查询每一个学生的宿舍电话手机号﹑及电子邮箱.其功能包括通讯录链表的建立﹑学生通讯信息的查询﹑修改﹑插入与删除,以及整个通讯录表的输出. 四.需求分析 想要建立一个学生通讯录管理系统,方便查询每一个学生的信息.首先,运用C语言中结构体的知识,把学生的各项信息储存到结构体的链表中,定义一个新的结构体类型struct,它包括num, name, phone等不同类型的数据项.其次,运用数据结构中线性表的知识. 1.创建单链表. 建立单链表有两种方法,即头插入法和尾插入法.在这个通讯录的建立中采用尾插入法建立链表. 2.向链表中插入数据 链表结点的插入式要求将一个通讯录数据结点按其编号的顺序插入有序通讯录表的相应位置,以保持其有序性.在这使用两个指针变量分别指向刚访问的结点和下一个结点,寻找插入结点的位置,其中一个指向待插入位置的前一个结点. 3.删除链表中的数据 输入要查找的通讯录的编号或姓名,从表头顺序访问表中结点,查找成功则返回指向查找的通讯者信息的结点,删除结点即可. 4.查找链表中的内容 首先输入要查找的通讯录的学号,从表头顺序访问表中结点,查找成功则返回指向查找的通讯者信息的结点,否则返回一个空的指针. 5. 通讯录的输出

Java课程设计 个人通讯录管理系统

《JAVA程序设计》 课程设计说明书 班级 评

目录 1 引言 (1) 1.1课程设计选题 (1) 1.2课程设计的目的 (1) 1.3本选题的设计背景 (1) 2 需求分析 (1) 2.1 功能需求 (1) 2.2 系统的开发运行环境 (2) 3 总体设计 (2) 3.1 系统体系结构设计 (2) 3.2系统功能模块及主要类设计 (3) 3.3数据库设计 (4) 4 详细设计与实现 (5) 4.1 登录模块 (5) 4.2 注册新用户模块 (6) 4.3 查询模块 (7) 4.4 添加模块 (8) 4.5 修改模块 (9) 4.6删除模块 (11) 4.7备份模块 (11) 4.8退出模块 (12) 5 小结和展望 (12) 参考文献 (13) 附录 (14) 使用说明书 (14)

1引言 1.1课程设计选题 《个人通讯录管理系统》 1.2课程设计的目的 通过编写并调试一个Java应用软件,熟悉和掌握使用Java开发应用程序的完整过程。 使学生巩固和加深以Java 语言为基础的面向对象编程技术理论知识的理解,提高实际动手编程能力的培养,掌握以Java为核心的应用软件开发方案,达到能独立阅读、编制和调试一定规模的Java程序的水平。 1.3本选题的设计背景 一直以来就想做一个比较实用的通讯录管理系统,这样可以方便我对于身边联系人信息的管理,防止遗忘和丢失。 在这样一个信息化的社会里,人们的生活也越来越离不开电脑了,本次通过做个人通讯录管理系统,希望摈弃传统的纸质记录的弊端,发挥电脑软件的优势,方便人们对自己的联系人信息的管理。 2需求分析 2.1 功能需求 (1)登陆功能。用户可以直接输入用户名和密码,登陆进入通讯录的主功能界面。 (2)注册功能。其他用户可以输入自己的用户名和密码及确认密码,来实现注册成为该通讯录的使用者。 (3)查询功能。在该功能里,用户可以采用模糊查询和精确查询两种查询方式来对自己存储的联系人信息进行查询。 (4)添加功能。在该功能里,用户可以添加自己的常用联系人和分组信息。

C++程序设计(班级通讯录)

班级通讯录 1:建立班级类 2:进行信息的初始化 3:实现信息的添加,删除,修改,查询。 #include #include #include using namespace std; struct student{ char name[20]; //姓名 char grade[20]; //班级 char mobile[20]; //手机 char phone[20]; //电话 char email[20]; //电子邮件 char address[20]; //通讯地址 char code[20]; //邮编 }; class students{ public: students() {} void add( char name[20], char grade[20], char mobile[20], char phone[20], char email[20], char address[20], char code[20]); void alter( char name2[20]); // 添加 void del( char name1[20]); // 删除 void inquire(char name3[20]); // 查询 void save(); // 文件保存 void display(); // 显示 protected: student str[40]; static int count; }; int students::count=0; void students::add( char name[20], char grade[20], char mobile[20], char phone[20], char email[20], char address[20], char code[20]) { int x; x=1; strcpy(str[count].name,name); strcpy(str[count].grade,grade); strcpy(str[count].mobile,mobile); strcpy(str[count].phone,phone); strcpy(str[count].email,email);

相关文档
相关文档 最新文档