java课程设计班级通讯录设计报告大学论文.docx
- 文档编号:18223586
- 上传时间:2023-08-14
- 格式:DOCX
- 页数:37
- 大小:401.32KB
java课程设计班级通讯录设计报告大学论文.docx
《java课程设计班级通讯录设计报告大学论文.docx》由会员分享,可在线阅读,更多相关《java课程设计班级通讯录设计报告大学论文.docx(37页珍藏版)》请在冰点文库上搜索。
java课程设计班级通讯录设计报告大学论文
学号
xx学年第x学期
xx
2学期
《面向对象程序设计》
课程设计报告
题目:
班级通讯录
专业:
x
班级:
xx
姓名:
xxxxxxx
指导教师:
xxxxxxxxxxx
成绩:
xx
20xx年xx月xx日
1.设计任务与要求
1.1.设计任务与要求
制作一个简单的通讯簿,要求可对朋友的姓名、性别、手机号码、寝室号和QQ号等信息保存、查询、修改和删除等功能。
具有友好界面,且需要用户名和密码登陆进入系统。
使用数据库作为后台连接。
1.2.选题目的与意义
如今生活节奏日益加快,各种联系人也不短增多,但是很多人还是单纯的使用手机或纸质电话本来记录联系人的信息,这些记录的方式存在很多缺点,如:
信息量少,查找不方便;容易丢失;存储照片不方便;安全性不高,隐私性不高……
这个通讯簿,可以帮助用户更好的存储朋友的相关信息,易于添加、修改,存储和使用都很方便。
同时这个系统需要登陆才能进入,提高了通讯簿的安全性和隐私性。
通过实现通讯薄功能的实际编程了解基于Swing的图形用户界面开发和数据库操作原理,提高Swing和JDBC技术结合的综合运用能力。
2.需求分析
2.1.用户需求分析
通讯簿的目的在于帮助用户实现轻松管理联系人的需求。
为了用户通讯录的隐私性和安全性,通讯簿进入前需要进行系统登录,对用户的帐号和密码进行合法性验证,登录成功则进入系统功能界面。
该通讯录有已知的帐号和密码,登录时输入帐号和密码即可登录,如果帐号和密码不对会出现提示信息,如果三次输入错误,则系统会自动退出,“清空”按钮可清空用户输入的信息。
通讯簿的主系统主要功能包括实现添加、修改、删除、查询联系人的姓名、手机号码等信息,并且连接进数据库,将信息存储进数据库文件中去。
程序的文本框中可以显示姓名、手机号码等联系人信息,通过通讯簿轻松实现联系人的增、删、改、查需求。
个人通讯簿主系统由四大模块组成:
新建联系人、修改联系人、删除联系人、查询联系人,其功能如下:
1.新建联系人:
用来增加联系人,并且将其信息存入系统数据库。
信息如:
姓名、手机号码、寝室号、性别、qq等。
2.修改联系人
即编辑联系人,用来对数据库中已有的联系人信息进行编辑,将更新后的信息重新写入到系统数据库。
3.删除联系人
用来删除联系人及其相关信息。
4.查询联系人
用来根据信息内容,查询该信息联系人姓名及其他相关信息。
2.2.开发环境分析
系统编程基于JAVASwing的图形用户界面开发,数据信息连接后台为MySql数据库。
系统运行环境为运行Windows,具有JDK1.7以上Java编译环境和Eclipse3.0以上Java编辑环境,NavicatforMySQL。
3.系统设计
3.1.系统总体设计
进入系统后必须先进行登陆。
登陆成功后,即可进入通讯簿主界面。
在主界面可以进行联系人的添加和查找。
在查看联系人界面中,可以选择修改信息或删除联系人。
系统总体设计图如下:
图1系统总体设计图
3.2.功能模块设计
为了保证通讯簿的隐私性和安全性,进入系统后必须先进行登陆。
登陆成功后,即可进入通讯簿主界面。
在主界面可以进行联系人的添加和查找。
单击“操作”菜单“添加”命令,界面会切换到联系人信息输入的界面。
按照需求录入联系人信息即可单击“提交”按钮保存该联系人。
如果要进行联系人信息的修改或者删除该联系人,单击“操作”菜单“修改”命令与“操作”菜单“删除”命令即可。
可通过“操作”菜单“查询”命令打开一个窗口,以键入联系人姓名进行联系人的查找,输入相关信息后单击“确定”按钮即可,即可弹出一个窗口查看联系人信息。
3.3.类的设计
由于系统需要链接数据库,所以先设计一个类进行数据库的连接。
数据库为NavicatforMySQL版本。
该类名称为DButil,是数据库操作类。
该类中的属性、方法如下:
publicclassDbUtil{
privatestaticStringurl="jdbc:
mysql:
//localhost:
3306/tongxunlu?
useUnicode=true&characterEncoding=GBK";
privatestaticStringdbName="root";
privatestaticStringdbPassword="123";
publicstaticStringdriver="com.mysql.jdbc.Driver";
publicstaticConnectiongetConn()throwsException{
Class.forName(driver);
Connectionconn=DriverManager.getConnection(url,dbName,dbPassword);
returnconn;
}
publicstaticvoidclose(Statementstmt,Connectionconn)throwsException{
if(stmt!
=null){
stmt.close();
if(conn!
=null){
conn.close();
}
}
}
}
设计一个DaoStudent类用于完成联系人查找、添加、修改与删除操作,具体代码如下:
publicclassDaoStudent{
publicstaticintinsertInfo(Connectionconn,Studentstudent)throwsException{//插入数据
conn=DbUtil.getConn();
Stringsql="insertintomyclass(gender,name,telephone,qq,room)values(?
?
?
?
?
)";
PreparedStatementstat=conn.prepareStatement(sql);
stat.setString(1,student.getGender());
stat.setString(2,student.getName());
stat.setString(3,student.getTelephone());
stat.setString(4,student.getQq());
stat.setString(5,student.getRoom());
inti=stat.executeUpdate();
returni;
}
publicstaticinteditInfo(Connectionconn,Studentstudent)throwsException{//修改数据
conn=DbUtil.getConn();
Stringsql="updatemyclasssetgender=?
name=?
telephone=?
qq=?
room=?
whereid=?
";
PreparedStatementstat=conn.prepareStatement(sql);
stat.setString(1,student.getGender());
stat.setString(2,student.getName());
stat.setString(3,student.getTelephone());
stat.setString(4,student.getQq());
stat.setString(5,student.getRoom());
stat.setInt(6,student.getId());
inti=stat.executeUpdate();
returni;
}
publicstaticResultSetfindInfo(Connectionconn,Studentstudent)throwsException{//查询数据
conn=DbUtil.getConn();
Stringsql="select*frommyclasswherename=?
";
PreparedStatementstat=conn.prepareStatement(sql);
stat.setString(1,student.getName());
ResultSetrs=stat.executeQuery();
returnrs;
}
publicstaticintdelInfo(Connectionconn,Studentstudent)throwsException{//删除数据
conn=DbUtil.getConn();
Stringsql="deletefrommyclasswherename=?
";
PreparedStatementstat=conn.prepareStatement(sql);
stat.setString(1,student.getName());
inti=stat.executeUpdate();
returni;
}
}
设计一个类Student类用于设置联系人的姓名、性别、寝室号、联系方式与QQ号,并且有单独的方法返回或设置这些值。
packagedao;
publicclassStudent{
privateStringxuehao,name,telephone,room,qq;
privateintid;
privateStringgender;
publicStudent(){
super();
}
publicStudent(Stringname){
super();
this.name=name;
}
publicStudent(Stringxuehao,Stringname,Stringtelephone,Stringroom,
Stringqq,intid,Stringgender){
super();
this.xuehao=xuehao;
this.name=name;
this.telephone=telephone;
this.room=room;
this.qq=qq;
this.id=id;
this.gender=gender;
}
publicStringgetXuehao(){
returnxuehao;
}
publicvoidsetXuehao(Stringxuehao){
this.xuehao=xuehao;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetTelephone(){
returntelephone;
}
publicvoidsetTelephone(Stringtelephone){
this.telephone=telephone;
}
publicStringgetRoom(){
returnroom;
}
publicvoidsetRoom(Stringroom){
this.room=room;
}
publicStringgetQq(){
returnqq;
}
publicvoidsetQq(Stringqq){
this.qq=qq;
}
publicintgetId(){
returnid;
}
publicvoidsetId(intid){
this.id=id;
}
publicStringgetGender(){
returngender;
}
publicvoidsetGender(Stringgender){
this.gender=gender;
}
}
设计一个类Login来完成登陆界面及其功能,若三次输入错误,会提示相应信息并退出程序,单击“登录”按钮可登录,单击“清空”按钮撤销用户的输入。
这个类实现了用户登陆其属性和方法如下:
publicclassLoginextendsJFrameimplementsActionListener{
Login(){
……
}
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==jtxtName){
jtxtPassword.requestFocus();
}elseif(e.getSource()==jtxtPassword){
jbArray[0].requestFocus();
}elseif(e.getSource()==jbArray[1]){
jlArray[2].setText("");
jtxtName.setText("");
jtxtPassword.setText("");
jtxtName.requestFocus();
}else{
if(jtxtName.getText().equals("")&&newString(jtxtPassword.getPassword()).equals("")){
JOptionPane.showMessageDialog(this,"用户名和密码不能为空!
","消息对话框",JOptionPane.INFORMATION_MESSAGE);
}elseif(jtxtName.getText().equals("")){
JOptionPane.showMessageDialog(this,"用户名不能为空!
","消息对话框",JOptionPane.INFORMATION_MESSAGE);
}elseif(newString(jtxtPassword.getPassword()).equals("")){
JOptionPane.showMessageDialog(this,"密码不能为空!
","消息对话框",JOptionPane.INFORMATION_MESSAGE);
}elseif(jtxtName.getText().equals("tianxiaoying")&&String.valueOf(jtxtPassword.getPassword()).equals("123456")){
this.dispose();newBjtxyShouYe();
}else{//登录失败
count++;
if(count==3){
JOptionPane.showMessageDialog(this,"非法用户,系统将自动退出!
","消息对话框",JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}elseif(count<3){
if(!
jtxtName.getText().equals("tianxiaoying")&&String.valueOf(jtxtPassword.getPassword()).equals("123456")){
JOptionPane.showMessageDialog(this,"用户名错误,你还有"+(3-count)+"次机会!
","消息对话框",JOptionPane.INFORMATION_MESSAGE);
}elseif(!
String.valueOf(jtxtPassword.getPassword()).equals("123456")&&jtxtName.getText().equals("tianxiaoying")){
JOptionPane.showMessageDialog(this,"密码错误,你还有"+(3-count)+"次机会!
","消息对话框",JOptionPane.INFORMATION_MESSAGE);
}else{
JOptionPane.showMessageDialog(this,"用户名和密码均错误,你还有"+(3-count)+"次机会!
","消息对话框",JOptionPane.INFORMATION_MESSAGE);
}
jlArray[2].setText("");
jtxtName.setText("");
jtxtPassword.setText("");
jtxtName.requestFocus();
}
}
}
}
publicstaticvoidmain(String[]args){
newLogin();
}
}
设计一个BjtxyShouYe类显示主页面,里有一个操作菜单,该菜单里有相应的命令添加、修改、查询、删除与退出,单击相应的命令打开相应的页面,分别完成相应功能,单击“退出”命令退出程序,界面设计与代码如下:
publicclassBjtxyShouYeextendsJFrame{
privateJLabellbl;
privateJMenuopen;
privateJMenuBarmb;
privateJMenuItemsearch,add,delete,edit,exit,look;
publicBjtxyShouYe(){
super("班级通讯录");
Containerc=getContentPane();
mb=newJMenuBar();
open=newJMenu("操作");
search=newJMenuItem("查询");
add=newJMenuItem("添加");
delete=newJMenuItem("删除");
edit=newJMenuItem("修改");
exit=newJMenuItem("退出");
open.addActionListener(newHandLer());
search.addActionListener(newHandLer());
add.addActionListener(newHandLer());
delete.addActionListener(newHandLer());
edit.addActionListener(newHandLer());
exit.addActionListener(newHandLer());
//添加菜单项
open.add(search);
open.add(add);
open.add(delete);
open.add(edit);
//在菜单中添加分隔条
open.addSeparator();
open.add(exit);
mb.add(open);
setJMenuBar(mb);//设置菜单栏
Imageicon=Toolkit.getDefaultToolkit().getImage("res\\1123.jpg");
this.setIconImage(icon);
setLocationRelativeTo(null);//设置窗口显示在屏幕中央
DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();//获取当前屏幕大小
this.setBounds((screenSize.width-400)/2,(screenSize.height-400)/2,400,400);
this.setVisible(true);
}
classHandLerimplementsActionListener{
publicvoidactionPerformed(ActionEvente){
JMenuItemmi=(JMenuItem)e.getSource();
if(mi==search){
dispose();
try{
newSearchClass();
}catch(SQLExceptione1){
e1.printStackTrace();
}
}
if(mi==edit){
dispose();
try{
neweditClass();
}catch(SQLExceptione1){
e1.printStackTrace();
}
}
if(mi==add){
dispose();
newAdd();
}
if(mi==delete){
dispose();
try{
newdelClass();
}catch(SQLExceptione3){
e3.printStackTrace();
}
}
if(mi==exit){
System.exit(0);
}
}
}
}
设计一个Add类,用于执行“操作”菜单“添加”命令时打开该界面,用户在页面里输入信息,单击“返回”按钮关闭当前窗口打开主界面,单击“清空”按钮撤销用户的输入,单击“提交”按钮,提交数据,先用findInfo()函数根据姓名查找数据,若表中已有此联系人则提示相应信息,若没查找到则执行insertInfo()函数完成数据插入操作,界面设计与代码如下:
publicclassAddextendsJFrameimplementsActi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 课程设计 班级 通讯录 设计 报告 大学 论文
![提示](https://static.bingdoc.com/images/bang_tan.gif)