电话薄Java数据库课程设计毕设论文_第1页
电话薄Java数据库课程设计毕设论文_第2页
电话薄Java数据库课程设计毕设论文_第3页
电话薄Java数据库课程设计毕设论文_第4页
电话薄Java数据库课程设计毕设论文_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 目 录1引言3 1.1课题背景.31.2 课程设计目的 . 31.3 课程设计任务.32系统结构分析. 42.1 需求分析 .42.2 系统模块图. .43数据库设计. 53.1 概念结构设计. 53.2 逻辑结构设计. .63.3 数据库表的建立. 74系统实现.84.1 数据库的连接. 85功能测试 . 95.1 登陆界面. 95.2 主界面.95.3 各功能模块的实现 106系统技术实现. 136.1 SQL Server 2000. 137结束语. 13致.13参考文献.14附录.15通讯录管理系统的设计与实现学生:* 指导老师:*摘 要 本课程设计主要解决通讯录应用的管理问题,设计

2、开发一个简单的通讯录数据库系统 ,实现新建联系人,查找信息,删除信息,修改信息,退出系统等功能。在课程设计中,系统开发平台为Windows XP,程序设计语言采用Java程序语言,数据库采用SQL Server 2000,程序运行平台为WindowsXp。程序通过调试运行,初步实现了设计目标,并且经过适当完善后,将可以应用在通讯录应用的管理中,解决实际问题。关键词 通讯录数据库系统;数据库;通讯录应用1 引言1.1课题背景通讯录是人们日常生活中常用到的工具,它以文件方式保存用户录入的数据,并提供查询的功能供用户查询和使用通讯录信息。随着人类信息技术迅速发展,通讯录经过了传统通讯录,网络通讯录,

3、移动通讯录,部通讯录,每种通讯录都需要一种通讯录管理系统来管理。计算机信息管理技术的应用,个人电脑、掌上电脑、移动等任何联网设备上录入你的联系人的手机、Email、 、MSN、通信地址等通讯录信息,更重要的是能建立准确畅通、简便的信息流通渠道,从而方便人们查找联系人和联系人的基本信息。1.2课程设计目的通讯录是人们日常生活中经常要用到的通讯管理工具,在现实生活中应用非常广泛,从个人到企业,而尤其是在移动通讯领域通讯录的使用使我们感觉是最大受益者。通讯录给人们带来很大的方便,通讯录以文件方式保存用户录入的数据,它可以高效的管理用户数据信息并提供用户一些功能,包括数据的录入、修改、删除、查找以与文

4、件的读写等、通过通讯录数据库系统的设计,熟练掌握Visual C+、SQL Server 2000等工具软件,系统地掌握需求分析、数据库设计、编码实现、测试等软件开发的流程,提高自身分析问题、解决问题的能力。1.3课程设计任务本课程设计任务是通过开发一个数据库通讯录管理系统,学习数据库系统的设计与开发,采用Java和SQL Server2000等软件为开发工具。通过对计算机硬件和软件解决方案的论证,对应用领域进行调查分析,参考各种资料和进行数据库系统开发实践。在指导老师的帮助下,已经基本上成功地实现了设计任务书的要求,使得设计的数据库系统能够实现一般数据库的管理。2系统结构分析2.1 需求分析

5、   通讯录要现最基本的功能,包括新建联系人,查找信息,删除信息,修改信息,退出系统,为此需要首先定义记录项的格式,其基本属性包括、地址、。通讯录管理系统的主要包括以下功能:(1). 新建联系人:操作添加一条新的联系人。(2).查找信息:查出一条已经存在的联系人。(3). 删除信息:删除一个联系人的信息。(4). 修改信息:修改联系人的基本信息。2.2 功能模块图1. 根据上述的功能,可以设计出系统的总体功能模块,如图2.1所示。通信录管理系统新建联系人查找信息修改信息退出系统删除信息图2.1 通讯录管理系统功能模块示意图2.“新建联系人”功能模块包括、地址、四个属性,其如

6、图2.2所示。新建联系人XX地址邮箱 图2.2 新建联系人3数据库设计3.1 概念结构设计根据需求分析抽象出信息结构,可得该系统的E-R图。(1). 用户E-R图,如图3.1所示。用户用户名密码图3.1 用户E-R图根据分E-R图和需求分析,可得到总E-R图,如图3.2所示。联系人XX 地址邮箱3.2 总体E-R图3.2逻辑结构设计基本信息表Friend用来保存、地址、信息。表Friend的结构如表3-1所示。表3-1 表Friend的结构编号字段名称数据结构说明1NameChar联系人2TeleChar联系人3AdderChar联系人地址4MailChar联系人3.3数据库表的建立在设计数据

7、库表结构之前,首先要创建一个数据库。本系统使用的数据库为Friend。创建表Friend(基本信息表),它的代码如下:CREATE TABLE Friend (Namechar (20) PRIMARYKEY ,Tele char(20),Addr char(30), Mail char(20) )GO4系统实现4.1 数据库的连接在该系统中数据库的连接使用mysql-connector-java-5.1.6-bin驱动。将该驱动通过eclipse添加到工程“通讯录管理系统”中,如图4.1。然后通过控制语句实现与数据库的连通。图4.1找到的数据库连接驱动mysql-connector-java

8、-5.1.6-bin5功能测试该程序实现了通讯录管理系统应有的功能,即新建联系人、快速查找、删除信息、修改信息、退出系统管理。5.1登陆界面程序运行出现登陆界面,要求用户输入用户名和密码,当用户名和密码均正确时才能进入系统,如图5.1所示。图 5.1登陆界面5.2主界面用户登陆系统以后,将出现主界面,用户可以选择要执行的操作,如图5.2所示。图5.2 主界面5.3各功能模块的实现新建联系人功能的实现操作,界面如图5.3所示。图5.3 新建联系人界面快速查找功能实现操作,界面如图所示。图5.4 查找信息功能界面图5.5查找显示界面删除信息功能实现操作,界面如图所示。 图5.6 删除信息功能界面修

9、改信息功能实现操作,界面如图所示。 图5.7 修改信息功能界面6系统技术实现6.1 SQL Server 2000运用SQL Server 2000建立一个数据库,以Windows 身份验证模式要求SQL Server 2000的连接,实现用户登陆需要输入密码才能进入本通讯管理系统,保护用户信息安全。作为它的数据库查询和编程语言。T-SQL是结构化查询语言SQL的一种,支持标准SQL Server为公共的管理功能提供了预定义的服务器和数据库角色,可以很容易为某一特定用户授予一组选择好的许可权限。SQL Server可以在不同的操作平台上运行,支持多种不同的网络协议。7 结束语经过这些天的努力,

10、本次课程设计终于完成了。通过这次课程设计,使我对数据库这门课程有了更深入的理解,数据库是一门实践性较强的课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。在本次课程设计中,我明白了理论与实际应用相结合的重要性,并提高了自己组织数据与编写程序的能力,培养了基本的、良好的程序设计技能。这次课程设计同样提高了我的综合运用所学知识的能力。并对SQL SERVER 2000有了更深入的了解。由于我的经验和知识的不足,在程序中还存在很多缺陷。经过这次课程设计,我的知识得到了很大提高,经验也更加丰富。今后我会更多的学习编程技巧,不断的提高编程能力。致 在这次数据库的课程设计中,曾遇到过不少问题

11、,单靠我个人的努力,很难按时完成该课程设计。在此,我衷心感我的指导老师颜宏文。颜宏文老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我获益非浅。另外,还要感学校领导、辅导员、各位同学对我们的关怀、帮助,为我们提供了良好的设计环境以与各方面的支持。参考文献1 磊,凌云.Eclipse Web开发.:人民邮电,20062王珊,萨师煊.数据库系统概论(第四版).:高等教育. 20063 Y. Daniel Liang,万波,海红,蓉,娜. Java语言程序设计基础篇. :机械工业,2008附录 部分程序代码package df;import javax.swing.JFrame;impor

12、t java.awt.GridLayout;public class ShowGridLayout extends JFrame public ShowGridLayout() setLayout (new GridLayout(5, 1, 20, 20); /add(new JLabel(" "); /add(new JTextField(5); /add(new JLabel(" ");/add(new JTextField(5);/add(new JLabel(" 地址 ");/add(new JTextField(5);/ad

13、d(new JLabel(" ");/add(new JTextField(5);public static void main(String args) ShowGridLayout frame = new ShowGridLayout();frame.setTitle("通讯录数据库系统 ");frame.setLocation(500,200);frame.setSize(320, 270);frame.setVisible(true);package df;import javax.swing.JLabel;import javax.swing.

14、JOptionPane;import javax.swing.JTextField;import javax.swing.JFrame;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import javax.swin

15、g.*;public class ShowFlowLayout extends JFrame static Connection con = null;public ShowFlowLayout() setLayout (new FlowLayout(FlowLayout.LEFT, 15, 25); public static void main(String args) final ShowFlowLayout frame = new ShowFlowLayout();JLabel jlbl欢迎使用通讯录数据库系统 = new JLabel(" 欢迎使用通讯录数据库系统 &quo

16、t;);frame.add(jlbl欢迎使用通讯录数据库系统);JLabel jlbl用户名 = new JLabel("用户名");frame.add(jlbl用户名);final JTextField jtf用户名 = new JTextField(16);frame.add(jtf用户名);JLabel jlbl密码 = new JLabel(" 密码 ");frame.add(jlbl密码);final JTextField jtf密码 = new JTextField(16);frame.add(jtf密码);utton t登录 = new u

17、tton(" 登录 ");frame.add(t登录);utton t退出 = new utton(" 退出 ");frame.add(t退出);frame.setTitle("通讯录数据库系统 ");frame.setLocation(500,200);frame.setSize(270, 250);frame.setVisible(true);t登录.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) if(jtf用户名

18、.getText().equals("*")&&jtf密码.getText().equals("123456") frame.dispose();new ThreeButtons();else JOptionPane.showMessageDialog(null, " 用户名或密码错!"); );t退出.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) System.exit(0););try Class.

19、forName(".mysql.jdbc.Driver");System.out.println("驱动加载成功");String url = "jdbc:mysql:/localhost:3306/通讯录"String userName = "root"String passWord = "131495"con = DriverManager.getConnection(url, userName, passWord);System.out.println("连接数据库成功"

20、;); catch (Exception e) e.printStackTrace();package df;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import javax.swing.*;public class chaxun extends JFrame implements

21、ActionListenerJTextField jtf请输入你要查找人的 = new JTextField(20);public chaxun()setTitle("通讯录数据库系统 ");setLocation(500,200);setSize(270, 250);setVisible(true);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);setLayout(new GridLayout(3,1);JPanel p1 =new JPanel();JPanel p2 =new JPanel();JPanel p3

22、=new JPanel();JLabel jlbl请输入你要查找人的 = new JLabel("请输入你要查找人的"); p1. add(jlbl请输入你要查找人的); p2.add(jtf请输入你要查找人的);utton t确定 = new utton(" 确定 ");p3.add(t确定);add(p1);add(p2);add(p3);t确定.addActionListener(this);public void actionPerformed(ActionEvent e) PreparedStatement pstmt;ResultSet rs

23、 ;try pstmt = ShowFlowLayout.con.prepareStatement("select * from friend where name=?");pstmt.setString(1,jtf请输入你要查找人的.getText();rs=pstmt.executeQuery(); if(rs.next() JOptionPane.showMessageDialog(null," "+rs.getString(1)+"n "+rs.getString(2)+ "n地址 "+rs.getStri

24、ng(3)+"n "+rs.getString(4); else JOptionPane.showMessageDialog(null,"无此联系人!"); catch (SQLException e1) e1.printStackTrace();package df;import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;public class ThreeButtons extends J

25、Frame utton t快速查找 = new utton(" 快速查找 ");utton t新建联系人= new utton(" 新建联系人 ");utton t删除信息 = new utton(" 删除信息 ");utton t修改信息 = new utton(" 修改信息 ");utton t退出系统 = new utton(" 退出系统 ");ThreeButtons()setTitle("通讯录数据库系统 ");setLocation(500,200); setSi

26、ze(300, 370);setVisible(true);setLayout(new GridLayout(5,1);add(t快速查找);add(t新建联系人);add(t删除信息);add(t修改信息);add(t退出系统);t快速查找.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) new chaxun(););t新建联系人.addActionListener(new ActionListener() public void actionPerformed(ActionE

27、vent e) new TestSwingCommonFeatures(););t删除信息.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e)new shanchu(););t修改信息.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) (new xiugai(););t退出系统.addActionListener(new ActionListener() public v

28、oid actionPerformed(ActionEvent e) System.exit(0););package df;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.PreparedStatement;import java.sql.SQLException;import javax.swing.utton;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JT

29、extField;import javax.swing.JFrame;public class TestSwingCommonFeatures PreparedStatement ps;public TestSwingCommonFeatures()final ShowGridLayout frame = new ShowGridLayout();JLabel jlbl = new JLabel(" :");frame.add(jlbl);final JTextField jtf =new JTextField(5);frame.add(jtf); JLabel jlbl

30、= new JLabel(" :"); frame.add(jlbl); final JTextField jtf =new JTextField(5); frame.add(jtf);JLabel jlbl地址 = new JLabel(" 地址 :");frame.add(jlbl地址);final JTextField jtf地址 =new JTextField(5);frame.add(jtf地址);JLabel jlbl = new JLabel(" :");frame.add(jlbl);final JTextField

31、jtf =new JTextField(5);frame.add(jtf);utton t登录 = new utton(" 确认 ");frame.add(t登录);utton t退出 = new utton(" 取消 ");frame.add(t退出);frame.setTitle("通讯录数据库系统 ");frame.setLocation(500,200);frame.setSize(320, 270);frame.setVisible(true);frame.setDefaultCloseOperation(JFrame.DI

32、SPOSE_ON_CLOSE);t登录.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) if(jtf.getText().length()<=0|jtf.getText().length()<=0| jtf地址.getText().length()<=0| jtf.getText().length()<=0) JOptionPane.showMessageDialog(null,"您输入的信息不全,请重新输入!"); elsetry p

33、s = ShowFlowLayout.con.prepareStatement("insert into friend values(?,?,?,?)");ps.setString(1, jtf.getText();ps.setString(2, jtf.getText();ps.setString(3, jtf地址.getText();ps.setString(4, jtf.getText();ps.executeUpdate(); catch (SQLException e1) / TODO Auto-generated catch blocke1.printStack

34、Trace();JOptionPane.showMessageDialog(null,"联系人数据录入成功");frame.dispose(););t退出.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) frame.dispose(););package df;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.PreparedStatem

35、ent;import java.sql.ResultSet;import java.sql.SQLExceptionimport javax.swing.utton;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JTextField;public class xiugai PreparedStatement ps;ResultSet rs ;public xiugai() final ShowFlowLayout frame = new ShowFlowLayout();JLabel jl

36、bl请输入你要修改人的 = new JLabel("请输入你要修改人的");frame.add(jlbl请输入你要修改人的);final JTextField jtf请输入你要修改人的 = new JTextField(20);frame.add(jtf请输入你要修改人的);utton t确定 = new utton(" 确定 ");frame.add(t确定);utton t返回 = new utton(" 返回 ");frame.add(t返回);frame.setTitle("通讯录数据库系统 ");fram

37、e.setLocation(500,200);frame.setSize(270, 250);frame.setVisible(true);t确定.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) try ps = ShowFlowLayout.con.prepareStatement("select * from friend where name=?");ps.setString(1,jtf请输入你要修改人的.getText();rs=ps.executeQ

38、uery() ; if(!rs.next() JOptionPane.showMessageDialog(null," 此人不存在!"); else ps = ShowFlowLayout.con.prepareStatement("delete from friend where name=?");ps.setString(1, jtf请输入你要修改人的.getText();ps.executeUpdate(); new TestSwingCommonFeatures(); catch (SQLException e2) / TODO Auto-gen

39、erated catch blocke2.printStackTrace(););t返回.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) frame.dispose(););package df;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.s

40、ql.SQLException;import javax.swing.utton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JTextField;public class shanchu extends JFrame PreparedStatement ps;ResultSet rs ;public shanchu() final ShowFlowLayout frame = new ShowFlowLayout();JLabel jlbl请输入你要删除人的 = new JLabel("请输入你要删除人的");frame.add(jlbl请输入你要删除人的);final JTextField jtf请输入你要删除人的 = new JTextField(20);frame.add(jtf请输入你要删除人的);utton t确定 = new utton(" 确定 ");frame.add(t确定)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论