《程序语言综合课程设计》实验报告.docx

上传人:b****3 文档编号:3744218 上传时间:2023-05-06 格式:DOCX 页数:47 大小:935.26KB
下载 相关 举报
《程序语言综合课程设计》实验报告.docx_第1页
第1页 / 共47页
《程序语言综合课程设计》实验报告.docx_第2页
第2页 / 共47页
《程序语言综合课程设计》实验报告.docx_第3页
第3页 / 共47页
《程序语言综合课程设计》实验报告.docx_第4页
第4页 / 共47页
《程序语言综合课程设计》实验报告.docx_第5页
第5页 / 共47页
《程序语言综合课程设计》实验报告.docx_第6页
第6页 / 共47页
《程序语言综合课程设计》实验报告.docx_第7页
第7页 / 共47页
《程序语言综合课程设计》实验报告.docx_第8页
第8页 / 共47页
《程序语言综合课程设计》实验报告.docx_第9页
第9页 / 共47页
《程序语言综合课程设计》实验报告.docx_第10页
第10页 / 共47页
《程序语言综合课程设计》实验报告.docx_第11页
第11页 / 共47页
《程序语言综合课程设计》实验报告.docx_第12页
第12页 / 共47页
《程序语言综合课程设计》实验报告.docx_第13页
第13页 / 共47页
《程序语言综合课程设计》实验报告.docx_第14页
第14页 / 共47页
《程序语言综合课程设计》实验报告.docx_第15页
第15页 / 共47页
《程序语言综合课程设计》实验报告.docx_第16页
第16页 / 共47页
《程序语言综合课程设计》实验报告.docx_第17页
第17页 / 共47页
《程序语言综合课程设计》实验报告.docx_第18页
第18页 / 共47页
《程序语言综合课程设计》实验报告.docx_第19页
第19页 / 共47页
《程序语言综合课程设计》实验报告.docx_第20页
第20页 / 共47页
亲,该文档总共47页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

《程序语言综合课程设计》实验报告.docx

《《程序语言综合课程设计》实验报告.docx》由会员分享,可在线阅读,更多相关《《程序语言综合课程设计》实验报告.docx(47页珍藏版)》请在冰点文库上搜索。

《程序语言综合课程设计》实验报告.docx

《程序语言综合课程设计》实验报告

 

《程序语言综合课程设计》

设计报告

学  院:

信息工程学院

专业班级:

计算机112班

学  号:

姓  名:

指导老师:

完成时间:

2013.7.6

题目一 计算器……………………1

1 题目简介1

2 设计的内容、要求和目标1

3 总体设计1

4 详细设计及实现2

4.1 操作界面设计3

4.2 类成员变量及方法设计4

4.3 源代码分析7

5 系统运行及使用说明13

题目二 学生信息管理系统15

1 题目简介15

2 设计的内容、要求和目标15

3 总体设计16

3.1功能模块划分15

3.2功能模块层次及划分16

3.3相关类文件16

4数据库设计18

4.1数据库表设计18

4.2数据库表间的关系19

4.3数据库的MySQL(SQL)实现19

5 详细设计及实现20

5.1 操作界面设计20

5.2类成员变量及方法设计20

5.4 源代码分析21

6 系统运行及使用说明22

6.1系统运行22

6.2使用说明26

总结27

附录28

A.1题目一关键源码28

A.2题目二关键源码38

 

题目一 计算器

1题目简介

本程序采用高级程序语言JAVA编写,采用eclipse工具完成的一个简单的计算器。

2设计的内容、要求和目标

设计内容:

设计一个GUI简易计算器,用户可以通过鼠标依次输入参加计算的数值,进行加减乘除,cos、sin等混合运算,设计帮助文档。

设计要求:

要求所设计GUI界面计算器是一个使用方便的程序,能实现基本的加减乘除功能,同时实现退格、清零、sin、cos等复杂运算并且设计菜单栏和帮助文档。

设计目标:

添加运算和帮助主题,同时实现树形结构表示帮助主题。

3总体设计

1、利用布局管理器设计计算器整体布局,整个系统采用borderlayout布局,其中使用了6个面板,各面板分别放置。

2、利用按钮设计计算器的各个运算符和操作符,通过按钮的事件处理实现按钮计算功能。

3、利用文本框显示操作数字和运算结果。

4、利用树的结构设计帮助文档。

JTree树:

JTree组件以树结构显示数据项,从中可选择一个或多个数据项。

JTree中数据项通常称为节点。

使用JTree组件需要多个接口和类的配合,除了JTree类之外,还需要Javax.swing.tree子包中的树模型类、树节点类,以及Javax.swing.event子包中的选择时间接口和类等。

DefaultMutableTreeNode默认可变树节点类

Javax.swing.tree.DefaultMutableTreeNode默认可变树节点类声明如下:

 

DefaultMutableTreeNoderoot=newDefaultMutableTreeNode("帮助");

DefaultMutableTreeNodet1=newDefaultMutableTreeNode("帮助信息”);

DefaultMutableTreeNodet1_1=newDefaultMutableTreeNode("说明");

DefaultMutableTreeNodet2=newDefaultMutableTreeNode("简介");

 

5、功能模块图见图1.1

 

图1.1功能模块图

4详细设计及实现

4.1操作界面设计

1、首先是设计一个大小为(100,50,528,258)的窗口,界面布局应用了borderlayout布局。

将六个面板组合好添加到窗体里面。

其中将文本框放置在窗体的上部,显示按钮的值。

窗体的西部放置了计算器的功能按钮,将数字键安置在窗体的中间,而东部则是放置了显示运算过程面板和功能按钮。

并设置saveButton=newJButton("保存");

copyButton=newJButton("复制");

clearButton=newJButton("清除");三个按钮。

主界面:

2、帮助文档树的设计:

(1)、采用JFrame类设计图形用户界面,框架左边使用一个自定义组件MutableJTree以树结果显示帮助文档;MutableJTree组件响应选择事件,当选择树中一个接点时,将该节点的所有孩子节点的对象值显示在右边的Jlist组件中。

(2)、各个节点为DefaultMutableTreeNode默认可变树节点类。

图1.2树的结构

4.2类成员变量及方法设计

计算器主类声明主要是声明各个组件。

菜单项包括帮助主题和关于计算器。

功能键定义区设置好sin,cos,tan,exp等按键的布局。

数字键定义区设置好数字键的布局。

计算方法区主要是定义按钮操作事件,实现计算功能。

1、首先声明一个主类CalculatorWindow,在主类中定义各个组件包括:

功能键定义区设置好sin、cos、tan、exp等按键的布局、数字键定义区设置好数字键的布局、计算方法区主要是定义按钮操作事件,实现计算功能、菜单项包括帮助和查看。

2、主类中通过调用HandleSin、HandleCos、HandleDigit、HandleExp等方法实现Sin、cos、数字键、exp等功能。

3、各个类名:

HandleDigithandleDigit;//负责处理ActionEvent事件

HandleOperationhandleOperation;实现加、减、乘、除运算

HandleBackhandleBack;实现退格事件

HandleClearhandleClear;实现清零事件

HandleEqualityhandleEquality;实现等号事件

HandleDothandleDot;实现小数点事件

HandlePOrNhandlePOrN;实现正负号事件

HandleSinhandleSin;实现sin按钮事件

HandleConhandleCos;实现cos按钮事件

HandleTanhandleTan;实现Tan按钮事件

HandleLoghandleLog实现log按钮事件

;

HandleExphandleExp;实现exp操作

HandleOffhandleOff;关闭

 

系统流程图

 

 

图1.3系统流程图

 

4.3源代码分析

1、主要功能实现涉及的类及方法:

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

importjavax.swing.border.*;

importjava.util.LinkedList;

importjava.io.*;

importjava.lang.Object;

publicclassCalculatorWindowextendsJFrameimplementsActionListener{

NumberButtonnumberButton[];

OperationButtonoperationButton[];

JButton小数点操作,正负号操作,退格操作,等号操作,清零操作,sin,cos,tan,log,exp,off;

JMenuBarbar;

JMenuhelp,view;

JMenuItemabout,exit,information;

JTextFieldresultShow;//显示计算结果

JTextFieldshowComputerProcess;//显示当前计算过程

JTextAreasaveComputerProcess;//显示计算步骤

JButtonsaveButton,copyButton,clearButton;

LinkedListlist;//链表用来存放第一个运算数、运算符号和第二个运算数

HandleDigithandleDigit;//负责处理ActionEvent事件

HandleOperationhandleOperation;

HandleBackhandleBack;

HandleClearhandleClear;

HandleEqualityhandleEquality;

HandleDothandleDot;

HandlePOrNhandlePOrN;

HandleSinhandleSin;

HandleCoshandleCos;

HandleTanhandleTan;

HandleLoghandleLog;

HandleExphandleExp;

HandleOffhandleOff;

publicCalculatorWindow(){

在主类中定义各个组件、方法。

主类中通过调用各个方法进行运算:

2、HandleCos方法:

实现cos键运算功能:

importjava.util.LinkedList;

importjavax.swing.*;

importjava.awt.event.*;

publicclassHandleCosimplementsActionListener{

LinkedListlist;

JTextFieldresultShow,showComputerProcess;

JTextAreasaveComputerProcess;

HandleCos(LinkedListlist,JTextFieldt1,JTextFieldt2,

JTextAreat3){

this.list=list;

resultShow=t1;

showComputerProcess=t2;

saveComputerProcess=t3;

}

publicvoidactionPerformed(ActionEvente){

if(list.size()==1||list.size()==2){

StringnumOne=list.getFirst();

try{doublex=Double.parseDouble(numOne);

doubleresult=Math.cos(x);

Stringstr=String.valueOf(result);

list.set(0,str);

resultShow.setText(str);

Stringproccess="sin("+numOne+")="+result;

showComputerProcess.setText(proccess);

saveComputerProcess.append(""+proccess+"\n");

if(list.size()==2)

list.removeLast();//移掉运算符号

}

catch(Exceptionee){}

}

elseif(list.size()==3){

StringnumTwo=list.getLast();

try{doublex=Double.parseDouble(numTwo);

doubleresult=Math.cos(x);

Stringstr=String.valueOf(result);

list.set(0,str);

resultShow.setText(str);

Stringproccess="cos("+numTwo+")="+result;

showComputerProcess.setText(proccess);

saveComputerProcess.append(""+proccess+"\n");

list.removeLast();//移掉第2个运算数

list.removeLast();//移掉运算符号

}

catch(Exceptionee){}

}

}

}

3、help类:

实现帮助文档:

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

importjavax.swing.event.*;

importjavax.swing.tree.*;

importjava.io.*;

publicclassHelpimplementsTreeSelectionListener{

JEditorPaneeditorPane;

publicHelp(){

JFramehelp=newJFrame("计算器");

ContainercontentPane=help.getContentPane();

DefaultMutableTreeNoderoot=newDefaultMutableTreeNode("帮助");

DefaultMutableTreeNodet1=newDefaultMutableTreeNode("帮助信息");

DefaultMutableTreeNodet1_1=newDefaultMutableTreeNode("说明");

DefaultMutableTreeNodet2=newDefaultMutableTreeNode("简介");

root.add(t1);

root.add(t2);

t1.add(t1_1);

JTreetree=newJTree(root);

tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);

tree.addTreeSelectionListener(this);

JScrollPanescrollPane1=newJScrollPane(tree);

editorPane=newJEditorPane();

JScrollPanescrollPane2=newJScrollPane(editorPane);

JSplitPanesplitPane=newJSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,scrollPane1,scrollPane2);

contentPane.add(splitPane);

help.pack();

help.setBounds(100,50,600,400);

help.setVisible(true);

}

publicvoidvalueChanged(TreeSelectionEvente){

JTreetree=(JTree)e.getSource();

DefaultMutableTreeNodeselectionNode=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();

StringnodeName=selectionNode.toString();

if(selectionNode.isLeaf()){

Stringfilepath="file:

"+System.getProperty("user.dir")+System.getProperty("file.separator")+nodeName+".txt";

try{

editorPane.setPage(filepath);

}catch(IOExceptionex){

System.out.println("找不到此文件");

}

}

elseeditorPane.setText(null);

}

}

4、HandleDot类:

实现小数点事件:

importjava.util.LinkedList;

importjavax.swing.*;

importjava.awt.event.*;

publicclassHandleDotimplementsActionListener{

LinkedListlist;

JTextFieldresultShow,showComputerProcess;

HandleDot(LinkedListlist,JTextFieldt1,JTextFieldt2){

this.list=list;

resultShow=t1;

showComputerProcess=t2;

}

publicvoidactionPerformed(ActionEvente){

Stringdot=e.getActionCommand();

if(list.size()==1){

Stringnum=list.getFirst();

Strings=null;

if(num.indexOf(dot)==-1){

s=num.concat(dot);

list.set(0,s);

}

else

s=num;

list.set(0,s);

resultShow.setText(s);

showComputerProcess.setText(""+list.get(0));

}

elseif(list.size()==3){

Stringnum=list.getLast();

Strings=null;

if(num.indexOf(dot)==-1){

s=num.concat(dot);

list.set(2,s);

}

else

s=num;

resultShow.setText(s);

showComputerProcess.setText(""+list.get(0)+""+list.get

(1)+

""+list.get

(2));

}

}

}

5系统运行及使用说明

1、系统运行结果

采用eclipse工具对程序进行编译运行;运行结果:

图1.4主界面

图1.5查看退出

使用说明文档:

图1.6帮助文档

2、使用说明:

您可以使用计算器进行如加、减、乘、除这样简单的运算。

计算器还提供了编程计算器、科学型计算器和统计信息计算器的高级功能。

可以单击计算器按钮来执行计算,或者使用键盘键入进行计算。

通过按NumLock,您还可以使用数字键盘键入数字和运算符。

题目二 学生管理系统

1题目简介

本系统是应用java语言,在eclipse环境下,调用SQL数据库设计的一个简易学生管理系统,系统中包含学号,姓名,性别,专业,,年级,出生,学生六个基本信息。

学生管理系统,是为老师和学生提供一个学生管理的平台。

长期以来,学校基本都是使用传统人工的方式管理学生信息,效率低、保密性差,随着计算机和网络技术的发展,使用计算机来管理学生信息已经成为发展趋势。

因此,基于java的学生管理系统已成为作为学校管理者不可缺少的部分,应为使用者提供充足的信息和快捷的查询、删除、插入、修改手段。

2设计的内容、要求和目标

设计内容:

建立学生信息数据库,学生管理系统调用数据库进行登录判断和四个基本信息进行查询,添加,修改,删除等操作。

将查询出来的信息应用表格显示出来,在添加信息面板中,设置该信息的各个组件,要求用户填入数据实现添加功能。

修改删除面板中创建该信息的各个组件,从数据库中将该信息显示在组件中,再手动修改数据,实现修改删除功能。

设计要求:

1.用SQL或者mysql设置数据库。

2.要能够链接上数据库。

3.在主界面中利用菜单项进行操作。

4.能够重置学生的信息

5.设置欢迎界面。

设计目标:

通过对数据库的操作,则进入管理系统的主界面,可以通过主界面提供的菜单,可以实现对学生管理系统的基本添加、查询、删除,修改等操作。

3总体设计

3.1功能模块划分

1、学生管理系统需要实现查询、修改、删除、插入学生的个人信息功能。

2、在主界面上进行操作。

功能模块图如下:

图2.1功能模块划分图

 

3.2功能模块层次及调用关系

1、功能模块层次

图2.2功能模块层次及调用关系

2、调用关系

从图2.2知,菜单选项通过调用四个功能函数来实现对数据库的管理。

3.3相关类文件

首先声明一主类Managerwindow,在主类中定义各个组件;还包括:

对各个类的调用以及对Frame类的调用。

Inquest类:

主要实现查询功能模块;

Delete类:

主要实现删除功能模块;

ModifySituation类:

主要实现修改功能模块;

InputStudent类:

主要实现插入功能模块;

通常包括功能模块划分、功能模块层次及调用关系、相关类文件,可分小节介绍。

4数据库设计

主要阐述数据库的各表、视图、触发器等的结构(表名、各字段名、类型、宽度、精度、是否允许空、是否主键、外键、缺省值)。

如果设计题目未涉及数据库则本节省略。

4.1数据库表设计

1、使用MicrosoftOfficeAccess新建一数据库student,设计6个字段Sno、Sname、Ssex、Sspec、Sgrade、Sborn。

2、在字段下面添加数据:

4.2数据表之间关系

主体

内容

Sno

学生学号

Sname

学生姓名

Ssex

性别

Sspec

专业

Sgrade

学生年级

Sborn

学生出生

4.3数据库的MySQL(SQL)实现

1、这里用的是SQL2000数据库,数据库名称为:

stu

2、连接数据库:

创建数据源:

5详细设计及实现

5.1操作界面设计

程序首先运行时弹出登陆界面,在登陆界面中提供菜单选项

在菜单选项中添加基本信息录入;基本信息修改;基本信息查询;基本信息删除;欢迎界面。

点击分别弹出录入、修改、查询、删除功能框。

登录界面大小为(600*580),定义一个面板p将背景图片。

阐述软件的运行及用户操作的界面方案,包括窗口大小、控件布局、文字颜色、字体及操作逻辑等。

5.2类成员及方法设计

1、ManagerWindow.Java

ManagerWindow类继承了Frame类之间组合关系

成员变量:

1.JTextFieldmz单行文本对象,用于输入学

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

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

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

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