java课程设计.docx
《java课程设计.docx》由会员分享,可在线阅读,更多相关《java课程设计.docx(23页珍藏版)》请在冰豆网上搜索。
![java课程设计.docx](https://file1.bdocx.com/fileroot1/2023-2/3/51dafdf3-dd11-4077-bbe0-20c133b7ef46/51dafdf3-dd11-4077-bbe0-20c133b7ef461.gif)
java课程设计
存档资料成绩:
华东交通大学理工学院
课程设计报告书
所属课程名称JAVA课程设计
题目 学生通讯录系统
分院 电信分院
专业班级11计科—1班
学 号20110210440129
学生姓名余小宝
指导教师黄建华
2012年12月28日
华东交通大学理工学院
课程设计任务书
专业计算机科学与技术班级1班姓名余小宝
一、课程设计题目学生通讯录系统
二、课程设计工作:
自2012年12月18日起至2012年12月28止。
三、课程设计的内容要求:
本例的目标是开发一个Java图形界面应用程序,能实现教学测试。
具体功能特点如下:
(1)系统采用数据库存储学生通讯录信息;
(2)实现学生基本信息的按不同条件的查询;
(3)一个界面无法显示所有学生信息,可以实现多页面板显示,并且可以翻动前后页面进行查;
(4)查询统计功能,能够按照姓名、学号、性别、籍贯、专业等条件统计分析;
(5)系统设计包括规划数据的存储、应用界面、应用功能的实现等环节。
学生签名:
余小宝
2012年12月28日
课程设计(论文)评阅意见
序号
项目
等 级
优秀
良好
中等
及格
不及格
1
课程设计态度评价
2
出勤情况评价
3
任务难度评价
4
工作量饱满评价
5
任务难度评价
6
设计中创新性评价
7
论文书写规范化评价
8
综合应用能力评价
综合评定等级
评阅人 职称
20年月日
目 录
第1章课程设计内容及要求.............................................2
第2章类方法的设计与实现.............................................5
第3章程序界面...........................................................6--7
第4章程序代码.........................................................8--18
第5章程序测试..................................................18--19
第6章课程设计心得...................................................20--21
第7章参考文献..................................................................22
第2章类方法的设计与实现
2.1测试主界面类tongxunlu
该类的设计包括两个方面:
一是应用界面的设计、包括事件驱动;另一个方面就是数据的访问处理,如:
学生信息的查询及对后台数据库的访问。
(1)属性变量设计
Buttonbt1:
查询按钮的初始化;
StringXinxi2[]:
用于存放学生信息数组;
Ints:
数组变量初始;
JLabelzh:
欢迎界面标签;
JPanelin:
查询界面面板。
(2)方法设计
构造方法tongxunlu:
该方法主要实现界面的布局显示、注册事件监听,以及数据的初始化处理(包括调用xinxi1(ResultSetrt)方法读所有学生信息)。
Zhuye():
实现欢迎界面;
Anniu():
按钮的事件处理,实现触发查询主界面窗口;
Xiage():
显示查询主界面;
Duihua(finalStringname):
显示查询对话框,实现按各类条件的查询;
actionPerformed():
动作事件处理,包括转换界面、查询等按钮。
xinxi1(ResultSetrt):
调用数据库,实现信息的显示;
第3章程序界面
3.1:
程序运行,进入欢迎界面;
3.2:
点击“开始查询”按钮,进入查询选项界面;
3.3:
根据不同条件进行选择查询,比如:
点击“按专业查询”按钮,进入如下对话框;
:
3.4:
输入关键字,按“查询”,显示所查询的结果信息。
第4章程序代码
importjava.awt.Button;
importjava.awt.Color;
importjava.awt.Component;
importjava.awt.Font;
importjava.awt.Frame;
importjava.awt.TextArea;
importjava.awt.TextField;
importjava.awt.Window;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.event.WindowAdapter;
importjava.awt.event.WindowEvent;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
importjavax.swing.ImageIcon;
importjavax.swing.JDialog;
importjavax.swing.JLabel;
importjavax.swing.JPanel;
/*主类*/
publicclasstongxunluextendsFrameimplementsActionListener{
protectedstaticfinalActionListenerActionListener=null;
privateJPanelin;
Buttonbt1;
JLabellb1;
JLabellbx;
JLabelzh;
ints=0;
intye=0;
/**image**/
ImageIcontu_xuan=newImageIcon("images\\xuan.jpg");//创建加载图片
ImageIconxian=newImageIcon("images\\xian.jpg");//创建加载图片
publictongxunlu(){
zhuye();
this.setVisible(true);
}
/*欢迎界面*/
publicvoidzhuye(){
this.setTitle("学生通讯录系统");
this.setSize(500,430);
this.setLocation(400,150);
this.setLayout(null);
this.setResizable(false);
this.addWindowListener(newWindowAdapter(){//关闭窗口的事件处理
@Override
publicvoidwindowClosing(WindowEvente){
System.exit(0);
}
});
zh=newJLabel(tu_xuan);//图片加载到面板
zh.setSize(this.getSize());
zh.setLocation(0,0);
zh.setVisible(true);
this.add(zh);
lb1=newJLabel("欢迎进入学生通讯录系统!
");
lb1.setSize(400,50);
//lb1.setBackground(Color.BLUE);
lb1.setLocation((zh.getSize().width-lb1.getSize().width)/2,150);
zh.add(lb1);
Fontziti=newFont("楷体",Font.BOLD,30);
lb1.setForeground(Color.blue);
lb1.setFont(ziti);
anniu();
}
/*欢迎界面查询按扭*/
publicvoidanniu(){
bt1=newButton("开始查询");
bt1.setSize(70,35);
bt1.setLocation(205,250);
//bt1.setVisible(true);
bt1.setBackground(Color.green);
zh.add(bt1);
bt1.addActionListener(this);
}
@Override
publicvoidactionPerformed(ActionEvente){
zh.setVisible(false);
xiage();
}
/*查询主界面*/
publicvoidxiage(){
in=newJPanel();
Buttonbt2[]=newButton[6];
finalStringf[]={"按姓名查询","按学号查询","按电话查询","按QQ查询","按专业查询","退出"};
in.setSize(zh.getSize());//获取欢迎界面大小
in.setLocation(0,0);
JLabeltu=newJLabel(xian);//图片加载到面板
tu.setSize(in.getSize());
tu.setLocation(0,0);
tu.setVisible(true);
in.add(tu);
/*按扭摆放位置*/
for(inti=0;i<6;i++){
bt2[i]=newButton(f[i]);
bt2[i].setSize(80,35);
bt2[i].setBackground(Color.pink);
if(i%2==0)
bt2[i].setLocation((in.getSize().width-210)/2,100+(i/2)*60);
else
bt2[i].setLocation((in.getSize().width-210)/2+130,100+(i/2)*60);
in.add(bt2[i]);
}
bt2[0].addActionListener(newActionListener(){//注册"按姓名查询"按扭监听器
@Override
publicvoidactionPerformed(ActionEvente){//"按姓名查询"按扭事件处理
//TODOAuto-generatedmethodstub
duihua(f[0]);
}
});
bt2[1].addActionListener(newActionListener(){//注册按扭监听器
@Override
publicvoidactionPerformed(ActionEvente){//按扭事件处理
//TODOAuto-generatedmethodstub
duihua(f[1]);
}
});
bt2[2].addActionListener(newActionListener(){//注册按扭监听器
@Override
publicvoidactionPerformed(ActionEvente){//按扭事件处理
//TODOAuto-generatedmethodstub
duihua(f[2]);
}
});
bt2[3].addActionListener(newActionListener(){//注册按扭监听器
@Override
publicvoidactionPerformed(ActionEvente){//按扭事件处理
//TODOAuto-generatedmethodstub
duihua(f[3]);
}
});
bt2[4].addActionListener(newActionListener(){//注册按扭监听器
@Override
publicvoidactionPerformed(ActionEvente){//按扭事件处理
//TODOAuto-generatedmethodstub
duihua(f[4]);
}
});
bt2[5].addActionListener(newActionListener(){//注册按扭监听器
@Override
publicvoidactionPerformed(ActionEvente){//按扭事件处理
zh.setVisible(true);
in.setVisible(false);
}
});
in.setVisible(true);
this.add(in);
}
/*对话框界面*/
publicvoidduihua(finalStringname){
finalJDialogtan=newJDialog(this,"查询");//创建弹出对话框
tan.setSize(250,200);
tan.setLocation(this.getLocation().x+50,this.getLocation().y+50);
tan.setLayout(null);
JLabeltishi=newJLabel("请输入"+name.charAt
(1)+name.charAt
(2));//创建提示按扭面板
tishi.setSize(tan.getSize().width,35);
tishi.setLayout(null);
tishi.setLocation(2,25);
tan.add(tishi);
Buttoncha=newButton("查询");//创建查询按扭
cha.setSize(50,20);
finalTextFieldtext=newTextField("");
text.setSize(100,20);
text.setLocation(75,5);
cha.setLocation(text.getLocation().x+text.getSize().width+5,text.getLocation().y);
tishi.add(cha);
tishi.add(text);
tan.setVisible(true);
tan.addWindowListener(newWindowAdapter(){//注册弹出对话框监听器
@Override
publicvoidwindowClosing(WindowEvente){//关闭弹出对话框事件处理
tan.dispose();
}
});
cha.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(ClassNotFoundExceptione1){
//TODOAuto-generatedcatchblock
e1.printStackTrace();
}
try{
Connectionconn=DriverManager.getConnection("jdbc:
odbc:
通讯录");
Statementstmt=conn.createStatement();
ResultSetrt=stmt.executeQuery("Select*from通讯录where"+name.charAt
(1)+name.charAt
(2)+"in(\'"+text.getText()+"\')");
xinxi1(rt);
}catch(SQLExceptione1){
System.out.println("数据库连接错误!
");
e1.printStackTrace();
}
}
/*显示所查询的信息对话框*/
publicvoidxinxi1(ResultSetrt){
JLabelXS=newJLabel("姓名学号性别专业电话地址QQ");
XS.setSize(1000,50);
finalJDialogxs=newJDialog();
XS.setLocation(xs.getLocation().x+5,xs.getLocation().y-5);
xs.setTitle("信息显示");
xs.setLayout(null);
xs.setSize(850,470);
xs.setLocation(180,30);
xs.setVisible(true);
xs.add(XS);
Buttonxia=newButton("下一页");
xia.setSize(70,35);
xia.setLocation(410,350);
xs.add(xia);
Buttonshang=newButton("上一页");
shang.setSize(70,35);
shang.setLocation(310,350);
xs.add(shang);
finalxinxi2[]shu=newxinxi2[1000];
try{
s=0;
while(rt.next()){
shu[s]=newxinxi2(rt.getString("姓名"),rt.getString("学号"),rt.getString("性别"),rt.getString("专业"),rt.getString("电话"),rt.getString("地址"),rt.getString("QQ"));
s++;
}rt.close();
}catch(SQLExceptione){}
for(inti=0;i
shu[i].setLocation(5,30+30*(i%10));
if(i>=10)
shu[i].setVisible(false);
xs.add(shu[i]);
}
ye=10;
xia.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
if(ye<=s){
for(inti=ye-10;(i<=ye-1&&i=0);i++)
shu[i].setVisible(false);
for(inti=ye;(i=0);i++){
shu[i].setVisible(true);
xs.add(shu[i]);
}
ye+=10;
}
}
});
shang.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
//TODOAuto-generatedmethodstub
if(ye>=20){
ye-=10;
for(inti=ye;(i=0&&ishu[i].setVisible(false);
xs.add(shu[i]);
}
for(inti=ye-10;(i<=ye-1&&i>=0&&i
shu[i].setVisible(true);
}
}
});
}
});
}
}
classxinxi2extendsJLabel{
privateJLabellbx;
privateJLabel姓名;
privateJLabel性别;
privateJLabel专业;
privateJLabel学号;
privateJLabel电话;
privateJLabel地址;
priva