JAVA简单记事本程序设计实验报告(带源码)

时间:2024.4.20

JAVA程序设计

实 验 报 告

           院    系:        信息工程系                    

专    业:       计算机应用技术              

班    级:       11计算机01                   

姓    名:           Civen                    

任课教师:          XXX                            

实验题目: JAVA简单记事本程序设计     

 

目    录

目    录........................................................................................... 1

一、引言........................................................................................... 2

1.1  课程设计目的................................................................... 2

1.2   题目说明.......................................................................... 2

1.3  开发工具介绍................................................................... 2

二、总体设计.................................................................................. 3

2.1系统开发平台...................................................................... 3

2.2 系统流程图......................................................................... 4

2.3功能结构图.......................................................................... 4

2.4数据库设计.......................................................................... 4

三、详细说明.................................................................................. 4

3.1 系统实施.............................................................................. 5

四、系统的调试和运行................................................................. 9

五、课程设计总结.......................................................................... 9

六、参考文献.................................................................................. 9

附录(源程序代码)................................................................... 10

一、引言

1.1  课程设计目的

1) 复习,巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握;

2) 课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力,提高学生适应实际,实践编程的能力;

3) 培养学生在项目开发中团队合作精神,创新意识及能力。

1.掌握窗口、菜单等高级组件的应用。

2.掌握Java Swing的使用方法。

3.了解GUI应用程序的创建过程与方法。

1.2   题目说明

课题:学生成绩管理

4.功能要求: 编写一个简单记事本程序,要求包含以下菜单项

文件  新建、打开、保存、退出

编辑  剪切、拷贝、粘贴、查找

帮助  关于

5.实现文件和编辑菜单里的功能

1.3        开发工具介绍

Eclipse是一种可扩展的开放源代码IDE。20##年11月,IBM公司捐出价值4,000万美元的源代码组建了Eclipse联盟,并由该联盟负责这种工具的后续开发。集成开发环境(IDE)经常将其应用范围限定在“开发、构建和调试”的周期之中。为了帮助集成开发环境(IDE)克服目前的局限性,业界厂商合作创建了Eclipse平台。Eclipse允许在同一IDE中集成来自不同供应商的工具,并实现了工具之间的互操作性,从而显著改变了项目工作流程,使开发者可以专注在实际的嵌入式目标上。

利用Eclipse,我们可以将高级设计(也许是采用UML)与低级开发工具(如应用调试器等)结合在一起。如果这些互相补充的独立工具采用Eclipse扩展点彼此连接,那么当我们用调试器逐一检查应用时,UML对话框可以突出显示我们正在关注的器件。事实上,由于Eclipse并不了解开发语言,所以无论Java语言调试器、C/C++调试器还是汇编调试器都是有效的,并可以在相同的框架内同时瞄准不同的进程或节点。

Eclipse的最大特点是它能接受由Java开发者自己编写的开放源代码插件,这类似微软公司的Visual Studio和Sun 微系统公司的NetBeans平台。Eclipse为工具开发商提供了更好的灵活性,使他们能更好地控制自己的软件技术。Eclipse 联盟已经宣布将在20##年中期发布其3.0版软件。这是一款非常受欢迎的java开发工具,这国内的用户越来越多,实际上实用它java开发人员是最多的。缺点就是较复杂,对初学者来说,理解起来较困难。

二、总体设计

2.1系统开发平台

前端使用JAVA设计

 2.2 系统流程图

                

         

2.3功能结构图

3.2.2 “文件”菜单操作流程图

3.2.3 “编辑”菜单操作流程图

3.2.4 “帮助”菜单操作流程图

三、详细说明

设计两个类,一个jsb类,具有程序的要求和功能再创建一个keshe主类,在主类中创建一个jsb类的对象,就可以直接在编译器中运行程序。

1:界面设计

在主界面中设计一个Frame容器,并在其中加入一个下拉菜单和一个文本域控件,把该容器设置为GridLayout(1,1)布局。

  2:功能设计

在下拉菜单中加入子菜单并进行监听,分别实现对文件的操作功能。点击不同菜单项时,显示不同界面。

  3:代码设计

编写每个控件的相关代码,并进行调试。

3.1 系统实施

1:界面设计

创建一个下拉菜单和文本域,在文本域中显示编辑的文件信息。

主要代码:

f=new Frame(s);

p1=new TextArea("");

f.setSize(400,600);

f.setBackground(Color.white);

f.setVisible(true);

menubar=new MenuBar();

menu1=new Menu("文件");

menu2=new Menu("编辑");

menu3=new Menu("帮助");

item1=new MenuItem("新建");

item2=new MenuItem("打开");

item3=new MenuItem("保存");

item4=new MenuItem("另存为");

文本框:  item5=new MenuItem("退出");

item6=new MenuItem("全选");

item7=new MenuItem("复制");

item8=new MenuItem("剪切");

item9=new MenuItem("粘贴");

item10=new MenuItem("关于");

   menu1.add(item1);

    menu1.add(item2);

 menu1.add(item4);

menu1.add(item5);

menu2.add(item6);

menu2.add(item7);

menu2.add(item8);

menu2.add(item9);

menu3.add(item10);

menubar.add(menu1);

menubar.add(menu2);

menubar.add(menu3);

f.setMenuBar(menubar);

2:功能设计

对每个菜单项进行注册监听。点击不同菜单项时,显示不同界面。

主要代码

item1.addActionListener(this);

item2.addActionListener(this);

item3.addActionListener(this);

item4.addActionListener(this);

item5.addActionListener(this);

item6.addActionListener(this);

item7.addActionListener(this);

item8.addActionListener(this);

item9.addActionListener(this);

item10.addActionListener(this);

3:代码设计

部分菜单项的相关代码:

新建文件

if (e.getSource()==item1)

{ if (i==0&&(ss.length()!=0)){ bc(); }

else

 p1.setText("");i=0;f.setTitle("文件对话框"); }

打开文件

if (e.getSource()==item2)

{ fd=new FileDialog(f,"打开文件",0);

fd.setVisible(true);

try{ file=new File(fd.getDirectory(),fd.getFile());

f.setTitle(fd.getFile()+"文件对话框");

FileReader fr=new FileReader(file);

BufferedReader br=new BufferedReader(fr);

String line = null;

String view = "";

while((line=br.readLine())!=null)

{ view += line+"\n"; }

p1.setText(view);

br.close();

fr.close(); }

catch(IOException expIn)

{} }

复制文件

if (e.getSource()==item7)

{ try{

String str=p1.getSelectedText();

if(str.length()!=0)

{ strt=str;

} }catch(Exception ex)

{ } }

粘贴文件

if (e.getSource()==item9)

{ if(strt.length()>0)

{ p1.insert(strt,p1.getCaretPosition());

}

退出记事本

if (e.getSource()==item5)

{ if (i==0 &&(ss.length()!=0))

{ bc(); } else { System.exit(0); } }


四、系统的调试和运行

1:界面调试

确定主窗体,设置主窗体的属性,对窗体进行布局,加入所需控件并对控件进行初始化。在完成加入菜单控件后,不能缺少 f.setMenuBar(menubar); 语句,将menubar设为主窗体的菜单条,否则会看不到菜单栏。

如图:

2:功能调试

对所有菜单项进行注册监听。当进行除保存以外的菜单项的功能外,在actionPerformed中要编写判断界面是否已经打开或者编辑了文件,如果是,在进行别的功能之前,先对本文件的保存功能,以免文件的丢失。在具体实现中可以用变量i来判断文件是否处于保存状态。

 

五、课程设计总结

本次课程设计,让我获益匪浅,不仅更深入的了解Java这门学科,更使自己有了继续探索的兴趣。

于个人而言,在程序设计的过程中,我深感“认真严谨”这个词的重要性,一点点小的马虎,便会导致整个程序不能正常运行。在今后的学习中,我定将“认真严谨时刻作为自的谨言。与此同时,本小组成员的互帮互助,让我体会到了团结的力量,而更让人难以忘怀的是在热烈讨论问题时,那激情横溢的场面。总之,此次课程设计在我的学生生涯中启上了至关重要的作用。

最后,真诚的感谢陈珂、顾成喜老师的指导和教诲。

六、参考文献

按照以下格式书写

[1] 权明富,齐佳音,舒华英.客户价值评价指标体系设计[J].南开管理评论,2004,7(3):17-18.

[2] 刘小洪,邹鹏. 商业银行客户关系价值管理模型研究[J].管理科学,2005,18(3):57-60.

附录(源程序代码)

import java.io.*;

import java.awt.*;

import java.awt.event.*;

class FileInAndOut {

       public static String fileInput(String fName){

              String strRead="";

              try {

                     FileReader fr=new FileReader(fName);

                     BufferedReader br=new BufferedReader(fr);

                     String aline=new String();

                     while((aline=br.readLine())!=null)

                     strRead=strRead+aline;

                     br.close();

                     fr.close();

              } catch (FileNotFoundException e) {

                     e.printStackTrace();

              } catch (IOException e) {

                     e.printStackTrace();

              }

              return strRead;

       }

       public static void fileWrite(String fName,String temp){

              try {

                     FileWriter fw=new FileWriter(fName);

                     BufferedWriter bw=new BufferedWriter(fw);

                     bw.write(temp);

                     bw.close();

                     fw.close();

              } catch (IOException e) {

                     e.printStackTrace();

              }

       }

}

public class MyNote implements ActionListener {

       private Frame f;

       private TextArea ta;

       private MenuBar mb;

       private String strme[]={"文件","编辑","帮助"};

       private String strmi[][]={{"新建","打开","保存","退出"},

                                                 {"剪切","拷贝","粘贴","查找"},

                                                 {"关于"}};

       private String fileDir,fileName,temp="";

       private Menu me[];

       private MenuItem mi[][];

       private Label l1,l2;

       private TextField t1,t2;

       private Button b1,b2,b3;

       private Dialog diaFind,diaAbout;

       public MyNote(){

              f=new Frame("无标题--我的记事本");

              ta=new TextArea();

              f.add(ta);

              mb=new MenuBar();

              f.setMenuBar(mb);

              mi=new MenuItem[strme.length][];

              me=new Menu[strme.length];

              for(int i=0;i<strme.length;i++){

                     me[i]=new Menu(strme[i]);

                     mb.add(me[i]);

                     mi[i]=new MenuItem[strmi[i].length];

                     for(int j=0;j<strmi[i].length;j++){

                            mi[i][j]=new MenuItem(strmi[i][j]);

                            me[i].add(mi[i][j]);

                            mi[i][j].addActionListener(this);

                     }

              }

              f.addWindowListener(new WindowAdapter(){

                     public void windowClosing(WindowEvent e){

                            System.exit(0);

                     }

              });

              f.setSize(400,300);

              f.show();

              diaFind=new Dialog(f,"查找",true);

              diaFind.setLayout(new FlowLayout());

              diaFind.setSize(260,120);

              l1=new Label("查找内容");

              l2=new Label("替 换 为");

              t1=new TextField(20);

              t2=new TextField(20);

              b1=new Button("下一个");

              b2=new Button("替换");

              b3=new Button("取消");

              diaFind.add(l1);

              diaFind.add(t1);

              diaFind.add(l2);

              diaFind.add(t2);

              diaFind.add(b1);

              diaFind.add(b2);

              diaFind.add(b3);

              diaFind.addWindowListener(new WindowAdapter(){

                     public void windowClosing(WindowEvent e){

                            diaFind.dispose();

                     }

              });

       }

       public void actionPerformed(ActionEvent e){

              String cmd=e.getActionCommand();

              if(cmd.equals("新建")){

                     fileDir="";

                     fileName="";

                     ta.setText("");

                     f.setTitle("无标题--我的记事本");

              }

              if(cmd.equals("打开")){

                     FileDialog diaOpen=new FileDialog(f,"",FileDialog.LOAD);

                     diaOpen.show();

                     fileDir=diaOpen.getDirectory();

                     fileName=diaOpen.getFile();

                     if(!fileName.equals("")){

                            ta.setText(FileInAndOut.fileInput(fileDir+fileName));

                            f.setTitle(fileName+"--我的记事本");

                     }

              }

              if(cmd.equals("保存")){

                     FileDialog diaSave=new FileDialog(f,"",FileDialog.SAVE);

                     diaSave.show();

                     fileDir=diaSave.getDirectory();

                     fileName=diaSave.getFile();

                     if(!fileName.equals("")){

                     FileInAndOut.fileWrite(fileDir+fileName,ta.getText());

                     f.setTitle(fileName+"--我的记事本");

                     }

              }

              if(cmd.equals("退出")){

                     System.exit(0);

              }

              if(cmd.equals("剪切")){

                     int x,y;

                     x=ta.getSelectionStart();

                     y=ta.getSelectionEnd();

                     temp=ta.getSelectedText();

                     ta.replaceRange("",x,y);

              }

              if(cmd.equals("拷贝")){

                     temp=ta.getSelectedText();

              }

              if(cmd.equals("粘贴")){

                     ta.replaceRange(temp,ta.getSelectionStart(),ta.getSelectionEnd());

              }

              if(cmd.equals("查找")){

                     diaFind.show();

              }

              if(cmd.equals("关于")){

                    

              }

       }

       public static void main(String[] args) {

              new MyNote();

       }

}

更多相关推荐:
C++程序设计实验报告

C++程序设计实验报告学号:姓名:班级:指导老师:实验一、字符和格式的输出实验一,实验目的1、重点把握各种内部数据类型、数值和逻辑运算,各种表达式、函数声明、定义和调用。2、掌握过程控制编程方法,正确编制多重循…

程序设计实验报告模板

C语言程序设计实验报告1实验目的(1)掌握函数的定义方法、调用方法、参数说明以及返回值;(2)掌握实参与形参的对应关系,以及参数之间的值传递的方式;(3)掌握函数的嵌套调用及递归调用的设计方法;(4)在编程过程…

Java程序设计实验报告

学生实验报告册(理工类)课程名称:JAVA程序设计实验专业班级:M11计算机科学与技术II学生学号:学生姓名:所属院部:XX学院指导教师:20XX20XX学年第二学期金陵科技学院教务处制实验报告书写要求实验报告…

程序设计综合实验报告册

西南交通大学程序设计综合实验实验地点实验学期学生班级学生学号学生姓名任课教师龚勋信息科学与技术学院20xx年4月实验一ATM机用户操作界面业务逻辑编写实验目的及内容1根据ATM的工作流程编写用户界面掌握文本用户...

C程序设计实验报告

C语言程序设计实验报告学号不告诉你哦班级信管一班姓名你猜猜哈哈一实验题目一编程实验猜数问题输入两个整数并求这两个整数的和输入所猜的结果如果输入数比正确的结果要大提示猜大了如果输入数比正确的结果要小提示猜小了当猜...

C程序设计实验报告5

工学院工业设计专业10级20xx至20xx学年度第1学期学号2104021638姓名杨芹芹20xx年9月22日第34节综合楼325教室

C程序设计实验报告2

院专业20xx级20xx至20xx学年度第1学期学号姓名20xx年9月22日第34节综合楼325教室

《高级语言程序设计》实验报告(必看)

高级语言程序设计实验报告

c++程序设计实验报告实验一

C实验报告课程名称C程序设计成绩评定实验项目名称几何形体练习1指导教师实验项目编号1实验项目类型实验地点学生姓名学号学院计算机与信息工程学院专业计算机科学与技术实验时间20xx年11月26日一实验目的熟悉掌握类...

C++程序设计实验报告

C实验报告实验一1实验要求1编写一个函数把华氏温度转换为摄氏温度转换公式如下CF32592编写重载函数Max1可分别求两个整数三个整数两个双精度数三个双精度数的最大值3使用系统函数powxy计算xy的值注意包含...

C程序设计实验报告3-

院专业20xx级20xx至20xx学年度第1学期学号姓名20xx年10月8日第34节综合楼325教室

C++描述程序设计实验报告

《程序设计基础》实验报告实验一面向过程的简单程序设计1.实验目的掌握C++语言的数据类型(包括对各种数据类型变量的定义、初始化、赋值等)、运算符和表达式的使用。掌握赋值语句的使用。掌握数据的输入输出方法。2.实…

程序设计实验报告(37篇)