一、Github项目地址:https://github.com/Leungdc/ENhomework

二、PSP:

PSP2.1

Personal Software Process Stages

预估耗时(分钟)

实际耗时(分钟)

·Planning

·计划

40

60

· Estimate

· 估计这个任务需要多少时间

30

30

·Development

·开发

1500

1860

· Analysis

· 需求分析

30

70

· Design Spec

· 生成设计文档

30

30

· Design Review

· 设计复审

20

15

· Coding Standard

· 代码规范

60

40

· Design

· 具体设计

20

30

· Coding

· 具体编码

1440

1800

· Code Review

· 代码复审

30

120

· Test

· 测试(自我测试,修改代码,提交修改)

20

80

·Reporting

·报告

60

60

· Test Report

· 测试报告

60

40

· Size Measurement

· 计算工作量

20

20

· Postmortem & Process Improvement Plan

· 事后总结, 并提出过程改进计划

30

30

合计

1700

2000

三、解题思路

架构:基于图形界面的wc.exe程序实现。

主窗体(WC.exe):运行程序  →  弹出窗体  →  用户在窗体内的文本域进行指令的输入  →  点击开始按钮  →  程序执行

副窗体(可用文件):在主窗体中的文本域输入“-x”  →  打开副窗体  →  用户点击按钮扫描系统中所有的.c文件  →  选中文件  →  点击开始按钮  →  程序执行

具体窗体图

        

问题一:这是一个什么窗体?

答:JFrame。

问题二:下方的文本域用的是什么组件?

答:JTextArea。

问题三:为什么不用JTextFiled而用JTextArea

答:JTextField中的文本域只有一行。

问题四:如何给JTextArea添加滚动条?

答:把JTextArea添加到JScrollPane中,当文本域中的文本宽或高超出文本域时,会自动显现上下滚动条或左右滚动条。

问题五:怎么接受到用户的输入,并将输出显示在文本域中呢?

答:JTextArea中的.getText方法和.setText方法可以分别得到和设置文本域中的内容,返回类型为String

四、设计过程实现

                 //由于在具体的实现中副窗体中的代码大多是主窗体代码的复用,所以下面只讨论主窗体的代码组织

在WCview类中有一个主类以及十三个方法,按照功能可以分为基本方法和指令方法,按照其使用的独立性可以分为独立方法和非独立方法。

非独立方法:WCview();initialize();Readfile();方法,其中,

WCview方法调用initialize方法,对设计的窗体进行初始化操作,如设置窗体的大小,窗体中按钮的事件监听器等;

而Readfile()方法则是对“开始”按钮的事件反应,当用户点击“开始”按钮时,就会自动调用Readfile()方法;该方法内容包括如下几点:

  1、textArea.getArea获取文本域中的指令。

  2、对于非法的指令,在文本域中设置报错信息(textArea.setTextArea)反映给用户。

  3、对于合法的指令,读取文本域中用户输入的文件路径,File f  =  new file(路径);创建文件对象,并使用switch方法对指令进行判断,如“-c”;,

独立方法:如wActionPerformed();refresh()方法等,根据程序的需要,设计了独立的代码,供其他类或方法使用。

按照功能分为的基本方法和指令方法

基本方法:1.readtoString方法;根据所所选文件的编码方式,返回字符串数据

2.print方法,递归查找全盘,或者所选根目录下符合要求的.c文件

3.getdirectory方法,递归查找全盘的.c文件

4.refresh方法,刷新一些重要的全局变量

指令方法:1.-cActionPerformed():  -c指令的实现①正则表达式匹配String内容。②对匹配内容计数,.setText方法输出到文本域中。

2.-wActionPerformed():  -w指令的实现①正则表达式匹配String内容。②对匹配内容计数,.setText方法输出到文本域中。

3.-aActionPerformed():  -a指令的实现①正则表达式匹配String内容。②对匹配内容计数,.setText方法输出到文本域中。

4.-lActionPerformed():  -l指令的实现①.setText输出文件内容到文本域。②.getlineCount对行数计数,.setText方法输出行数。

5.-sActionPerformed();

-s(+路径):递归处理全盘或者所加路径下所有的.c文件。

-s-c/w/l/a:    ①用print方法读取目录下的所有.c文件  ②用Readfile读取文件内容  ③ 按需求用.setText方法输出到文本域中。

6.-xActionPerformed();

①自动打开-x操作的窗体

②用户点击“扫描”按钮后扫描全盘下的.c文件,并输出到textArea

③用户选择要操作的目录,点击“开始”按钮输出相关信息。

             

个人项目(WC.exe)(java)(基于图形界面)的更多相关文章

  1. 个人项目-WC.exe (Java实现)

    一.Github项目地址:https://github.com/blanche789/wordCount/tree/master/src/main/java/com/blanche 二.PSP表格 P ...

  2. WC.exe(Java实现)

    一.GitHub项目地址:https://github.com/nullcjm/mypage 二.项目相关要求: wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写 ...

  3. 【计项02组01号】Java版图形界面计算器

    Java版图形界面计算器1.0版本 项目分析[1.0] 组成部分 代码结构 (1)窗口的创建 在<JDK 核心 API>中我们提到,创建一个窗口需要使用 JFrame 类.在本实验中,我们 ...

  4. Java的图形界面依然是跨平台的

    Awt:抽象窗口工具箱,它由三部分组成: ①组件:界面元素: ②容器:装载组件的容器(例如窗体): ③布局管理器:负责决定容器中组件的摆放位置. 图形界面的应用分四步: ① 选择一个容器: ⑴wind ...

  5. Java Swing 图形界面开发(目录)

    Java Swing 图形界面开发(目录) 2017年05月30日 23:50:42 阅读数:5228 本文链接: http://blog.csdn.net/xietansheng/article/d ...

  6. Java Swing图形界面开发

    本文转自xietansheng的CSDN博客内容,这是自己见过的最通俗易懂.最适合快速上手做Java GUI开发的教程了,这里整合一下作为自己以后复习的笔记: 原文地址:https://blog.cs ...

  7. Java自学-图形界面 容器

    Swing 的容器 JFrame和JDialog java的图形界面中,容器是用来存放 按钮,输入框等组件的. 窗体型容器有两个,一个是JFrame,一个是JDialog 步骤 1 : JFrame ...

  8. WC.exe(基于Java实现)

    一.github地址 https://github.com/Mazin-hub/MyWC.exe.git  二.PSP表格 PSP2.1 Personal Software Process Stage ...

  9. Java 快速开发几 MB 独立 EXE,写图形界面很方便

    Java 写的桌面软件带上运行时只有 6 MB,而且还是独立 EXE 文 件,是不是难以置信? 想一想 Electron 没写多少功能就可能超过百 MB 的体积,Java 写的桌面软件算不算得上小.轻 ...

随机推荐

  1. 基于socketsever下实现的FTP

    # ### 客户端client import socket import json import struct import os sk = socket.socket() sk.connect( ( ...

  2. Python序列类型方法

    列表的常用方法 append.insert.extend.pop.remove 元组的两个方法count.index 字符串的常用方法及转义count.find.index.replace.split ...

  3. 用Python打印九九乘法表与金字塔(*)星号

    ''' 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 ...

  4. 【转】java爬虫,爬取当当网数据

     背景:女票快毕业了(没错!我是有女票的!!!),写论文,主题是儿童性教育,查看儿童性教育绘本数据死活找不到,没办法,就去当当网查询下数据,但是数据怎么弄下来呢,首先想到用Python,但是不会!!百 ...

  5. 展示出版社:写上URL地址对应函数、函数当中查询出所有的出版社、对象交给模板、循环对象拿出每条数据展示

    URL: from django.conf.urls import urlfrom django.contrib import adminfrom app01 import views urlpatt ...

  6. LG2921 [USACO2008DEC]Trick or Treat on the Farm 内向基环树

    问题描述 LG2921 题解 发现一共有 \(n\) 个点,每个点只有一条出边,即只有 \(n\) 条边,于是就是一个内向基环树. \(\mathrm{Tarjan}\) 缩点. 但是这个题比较猥琐的 ...

  7. ionic4 ion-modal的用法

    组件内部示例 <ion-header> <ion-toolbar> <ion-title>条件筛选</ion-title> <ion-button ...

  8. SQL Server 迁移数据库 (四)备份和还原

    1. 备份 2. 复制 3. 粘贴 4. 还原 截图软件出问题了,估计重启下就好,但是备份还原比较简单,懂的都懂,马上下班了就不贴图了.

  9. 小程序-tabBar简易版

    <!-- 结构 --> <view class="wrapper"> <block wx:for="{{desc}}"> & ...

  10. stacky footer

    div{border:1px solid #CCC;} .wrapper{ width:100%; height:100%; display:flex; flex-flow: column; } .c ...