Java课程设计学生通讯录管理系统.docx

上传人:b****2 文档编号:3557619 上传时间:2023-05-06 格式:DOCX 页数:48 大小:165.35KB
下载 相关 举报
Java课程设计学生通讯录管理系统.docx_第1页
第1页 / 共48页
Java课程设计学生通讯录管理系统.docx_第2页
第2页 / 共48页
Java课程设计学生通讯录管理系统.docx_第3页
第3页 / 共48页
Java课程设计学生通讯录管理系统.docx_第4页
第4页 / 共48页
Java课程设计学生通讯录管理系统.docx_第5页
第5页 / 共48页
Java课程设计学生通讯录管理系统.docx_第6页
第6页 / 共48页
Java课程设计学生通讯录管理系统.docx_第7页
第7页 / 共48页
Java课程设计学生通讯录管理系统.docx_第8页
第8页 / 共48页
Java课程设计学生通讯录管理系统.docx_第9页
第9页 / 共48页
Java课程设计学生通讯录管理系统.docx_第10页
第10页 / 共48页
Java课程设计学生通讯录管理系统.docx_第11页
第11页 / 共48页
Java课程设计学生通讯录管理系统.docx_第12页
第12页 / 共48页
Java课程设计学生通讯录管理系统.docx_第13页
第13页 / 共48页
Java课程设计学生通讯录管理系统.docx_第14页
第14页 / 共48页
Java课程设计学生通讯录管理系统.docx_第15页
第15页 / 共48页
Java课程设计学生通讯录管理系统.docx_第16页
第16页 / 共48页
Java课程设计学生通讯录管理系统.docx_第17页
第17页 / 共48页
Java课程设计学生通讯录管理系统.docx_第18页
第18页 / 共48页
Java课程设计学生通讯录管理系统.docx_第19页
第19页 / 共48页
Java课程设计学生通讯录管理系统.docx_第20页
第20页 / 共48页
亲,该文档总共48页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Java课程设计学生通讯录管理系统.docx

《Java课程设计学生通讯录管理系统.docx》由会员分享,可在线阅读,更多相关《Java课程设计学生通讯录管理系统.docx(48页珍藏版)》请在冰点文库上搜索。

Java课程设计学生通讯录管理系统.docx

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

苏州科技学院电子信息实验中心

面向对象技术课程设计 报告

--学生通讯录管理系统

专业年级

计算机科学与技术2014

班 级

计算机1421

学 号

1430107132

姓 名

胡耀文

成 绩

指导教师

张宗杰

 

2016年4月 

 

1.引言

1.1项目的名称

学生通讯录管理系统

1.2项目背景和目标

学生通讯录管理系统主要对在校学生的基本信息进行管理,对教师用户提供查询信息、增添信息、删除信息等操作功能;对学生用户提供基本信息查询功能。

我们的目标就是为该系统提供后台连接数据库程序设计以及前台用户界面设

1.3项目的可行性研究

设计此系统需要java面向对象编程基础,数据库应用知识以及功能分析。

根据目前所开设的课程,学生已经具备这样的知识,有能力综合java编程知识和数据库应用知识做出一个这样的学生通讯录管理系统

二、需求分析

2.1系统概述

此系统提供给教师用户和学生用户。

教师登陆后可以对学生基本信息表进行查看、增添新记录、删除记录等操作。

学生登陆后能查询自己的信息。

2.2系统运行环境

Java运行在eclipse软件上,数据库用mysql数据库

2.3功能需求描述

学生通讯录管理系统要面对教师和学生用户。

对于教师,需要查询全部学生的基本信息,并且可以对其进行修改。

对于学生,需要查询自己的基本信息。

为了保护学生基本信息隐私,每位学生登录系统后只能查询自己的信息,而无法看到别人的信息。

三、系统设计

3.1开发与设计的总体思想

教师方面:

教师通过自己的用户名和密码登录后,进入教师主界面,在这个主界面里,可以选择要操作的类别,即查询功能还是修改功能。

在查询功能里面,可以选择是查询学生基本信息。

在修改功能里面,包括对学生基本信息表进行增加、删除记录。

学生方面:

学生通过自己的用户名和密码登录此系统后,可以查询自己的信息。

3.2系统模块结构图

学生通讯录管理系统

学生登录

教师登录

教师操作界面

查询

查询

修改

学生基本信息

添加信息

删除信息

 

3.3数据库结构设计

为了支持此学生通讯录管理系统,创建数据库studencontacts。

在这个数据库中包含四个表:

student表,teacher表,information表。

截图如下:

在student表中,有两个属性列,分别为:

sname(学生姓名姓名),password(登录密码)其基本数据类型分别为:

char,char。

当学生登录时,从此表中获取数据。

截图如下:

在teacher(教师登陆)表中,有两个属性列,分别为:

tname(教师姓名),password(登录密码)。

其基本数据类型分别为:

char,char。

当教师用户登陆此系统时,从该表获取数据。

截图如下:

在information(学生信息)表中,有五个属性列,分别为:

snum(学号),sname(学生姓名),phonumber(手机号码),sex(性别),dept(系别)。

其基本数据类型分别为:

int,char,char,char,char。

当查询学生信息时,从此表获取数据。

截图如下:

3.4模块设计

总主界面登陆后,可以选择用户,是学生用户或者教师用户。

如果选择学生用户,则进入学生登录界面,在这个界面上输入学生姓名和用户密码。

输入后单击“查询”按钮,若密码正确,这显示该学生本人信息,若密码不正确,这提示密码错误。

输入后单击“修改”按钮,跳转到用户修改密码界面进行修改,单击“注册”按钮,跳到用户注册页面进行注册。

如果选择教师用户,则进入教师登陆界面,在这个界面上输入教师姓名和用户密码,输入后单击“登录”按钮,则进入教师主界面。

在教师主界面可以选择进行查询操作还是修改操作。

在查询操作中包含查询学生基本信息。

若要查询学生基本信息,点击菜单项则进入学生基本信息检索界面,在此界面的检索方式中选择要检索的数据属性,在检索内容框中输入检索的具体信息,例如,检索“姓名”字段时,要键入某个学生姓名。

输入后,单击“查询该生信息”按钮,则开始数据库查询。

单击“浏览学生信息”按钮,则查看所有学生的信息。

如果数据库检索到所需信息,这生成列表显示检索结构,如果没有所需信息,则列表中的内容为空。

如果教师要进行修改操作,则在教师主界面上选择修改菜单项,在此项中,选择要修改的具体内容,总共有两项修改操作:

增加新生信息,删除毕业生信息(这两个是对学生基本信息表的操作)。

在增加信息操作中,按照标签提示依次输入要增添的记录值,输入完毕后,单击“添加”按钮,若输入成功,则提示成功,若输入失败,则提示失败。

在删除信息操作中,输入要删除信息的学生姓名,单击“删除”按钮,若删除成功,则提示成功,若删除失败则提示失败。

以上就是该学生通讯录管理系统的操作步骤。

3.5系统流程描述

开始

登录

学生登录界面

教师登录

否否

提示密码错误

提示密码错误

查询学生信息

教师主界面

修改

查询

学生信息

添加信息

删除信息

四、系统实现

本系统保存在studentcontacts包里

其中包含四个包:

connection包,dao包,model包,ui包

1.Connection包中的类:

(1)DBconnection类:

此类设置程序与数据库的连接,通过设置驱动类型和数据源来确定要连接的数据库。

若连接成功,提示:

connectionsuccess,若连接失败,提示:

connectionfailure

DBconnection类源代码:

packageconnection;

importjava.sql.Connection;

importjava.sql.DriverManager;

importjava.sql.SQLException;

publicclassDBconnection{

publicstaticConnectioncon=null;

publicstaticConnectiongetConnection()

{

try{

StringdbDriver="com.mysql.jdbc.Driver";

Class.forName(dbDriver);

System.out.println("DriverSuceess");

}catch(ClassNotFoundExceptione){

System.out.println("Drivernotfound");

e.printStackTrace();

}

try{

con=DriverManager.getConnection("jdbc:

mysql:

//localhost/studentcontacts","root","12345");

System.out.println("ConnectionSuceess");

}catch(SQLExceptione){

System.out.println("Connetionfailure");

e.printStackTrace();

}

returncon;

}

publicstaticvoidcloseConnection()

{

if(con!

=null)

try{

con.close();

System.out.println("databaseclosesuccess");

}catch(SQLExceptione){

System.out.println("closefailure");

e.printStackTrace();

}

}

}

2.Dao包中的类:

(1)StudentDao类:

此类中有一个方法,student,作用分别是控制学生登陆。

Studentlogin()方法中,有两个参数,分别传给select语句中的sname(学生姓名)和password(登录密码),利用select语句在student表中检索学生登录信息。

若存在此信息,返回true,否则返回false

StudentDao类源代码:

packageDao;

importjava.sql.Connection;

importjava.sql.PreparedStatement;

importjava.sql.ResultSet;

importjava.sql.SQLException;

importjava.sql.Statement;

importjava.util.ArrayList;

importconnection.DBconnection;

publicclassStudentDao{

publicbooleanstudent(Stringsname,Stringpassword){

DBconnectiondb=newDBconnection();

Connectioncon=db.getConnection();

booleanisfound=false;

PreparedStatementpst;

try{

pst=con.prepareStatement("select*fromstudentwheresname=?

andpassword=?

");

pst.setString(1,sname);

pst.setString(2,password);

ResultSetrs=pst.executeQuery();

if(rs.next())

isfound=true;

}catch(SQLExceptione){

e.printStackTrace();

}

System.out.println(isfound);

returnisfound;

}

publicstaticvoidmain(String[]args){

newStudentDao();

}

}

}

(2)TeacherDao类:

此类中有一个方法:

queryTeacher,作用是控制教师登陆

queryTeacher()方法中,有两个参数,分别传给select语句中的tname(教师姓名)和password(登陆密码),利用select语句在teacher表中检索教师登陆信息。

若存在此信息,返回true,否则返回false

TeacherDao类源代码:

packageDao;

importjava.sql.Connection;

importjava.sql.PreparedStatement;

importjava.sql.ResultSet;

importjava.sql.SQLException;

importjava.sql.Statement;

importconnection.DBconnection;

publicclassTeacherDao{

publicbooleanTeacherlogin(Stringtname,Stringpassword){

DBconnectiondb=newDBconnection();

Connectioncon=db.getConnection();

booleanisfound=false;

PreparedStatementpst;

try{

pst=con.prepareStatement("select*fromteacherwheretname=?

andpassword=?

");

pst.setString(1,tname);

pst.setString(2,password);

ResultSetrs=pst.executeQuery();

if(rs.next())

isfound=true;

}catch(SQLExceptione){

e.printStackTrace();

}

System.out.println(isfound);

returnisfound;

}

}

(3)InformationDao类:

此类中有四个方法,queryInformation,addInformation,deleteInformation,updateInformation,queryInformation1,

作用分别是为教师用户提供查询学生信息,添加信息,删除信息,更新信息;为学生用户提供查询本人信息功能,。

queryInformation()方法中,有一个参数,传给select语句中的sname(学生姓名),利用select语句,查询学生信息表中的内容。

若查询成功,则返回一个ArrayList类的对象lis(表格),否则,异常处理。

addInformation()方法中,有五个参数,分别传给insert语句中的snum(学号),sname(学生姓名),phonumber(手机号码),sex(性别),dept(系别)。

利用insert语句,将这些记录写入information表中。

若插入成功返回true,否则返回false。

updateInformation()方法中,有五个参数,分别传给insert语句中的snum(学号),sname(学生姓名),phonumber(手机号码),sex(性别),dept(系别)。

利用insert语句,将这些记录写入information表中。

若插入成功返回true,否则返回false。

deleteInformation()方法中,有一个参数,传给delete语句中的snum(学生学号),利用delete语句,把information表中相关学生信息删除。

若删除成功,返回true,否则返回false。

queryInformation1()方法中,有一个参数,传给传给select语句中的sname(学生姓名),这个sname的学生用户登录时输入的姓名。

即此类的作用是每个学生登陆只能查看本人信息。

若查询成功,则返回一个ArrayList类的对象lis(表格),否则,异常处理

InformationDao类源代码:

packageDao;

importjava.sql.Connection;

importjava.sql.PreparedStatement;

importjava.sql.ResultSet;

importjava.sql.SQLException;

importjava.sql.Statement;

importjava.util.ArrayList;

importui.StudentLoginUI;

importModel.Information;

importconnection.DBconnection;

publicclassInformationDao{

publicArrayListqueryInformation(Stringkey){

ArrayListlis=newArrayList();

Connectioncon=DBconnection.getConnection();

Statementstm;

try{

stm=con.createStatement();

Stringsql="select*frominformationwheresnamelike'%"+key

+"%'";

System.out.println(sql);

ResultSetrs=stm.executeQuery(sql);

while(rs.next()){

Informationinformation=newInformation(rs.getInt

(1),rs.getString

(2),rs

.getString(3),rs.getString(4),rs.getString(5));

lis.add(information);

}

}catch(SQLExceptione){

e.printStackTrace();

}

returnlis;

}

publicArrayListqueryInformation1(Stringkey){

ArrayListlis=newArrayList();

Connectioncon=DBconnection.getConnection();

Statementstm;

try{

stm=con.createStatement();

Stringsql="select*frominformationwheresnamelike'%"+StudentLoginUI.st1

+"%'";

System.out.println(sql);

ResultSetrs=stm.executeQuery(sql);

while(rs.next()){

Informationinformation=newInformation(rs.getInt

(1),rs.getString

(2),rs

.getString(3),rs.getString(4),rs.getString(5));

lis.add(information);

}

}catch(SQLExceptione){

e.printStackTrace();

}

returnlis;

}

publicbooleanaddInformation(intsnum,Stringsname,Stringphonumber,Stringsex,

Stringdept){

Connectioncon=DBconnection.getConnection();

PreparedStatementpst;

try{

pst=con.prepareStatement("insertintoinformationvalues(?

?

?

?

?

)");

pst.setInt(1,snum);

pst.setString(2,sname);

pst.setString(3,phonumber);

pst.setString(4,sex);

pst.setString(5,dept);

intcount=pst.executeUpdate();//返回修改的记录数

if(count==1)

returntrue;

else

returnfalse;

}catch(SQLExceptione){

e.printStackTrace();

}

returnfalse;

}

publicbooleandeleteInformation(Stringkey){

Connectioncon=DBconnection.getConnection();

Statementstm;

try{

stm=con.createStatement();

Stringsql="deletefrominformationwheresnumlike'%"+key+"%'";

System.out.println(sql);

intcount=stm.executeUpdate(sql);

if(count==1)

returntrue;

else

returnfalse;

}catch(SQLExceptione){

e.printStackTrace();

}

returnfalse;

}

publicArrayListupdateInformation(Stringkey){

ArrayListlis=newArrayList();

Connectioncon=DBconnection.getConnection();

Statementstm;

try{

stm=con.createStatement();

Stringsql="select*frominformationwheresnamelike'%"+key+"%'";

System.out.println(sql);

ResultSetrs=stm.executeQuery(sql);

while(rs.next()){

Informationinformation=newInformation(rs.getInt

(1),rs.getString

(2),rs

.getString(3),rs.getString(4),rs.getString(5));

lis.add(information);

}

}catch(SQLExceptione){

e.printStackTrace();

}

returnlis;

}

}

3.model包中的类:

(1)Information类:

此类中有五个成员变量intsnum;Stringsname;Stringphonumber;Stringsex;Stringdept;十个成员方法,分别获取和设置这五个变量,即为information表中五个属性的记录值,均为getXXX()setXXX()方法,还有一个构造方法,用于调用其对象时对成员变量赋值

Information类源代码:

packageModel;

publicclassInformation{

intsnum;

Stringsname;

Stringphonumber;

Stringsex;

Stringd

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2