Java数组编辑器 课程设计报告文档格式.docx

上传人:b****6 文档编号:16551326 上传时间:2022-11-24 格式:DOCX 页数:17 大小:306.91KB
下载 相关 举报
Java数组编辑器 课程设计报告文档格式.docx_第1页
第1页 / 共17页
Java数组编辑器 课程设计报告文档格式.docx_第2页
第2页 / 共17页
Java数组编辑器 课程设计报告文档格式.docx_第3页
第3页 / 共17页
Java数组编辑器 课程设计报告文档格式.docx_第4页
第4页 / 共17页
Java数组编辑器 课程设计报告文档格式.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

Java数组编辑器 课程设计报告文档格式.docx

《Java数组编辑器 课程设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《Java数组编辑器 课程设计报告文档格式.docx(17页珍藏版)》请在冰豆网上搜索。

Java数组编辑器 课程设计报告文档格式.docx

四、类图

ShuZu类

五、程序截图

六、源代码

package数组编辑;

importjavax.swing.*;

importjava.awt.*;

importjava.awt.event.*;

importjava.util.Arrays;

importjava.util.Scanner;

publicclassShuZuextendsJFrameimplementsActionListener{

JMenuBarmnb;

//菜单栏

JMenuwenjian,bianji;

//菜单

JMenuItemxinjian,tuichu;

//菜单项

JMenuItemchazhao,paixu,charu,shanchu,xiugai;

double[]a;

//数组

intlen=0;

//当前数组元素个数

intN;

//数组的最大长度

//添加方法所需控件

JTextFieldt1,t2;

JButtonb1,b2;

//排序方法所需控件

JComboBoxc1;

JTextAreaa1;

//插入方法所需控件

JTextFieldt3;

JButtonb3;

//删除方法所需控件

JComboBoxc2;

JTextFieldt4;

JButtonb4;

//修改方法所需控件

JComboBoxc3;

JTextFieldt5,t6;

JButtonb5;

ShuZu()//构造方法

{

super("

数组编辑器"

);

editInit();

//添加菜单栏

this.setJMenuBar(mnb);

this.setBounds(200,200,600,400);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setVisible(true);

}

privatevoideditInit()//添加菜单栏

mnb=newJMenuBar();

wenjian=newJMenu("

文件"

bianji=newJMenu("

编辑"

mnb.add(wenjian);

mnb.add(bianji);

xinjian=newJMenuItem("

新建"

xinjian.addActionListener(this);

tuichu=newJMenuItem("

退出"

tuichu.addActionListener(this);

chazhao=newJMenuItem("

查找"

chazhao.addActionListener(this);

paixu=newJMenuItem("

排序"

paixu.addActionListener(this);

charu=newJMenuItem("

插入"

charu.addActionListener(this);

shanchu=newJMenuItem("

删除"

shanchu.addActionListener(this);

xiugai=newJMenuItem("

修改"

xiugai.addActionListener(this);

wenjian.add(xinjian);

wenjian.add(tuichu);

bianji.add(chazhao);

bianji.add(paixu);

bianji.add(charu);

bianji.add(shanchu);

bianji.add(xiugai);

}

voidxin_jian()//新建菜单项

JFramef1=newJFrame("

新建数组"

f1.setVisible(true);

f1.setBounds(300,200,500,400);

f1.setLayout(newFlowLayout(FlowLayout.LEFT,30,50));

JLabell1=newJLabel("

请输入数组长度"

t1=newJTextField(10);

b1=newJButton("

确定长度"

b1.addActionListener(this);

f1.add(l1);

f1.add(t1);

f1.add(b1);

JLabell2=newJLabel("

请输入数组元素"

t2=newJTextField(10);

b2=newJButton("

输入一个元素单击"

b2.addActionListener(this);

f1.add(l2);

f1.add(t2);

f1.add(b2);

voidcha_zhao()//查找菜单项

JFramef2=newJFrame("

数组查找"

f2.setVisible(true);

f2.setBounds(400,200,500,400);

f2.setLayout(newGridLayout(4,4,10,5));

doublemax=a[0],min=a[0],sum=0,avg;

for(inti=0;

i<

len;

i++)

{//找最值,求和

sum+=a[i];

if(a[i]>

max)

max=a[i];

if(a[i]<

min)

min=a[i];

}

avg=1.0*sum/len;

//平均数

最大值"

JTextFieldt1=newJTextField("

"

+max+"

10);

最小值"

JTextFieldt2=newJTextField("

+min+"

JLabell3=newJLabel("

总和"

JTextFieldt3=newJTextField("

+sum+"

JLabell4=newJLabel("

平均值"

JTextFieldt4=newJTextField("

+avg+"

f2.add(l1);

f2.add(t1);

f2.add(l2);

f2.add(t2);

f2.add(l3);

f2.add(t3);

f2.add(l4);

f2.add(t4);

voidpai_xu()//排序菜单项

JFramef3=newJFrame("

数组排序"

f3.setVisible(true);

f3.setBounds(400,200,300,400);

f3.setLayout(newFlowLayout(FlowLayout.LEFT,50,10));

排序方式"

c1=newJComboBox(newString[]{"

正序"

"

逆序"

});

a1=newJTextArea(15,15);

c1.addActionListener(this);

f3.add(l1);

f3.add(c1);

f3.add(newJScrollPane(a1));

voidcha_ru()//插入菜单项

JFramef4=newJFrame("

数组插入"

f4.setVisible(true);

f4.setBounds(400,200,400,200);

f4.setLayout(newFlowLayout(FlowLayout.LEFT,20,10));

请输入要插入的值"

t3=newJTextField(30);

b3=newJButton("

确定插入"

b3.addActionListener(this);

f4.add(l1);

f4.add(t3);

f4.add(b3);

voidshan_chu()//删除菜单项

JFramef5=newJFrame("

数组删除"

f5.setVisible(true);

f5.setBounds(400,200,400,200);

f5.setLayout(newFlowLayout(FlowLayout.LEFT,20,10));

请选择要执行的操作"

c2=newJComboBox(newString[]{"

要删除元素的序号"

要删除元素的数值"

t4=newJTextField(30);

b4=newJButton("

确认请单击"

b4.addActionListener(this);

f5.add(l1);

f5.add(c2);

f5.add(t4);

f5.add(b4);

voidxiu_gai()//修改菜单项

JFramef6=newJFrame("

数组修改"

f6.setVisible(true);

f6.setBounds(400,200,400,200);

f6.setLayout(newFlowLayout(FlowLayout.LEFT,20,10));

c3=newJComboBox(newString[]{"

要修改元素的序号"

要修改元素的数值"

t5=newJTextField(30);

修改后的数值"

t6=newJTextField(20);

b5=newJButton("

b5.addActionListener(this);

f6.add(l1);

f6.add(c3);

f6.add(t5);

f6.add(l2);

f6.add(t6);

f6.add(b5);

voidtui_chu()//退出菜单项

this.dispose();

//关闭窗口

publicvoidactionPerformed(ActionEvente)//响应单击事件

Objecto=e.getSource();

if(o==xinjian)

xin_jian();

//新建方法中所需控件的事件

elseif(o==b1)//确定数组的最大长度

{

N=Integer.parseInt(t1.getText());

len=0;

//数组初始化

a=newdouble[N];

elseif(o==b2)//向数组中插入元素

doublex=newDouble(t2.getText());

if(len<

N)

{

a[len]=x;

len++;

t2.setText("

}

else

t2.setText("

数组已满!

elseif(o==chazhao)

cha_zhao();

elseif(o==paixu)

pai_xu();

//排序方法中所需控件的事件

elseif(o==c1)//选择排序方式

if(c1.getSelectedItem()=="

//Arrays.sort(a);

//对整个数组排序

doublet;

//冒泡法排序1

for(inti=0;

len-1;

for(intj=i+1;

j<

j++)

if(a[i]>

a[j])

{

t=a[i];

a[i]=a[j];

a[j]=t;

}

a1.setText(a1.getText()+"

正序排列\n"

);

a1.setText(a1.getText()+"

\t"

+a[i]);

\n"

elseif(c1.getSelectedItem()=="

//冒泡法排序2

for(inti=0;

for(intj=0;

len-1-i;

if(a[j]<

a[j+1])

{

t=a[j];

a[j]=a[j+1];

a[j+1]=t;

}

逆序排列\n"

elseif(o==charu)

cha_ru();

//插入方法中所需控件的事件

elseif(o==b3)//向数组中插入元素

doublex=newDouble(t3.getText());

//要插入的元素

len++;

//插入完后,再排序

t3.setText("

插入成功"

数组已满,不能继续插入!

elseif(o==shanchu)

shan_chu();

//删除方法中所需控件的事件

elseif(o==b4)//删除数组中的元素

if(c2.getSelectedIndex()==0)//按序号删除

intk=Integer.parseInt(t4.getText());

//要删除元素的序号

if(k<

0||k>

=N)

t4.setText("

输入的序号越界"

else

{

for(inti=k;

i++)//把a[k+1~len-1]都向前挪一位

a[i]=a[i+1];

len--;

删除成功"

}

elseif(c2.getSelectedIndex()==1)//按数值删除

doublex=newDouble(t4.getText());

//要删除元素的数值

intn=0;

//记录删除元素的个数

if(a[i]==x)

for(intj=i;

a[j]=a[j+1];

n++;

else

i++;

if(n!

=0)

len=len-n;

//减去多余的元素

elseif(n==0)

找不到该元素!

elseif(o==xiugai)

xiu_gai();

//修改方法中所需控件的事件

elseif(o==b5)

if(c3.getSelectedIndex()==0)//按序号修改

intk=Integer.parseInt(t5.getText());

t6.setText("

a[k]=newDouble(t6.getText());

修改成功"

elseif(c3.getSelectedIndex()==1)//按数值修改

doublex=newDouble(t5.getText());

//判断是否修改

a[i]=newDouble(t6.getText());

n=1;

if(n==1)

数组中不存在该数值"

elseif(o==tuichu)

tui_chu();

publicstaticvoidmain(String[]args){

ShuZua=newShuZu();

}

七、心得体会

在这次Java课程设计中,我选的是数组编辑器,虽然本身是很简单的,但还是存在着一些问题,刚开始的时候对图形用户界面使用的不怎么熟悉,后来找了一些资料就大概了解了一些。

另外还有一些隐藏的很深的问题,比如说,删除的功能,如果有多个元素与要删除的数值一样的话,要把这些元素都删除,在这里我开始是使用for循环从第一个元素到最后一个元素找,如果找到有哪个元素和要删除的值相同就把他给删掉,不过在这里问题出来了,如果删除成功的话后面的都会往前进一位,然后应该要继续判断该下标的元素是否删除,而不能让下表后移。

最后通过老师和同学的帮助下,终于把这个程序给完成了。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,将结论用于实践,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中当然遇到了问题,可以说得是困难重重,毕竟这是不可避免的,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

由于能力有限,其中文档的编写是参考书上资料,我想在以后的学习中,要更注重实践这一环节。

通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到种种问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍。

从设计过程看,在整整一个星期的日子里,做到精益求精,学到了很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

从设计结果看,设计要求完成任务,达到了预期的目的,设计、演示效果较好。

最主要是从中学到了知识。

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

当前位置:首页 > 高中教育 > 语文

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

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