Java数组编辑器课程设计报告.doc_第1页
Java数组编辑器课程设计报告.doc_第2页
Java数组编辑器课程设计报告.doc_第3页
Java数组编辑器课程设计报告.doc_第4页
Java数组编辑器课程设计报告.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java课程设计报告课程设计题目:数组编辑器学生姓名:汪 杰专 业:信息安全方向班 级:1232102学 号:201230210205指导教师:桂 颖 李丽华 2014年 6月 23日目 录一 设计概述3二 设计目的与内容3三 设计分析3四 类 图 4五 程序截图 5六 源代码 6七 心得体会14一、 设计概述数组编辑器,是用来实现对一个数组进行添删改查,以及求最大值、最小值、求和、平均值等功能。其中,这款软件使用到了图形用户界面,使界面变得更美观。二、 设计目的与内容要求: 采用图形用户界面(1)实现整型数组的创建,要求由用户输入数组长度以及数组元素,并对用户的输入有异常检查(2)查找数组中最大,最小值以及求平均值(3)实现数组的排序,由用户选择何种方式(4)实现数组的插入,并对插入后的数组重排序(5)实现对某个数组元素的删除或修改操作三、 设计分析用户首先需要创建一个数组,确定数组的最大长度,然后再往数组中插值。给数组赋完值之后,可以求出数组的最大最小值、求和、平均数。还可以对数组进行排序,有升序和降序。另外,还可以插入数据,插完之后会对数组进行排序。最后还有,删除和修改的功能,用户可以按照序号或者按照数值进行删除和修改。四、 类图ShuZu类父类:JFrame 接口:ActionListener ShuZu- mnb : JMenubar /菜单栏- wenjian,bianji : JMenubar /菜单- xinjian,tuichu,chazhao,paixu,charu,shanchu,xiugai : JMenuItem /菜单项- a : double /存放数组中的元素- len : int /当前数组元素个数- N : int /数组的最大长度- t1,t2,t3,t4,t5,t6 : JTextField /单行文本框- b1,b2,b3,b4,b5 : JButton /命令按钮- c1,c2,c3 : JComboBox /组合框- a1 : JTextArea /多行文本框+ ShuZu() /构造方法+ editInit() : void /添加菜单栏+ xin_jian(),cha_zhao(),pai_xu(),cha_ru(),shan_chu(),xiu_gai(),tui_chu() : void /各菜单项的函数+ actionPerformed(ActionEvent e) : void /各个事件源的响应事件 五、 程序截图六、 源代码package 数组编辑;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.util.Arrays;import java.util.Scanner;public class ShuZu extends JFrame implements ActionListenerJMenuBar mnb; /菜单栏JMenu wenjian,bianji; /菜单JMenuItem xinjian,tuichu; /菜单项JMenuItem chazhao,paixu,charu,shanchu,xiugai;double a; /数组int len=0; /当前数组元素个数int N; /数组的最大长度/添加方法所需控件JTextField t1,t2;JButton b1,b2;/排序方法所需控件JComboBox c1;JTextArea a1;/插入方法所需控件JTextField t3;JButton b3;/删除方法所需控件JComboBox c2;JTextField t4;JButton b4;/修改方法所需控件JComboBox c3;JTextField t5,t6;JButton b5;ShuZu() /构造方法super(数组编辑器);editInit(); /添加菜单栏this.setJMenuBar(mnb);this.setBounds(200,200,600,400);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);private void editInit() /添加菜单栏mnb=new JMenuBar();wenjian=new JMenu(文件);bianji=new JMenu(编辑);mnb.add(wenjian); mnb.add(bianji);xinjian=new JMenuItem(新建); xinjian.addActionListener(this);tuichu=new JMenuItem(退出); tuichu.addActionListener(this);chazhao=new JMenuItem(查找); chazhao.addActionListener(this);paixu=new JMenuItem(排序); paixu.addActionListener(this);charu=new JMenuItem(插入); charu.addActionListener(this);shanchu=new JMenuItem(删除); shanchu.addActionListener(this);xiugai=new JMenuItem(修改); xiugai.addActionListener(this);wenjian.add(xinjian); wenjian.add(tuichu);bianji.add(chazhao); bianji.add(paixu);bianji.add(charu); bianji.add(shanchu);bianji.add(xiugai);void xin_jian() /新建菜单项JFrame f1=new JFrame(新建数组);f1.setVisible(true);f1.setBounds(300,200,500,400);f1.setLayout( new FlowLayout(FlowLayout.LEFT,30,50) );JLabel l1=new JLabel(请输入数组长度); t1=new JTextField(10); b1=new JButton(确定长度); b1.addActionListener(this);f1.add(l1); f1.add(t1); f1.add(b1);JLabel l2=new JLabel(请输入数组元素);t2=new JTextField(10);b2=new JButton(输入一个元素单击);b2.addActionListener(this);f1.add(l2); f1.add(t2); f1.add(b2);void cha_zhao() /查找菜单项JFrame f2=new JFrame(数组查找);f2.setVisible(true);f2.setBounds(400,200,500,400);f2.setLayout( new GridLayout(4,4,10,5) );double max=a0,min=a0,sum=0,avg;for(int i=0;imax)max=ai;if(aimin)min=ai;avg=1.0*sum/len; /平均数JLabel l1=new JLabel(最大值);JTextField t1=new JTextField(+max+,10);JLabel l2=new JLabel(最小值);JTextField t2=new JTextField(+min+,10);JLabel l3=new JLabel(总和);JTextField t3=new JTextField(+sum+,10);JLabel l4=new JLabel(平均值);JTextField t4=new JTextField(+avg+,10);f2.add(l1); f2.add(t1); f2.add(l2); f2.add(t2);f2.add(l3); f2.add(t3); f2.add(l4); f2.add(t4);void pai_xu() /排序菜单项JFrame f3=new JFrame(数组排序);f3.setVisible(true);f3.setBounds(400,200,300,400);f3.setLayout( new FlowLayout(FlowLayout.LEFT,50,10) );JLabel l1=new JLabel(排序方式); c1=new JComboBox( new String正序,逆序 ); a1=new JTextArea(15,15); c1.addActionListener(this); f3.add(l1); f3.add(c1); f3.add( new JScrollPane(a1) );void cha_ru() /插入菜单项JFrame f4=new JFrame(数组插入);f4.setVisible(true);f4.setBounds(400,200,400,200);f4.setLayout( new FlowLayout(FlowLayout.LEFT,20,10) );JLabel l1=new JLabel(请输入要插入的值);t3=new JTextField(30);b3=new JButton(确定插入);b3.addActionListener(this);f4.add(l1); f4.add(t3); f4.add(b3);void shan_chu() /删除菜单项JFrame f5=new JFrame(数组删除);f5.setVisible(true);f5.setBounds(400,200,400,200);f5.setLayout( new FlowLayout(FlowLayout.LEFT,20,10) );JLabel l1=new JLabel(请选择要执行的操作);c2=new JComboBox( new String要删除元素的序号,要删除元素的数值 );t4=new JTextField(30);b4=new JButton(确认请单击);b4.addActionListener(this);f5.add(l1); f5.add(c2); f5.add(t4); f5.add(b4);void xiu_gai() /修改菜单项JFrame f6=new JFrame(数组修改);f6.setVisible(true);f6.setBounds(400,200,400,200);f6.setLayout( new FlowLayout(FlowLayout.LEFT,20,10) );JLabel l1=new JLabel(请选择要执行的操作);c3=new JComboBox( new String要修改元素的序号,要修改元素的数值 );t5=new JTextField(30);JLabel l2=new JLabel(修改后的数值);t6=new JTextField(20);b5=new JButton(确认请单击);b5.addActionListener(this);f6.add(l1); f6.add(c3); f6.add(t5); f6.add(l2);f6.add(t6); f6.add(b5);void tui_chu() /退出菜单项this.dispose(); /关闭窗口public void actionPerformed(ActionEvent e) /响应单击事件Object o=e.getSource();if(o=xinjian)xin_jian();/新建方法中所需控件的事件else if(o=b1) /确定数组的最大长度N=Integer.parseInt( t1.getText() );len=0; /数组初始化a=new doubleN;else if(o=b2) /向数组中插入元素double x=new Double( t2.getText() );if(lenN)alen=x; len+; t2.setText();elset2.setText(数组已满!);else if(o=chazhao)cha_zhao();else if(o=paixu)pai_xu();/排序方法中所需控件的事件else if(o=c1) /选择排序方式if( c1.getSelectedItem()=正序 )/Arrays.sort(a); /对整个数组排序double t; /冒泡法排序1for(int i=0;ilen-1;i+)for(int j=i+1;jaj)t=ai; ai=aj; aj=t;a1.setText( a1.getText() + 正序排列n );for(int i=0;ilen;i+)a1.setText( a1.getText() + t + ai );a1.setText( a1.getText() + n );else if( c1.getSelectedItem()=逆序 )/Arrays.sort(a);double t; /冒泡法排序2 for(int i=0;ilen-1;i+) for(int j=0;jlen-1-i;j+) if(ajaj+1) t=aj; aj=aj+1; aj+1=t; a1.setText( a1.getText() + 逆序排列n );for(int i=0;ilen;i+)a1.setText( a1.getText() + t + ai );a1.setText( a1.getText() + n );else if(o=charu)cha_ru();/插入方法中所需控件的事件else if(o=b3) /向数组中插入元素double x=new Double( t3.getText() ); /要插入的元素if(lenN)alen=x;len+;/Arrays.sort(a);double t; /插入完后,再排序for(int i=0;ilen-1;i+)for(int j=i+1;jaj)t=ai; ai=aj; aj=t;t3.setText(插入成功);elset3.setText(数组已满,不能继续插入!);else if(o=shanchu)shan_chu();/删除方法中所需控件的事件else if(o=b4) /删除数组中的元素if( c2.getSelectedIndex()=0 ) /按序号删除int k=Integer.parseInt( t4.getText() ); /要删除元素的序号if(k=N)t4.setText(输入的序号越界);elsefor(int i=k;ilen-1;i+) /把ak+1len-1都向前挪一位ai=ai+1;len-;t4.setText(删除成功);else if( c2.getSelectedIndex()=1 ) /按数值删除double x=new Double( t4.getText() ); /要删除元素的数值int n=0; /记录删除元素的个数for(int i=0;ilen;)if(ai=x)for(int j=i;jlen-1;j+)aj=aj+1;n+;elsei+;if(n!=0)len=len-n; /减去多余的元素t4.setText(删除成功);else if(n=0)t4.setText(找不到该元素!);else if(o=xiugai)xiu_gai();/修改方法中所需控件的事件else if(o=b5)if( c3.getSelectedIndex()=0 ) /按序号修改int k=Integer.parseInt( t5.getText() );if(k=N)t6.setText(输入的序号越界);elseak=new Double( t6.getText() );t6.setText(修改成功);else if( c3.getSelectedIndex()=1 ) /按数值修改double x=new Double( t5.getText() );int n=0; /判断是否修改for(int i=0;ilen;i+)if(ai=x)ai=new Double( t6.getText() );n=1;if(n=1)t6.setText(修改成功);else if(n=0)t6.setText(数组中不存在该数值);else if(o=tuichu)tui_chu();public static void main(String args) ShuZu a=new ShuZu();七、心得体会 在这次Java课程设计中,我选的是数组编辑器,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论