QQ个人资料java课程设计.docx

上传人:b****4 文档编号:3812465 上传时间:2022-11-25 格式:DOCX 页数:16 大小:35.28KB
下载 相关 举报
QQ个人资料java课程设计.docx_第1页
第1页 / 共16页
QQ个人资料java课程设计.docx_第2页
第2页 / 共16页
QQ个人资料java课程设计.docx_第3页
第3页 / 共16页
QQ个人资料java课程设计.docx_第4页
第4页 / 共16页
QQ个人资料java课程设计.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

QQ个人资料java课程设计.docx

《QQ个人资料java课程设计.docx》由会员分享,可在线阅读,更多相关《QQ个人资料java课程设计.docx(16页珍藏版)》请在冰豆网上搜索。

QQ个人资料java课程设计.docx

QQ个人资料java课程设计

辽宁工业大学

JAVA程序设计课程设计(论文)

 

题目:

QQ个人资料

 

院(系):

软件学院

专业班级:

计算机信息管理051班

学号:

学生姓名:

指导教师:

教师职称:

起止时间:

 

程序设计专题(报告)任务及评语

院(系):

软件学院教研室:

软件教研窒

学号

学生姓名

专业班级

程序设计(报告)题目

QQ个人资料

程序设计(报告)任务

程序设计专题的任务与要求:

(1)掌握Java编程、面向对象的基础知识。

(2)较熟练地编写Java应用程序Application。

(3)了解Java的常用标准类库、编程技巧、异常处理。

(5)联系已学过的内容,巩固所学的理论,增强独立工作能力。

(6)通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能力都有一个很大的提高。

(7)通过本次设计,进一步培养学生热爱专业的思想,同时对本专业综合素质的提高起一个积极的推动作用。

课程设计过程中,要严格遵守实践环节的时间安排,听从指导教师的指导。

正确地完成上述内容,记录实习日记,规范完整地撰写出课程设计报告。

指导教师评语及成绩

成绩:

指导教师签字:

2007年6月13日

目录

第1章课程设计的目的与要求1

1.1课程设计目的1

1.2课程设计的实验环境1

1.3课程设计的预备知识1

1.4课程设计要求1

第2章课程设计内容2

2.1课程设计题目2

2.2课程设计整体设计说明2

2.2.1课程设计内容2

2.2.2程序中所用类说明3

2.2.3程序中使用方法的说明3

2.2.4异常处理说明4

2.2.5程序运行效果及存在的问题4

2.3程序部分源代码及注释5

第3章课程设计总结12

第1章课程设计的目的与要求

1.1课程设计目的

《JAVA程序设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。

实践教学环节是必不可少的一个重要环节。

本课程的程序设计专题实际是电子商务专业学生学习完《JAVA程序设计》课程后,进行的一次全面的综合训练,JAVA程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。

1.2课程设计的实验环境

硬件要求能运行Windows9.X操作系统的微机系统。

JAVA程序设计语言及相应的集成开发环境,J2SDK和ECLIPSE开发工具。

1.3课程设计的预备知识

熟悉JAVA语言及ECLIPSE开发工具。

1.4课程设计要求

按课程设计指导书提供的课题,要求学生在自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。

要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握JAVA程序设计的基本技能和面向对象的概念和方法;了解多线程、安全和网络等编程技术。

同时培养学生进行分析问题、解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。

第2章课程设计内容

2.1课程设计题目

QQ个人资料

2.2课程设计整体设计说明

这次课程设计是制作一个QQ个人资料窗体,

这次我使用的编程语言是JAVA语言。

我采用的编译环境是WindowsXP中文版+J2SDK1.6.0中文版+Eclipse3.2.1+Eclipse3.2.1中文语言包+SWTdesigner5.1.0

使用JAVA语言及SWT进行可视编辑完成该功能。

2.2.1课程设计内容

(一)安装编译环境

(1)安装jdk1.6.0运行j2sdk1.6.0.exe程序

(2)安装Eclipse将下载的Eclipse压缩包eclipse-SDK-3.2.1-win32.zip解压到指定目录下

(3)将下载的汉化压缩包NLpack1-eclipse-SDK-3.2-win32.zip按原路径解压即可,也就是直接覆盖eclipse文件下的features、plugins两个文件夹。

(4)安装SWTdesigner,将下载的压缩包按原路径解压即可,也就是直接覆盖eclipse文件夹下的features、plugins两个文件夹。

(二)进入Eclipse平台新建JAVA项目、新建包、新建类

(三)打开eclipse,首先选择工作空间,点击“浏览”选择路径。

(四)在Eclipse内,选择菜单项文件>新建>项目...Designer>SWT/JFaceJavaProject以新建SWT项目。

项目名称:

“Kechengsheji”。

(五)选择菜单项文件>新建>包,包的名称为xuliu,按“确定”按钮,新建包。

(六)在“包资源管理器”视图中,选择xuliu项目。

单击文件>新建>类

(七)新建并设计主窗体类QQ

(八)调试选择菜单项运行>调试>调试方式>SWT应用程序

找出错误并改正,直到调试成功。

(九)运行菜单项运行>运行>运行方式>SWT应用程序

运行程序看结果。

2.2.2程序中所用类说明

MainFrame主窗体类:

设计显示年份月份选择按钮及查看按钮,显示月历。

Clock当前时间类:

从系统中提取当前时间并以yyyy年MM月dd日hh:

mm:

ss显示。

2.2.3程序中使用方法的说明

MainFrame类中方法:

MainFrame():

MainFrame类的构造函数

Init()显示月历方法

use():

取查询月份第一天星期的方法

Resetday():

运算是否闰年及各个月天数的方法

main():

主方法程序在此开始执行

Clock类中方法:

Clock():

Clock类的构造函数

run():

每秒取一次系统时间

paint():

在主窗体上显示当前时间的方法

getTime():

提取系统时间的方法

2.2.4异常处理说明

异常是异常事件的简称,它定义为在执行程序过程中出现了不正常的事件,破坏了正常的指令流。

Java语言如果出现异常就要进行异常处理。

Clock类中有段代码含有异常处理。

try{

t.sleep(1000);//休眠1秒钟

}catch(InterruptedExceptione){

System.out.println("异常");

}

很多Java™语言方法,如Thread.sleep()可以抛出InterruptedException异常。

程序需要暂停一段时间,于是调用t.sleep(1000)休眠一秒。

(t.sleep(1000)是Thread.sleep()的一个实例。

)所以我在使用这个方法时先try捕获异常,然后catch处理异常(显示提示信息:

异常)。

2.2.5程序运行效果及存在的问题

在ECLIPSE下编译运行的效果如图。

可以选择年月查看每月日历。

并且能显示当前系统时间和某天是星期几。

可以点击年份后的▼选择年,月份后的▼选择月,点查看按钮查看该月的日历。

存在的问题就是不能显示出农历效果,当然农历的算法比较复杂,就连MicrosoftWindows系统的时间/日期功能也没有提供农历的效果。

2.3程序部分源代码及注释

QQ.java源代码

packagexuliu;

importorg.eclipse.jface.dialogs.MessageDialog;

importorg.eclipse.swt.SWT;

importorg.eclipse.swt.custom.*;

importorg.eclipse.swt.events.MouseAdapter;

importorg.eclipse.swt.events.MouseEvent;

importorg.eclipse.swt.events.MouseListener;

importorg.eclipse.swt.events.SelectionAdapter;

importorg.eclipse.swt.events.SelectionEvent;

importorg.eclipse.swt.layout.GridData;

importorg.eclipse.swt.layout.GridLayout;

importorg.eclipse.swt.layout.RowLayout;

importorg.eclipse.swt.widgets.*;

publicclassQQ{

/*为了自定义监听器类MyMouseListener中的代码能访问到以下对象,故将这些对象定义成类的实例变量*/

privateStackLayoutstackLayout=newStackLayout();

privateCompositeyourDataComp;

privateCompositeotherComp;

privateListselectList;

privateCompositerightComp;

/*由于自定义方法程序较长,这次的主程序框架选择了Eclispe“新建”向导的第二种"publicopen()mothd"*/

publicstaticvoidmain(String[]args){

try{

QQwindow=newQQ();

window.open();

}catch(Exceptione){

e.printStackTrace();

}

}

publicvoidopen(){

Displaydisplay=Display.getDefault();

Shellshell=newShell();

shell.setSize(550,350);

shell.setText("个人设置");

shell.setLayout(newGridLayout());

{

//分割窗口

SashFormsashForm=newSashForm(shell,SWT.BORDER);

sashForm.setLayoutData(newGridData(GridData.FILL_BOTH));

{

//分割窗左边的列表框

selectList=newList(sashForm,SWT.BORDER);

//作为演示只加了两项

selectList.setItems(newString[]{"个人资料","联系方式"});

//加一个鼠标监听器

selectList.addMouseListener((MouseListener)newMyMouseListener());

}

{

//右边的堆栈式面板

rightComp=newComposite(sashForm,SWT.NONE);

rightComp.setLayout(stackLayout);

//共两项,将生成此面板的代码提出成一个方法,保证代码结构的清晰

yourDataComp=createYourDataComp(rightComp);//个人资料的面板

otherComp=createOtherComp(rightComp);//联系方式的面板

//在堆栈面板上先显示"个人资料"界面

stackLayout.topControl=yourDataComp;

}

//分割窗口的左右空间比例

sashForm.setWeights(newint[]{1,4});

}

{

//界面的按钮的面板

CompositebuttonComp=newComposite(shell,SWT.BORDER);

//使用GridData设置buttonsComp在它你容器shell中的布局方式

GridDatagridData=newGridData();

gridData.horizontalAlignment=GridData.END;//让buttonComp向右靠

buttonComp.setLayoutData(gridData);

//设置buttonsComp的布局为RowLayout,用来设定buttonComp内组件的布局方式

RowLayoutrowLayout=newRowLayout();

rowLayout.spacing=15;//按钮之间间隔15个元素

buttonComp.setLayout(rowLayout);

//在buttonComp下建立三个按钮

Buttonbtn1=newButton(buttonComp,SWT.NONE);

btn1.setText("确定");

btn1.addSelectionListener(newSelectionAdapter(){

publicvoidwidgetSelected(SelectionEvente){

MessageDialog.openInformation(null,"提示","你单击了'确定'按钮");

System.exit(0);

}

});

Buttonbtn2=newButton(buttonComp,SWT.NONE);

btn2.setText("取消");

btn2.addSelectionListener(newSelectionAdapter(){

publicvoidwidgetSelected(SelectionEvente){

MessageDialog.openInformation(null,"提示","你单击了'取消'按钮");

System.exit(0);

}

});

Buttonbtn3=newButton(buttonComp,SWT.NONE);

btn3.setText("应用");

btn3.addSelectionListener(newSelectionAdapter(){

publicvoidwidgetSelected(SelectionEvente){

MessageDialog.openInformation(null,"提示","你单击了'应用'按钮");

}

});

}

shell.layout();

shell.open();

while(!

shell.isDisposed()){

if(!

display.readAndDispatch())

display.sleep();

}

}

//个人资料面板的生成

privateCompositecreateYourDataComp(CompositerightComp){

Compositecomposite=newComposite(rightComp,SWT.NONE);

composite.setLayout(newGridLayout(6,false));//个人资料面板分成6列

//用户号码的标签及文本框

newLabel(composite,SWT.NONE).setText("用户号码");

//只读型的文本框

Texttext=newText(composite,SWT.READ_ONLY|SWT.BORDER);

//水平抢占式充满,并占用三列的空间createGridData是自定义方法

text.setLayoutData(createGridData(GridData.FILL_HORIZONTAL,3));

//图片部分,我们再用一个面板嵌套来管理

CompositephotoComp=newComposite(composite,SWT.BORDER);

//水平垂直对齐式充满,横占两列,竖占4行

photoComp.setLayoutData(createGridData(GridData.HORIZONTAL_ALIGN_FILL

|GridData.VERTICAL_ALIGN_FILL,2,4));

photoComp.setLayout(newGridLayout(2,false));//分2列

{

//图片Image类的使用暂还没讲到,我们先用一个Composite来代替图片

CompositetempComp=newComposite(photoComp,SWT.BORDER);

tempComp.setLayoutData(newGridData(50,50));//设定大小;宽50,高50

//选择图片的箭头型按钮,并设置它向下靠

ButtonselPhotoButton=newButton(photoComp,SWT.ARROW|SWT.DOWN);

selPhotoButton.setLayoutData(newGridData(

GridData.VERTICAL_ALIGN_END));

//升级成为会员的按钮,横占photoComp的两列,并横向对齐充满

ButtonupdateButton=newButton(photoComp,SWT.NONE);

updateButton.setLayoutData(createGridData(

GridData.HORIZONTAL_ALIGN_FILL,2));

updateButton.setText("升级成为会员");

}

newLabel(composite,SWT.NONE).setText("用户昵称");

TextnicknameText=newText(composite,SWT.BORDER);

nicknameText.setLayoutData(createGridData(

GridData.HORIZONTAL_ALIGN_FILL,3));

newLabel(composite,SWT.NONE).setText("个性签名");

TextattachNameText=newText(composite,SWT.BORDER);

attachNameText.setLayoutData(createGridData(

GridData.HORIZONTAL_ALIGN_FILL,3));

newLabel(composite,SWT.NONE).setText("等级");

{

//Image类的使用暂还没有讲到,我们先用一个Composite来代替图片

CompositetempComp=newComposite(composite,SWT.BORDER);

GridDatagridData=newGridData(GridData.FILL_HORIZONTAL

|GridData.VERTICAL_ALIGN_BEGINNING);

gridData.horizontalSpan=3;

//Composite默认的高度太高,故手工设定高度为20像素

gridData.heightHint=20;

tempComp.setLayoutData(gridData);

}

newLabel(composite,SWT.NONE).setText("姓名");

TextnameText=newText(composite,SWT.BORDER);

nameText.setLayoutData(newGridData(GridData.HORIZONTAL_ALIGN_FILL));

newLabel(composite,SWT.NONE).setText("性别");

CombosetCombo=newCombo(composite,SWT.NONE);

newLabel(composite,SWT.NONE).setText("年龄");

TextokText=newText(composite,SWT.BORDER);

okText.setLayoutData(newGridData(GridData.HORIZONTAL_ALIGN_FILL));

newLabel(composite,SWT.NONE).setText("毕业院校");

TextschoolText=newText(composite,SWT.BORDER);

schoolText.setLayoutData(createGridData(GridData.HORIZONTAL_ALIGN_FILL,

3));

newLabel(composite,SWT.NONE).setText("生肖");

ComboanimalCombo=newCombo(composite,SWT.NONE);

animalCombo.setLayoutData(newGridData(GridData.HORIZONTAL_ALIGN_FILL));

newLabel(composite,SWT.NONE).setText("职业");

TextjobText=newText(composite,SWT.BORDER);

jobText

.setLayoutData(createGridData(GridData.HORIZONTAL_ALIGN_FILL,3));

newLabel(composite,SWT.NONE).setText("星座");

TextstarText=newText(composite,SWT.BORDER);

LabelintroLabel=newLabel(composite,SWT.NONE);

//默认是居中,改为顶端对齐

introLabel

.setLayoutData(newGridData(GridData.VERTICAL_ALIGN_BEGINNING));

introLabel.setText("个人说明");

TextintrolText=newText(composite,SWT.BORDER|SWT.WRAP);//WRAP自动换行

introlText.setLayoutData(createGridData(GridData.HORIZONTAL_ALIGN_FILL

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

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1