一、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. [20190910]索引分支块中TERM使用什么字符表示.txt

    [20190910]索引分支块中TERM使用什么字符表示.txt --//做索引块转储,一些root,分支节点出现TERM,从来没有关注使用字符表示,简单探究看看. 1.环境:SCOTT@test01 ...

  2. 微信小程序如何使用 Git 实现版本管理和协作开发

    前言 在微信小程序开发的过程中,代码版本管理往往需要使用第三方工具进行管理.虽然微信Web开发工具提供了对Git文件版本状态的提示,但实际的使用体验依然不尽人意. 随着微信Web开发工具的更新,最新的 ...

  3. 1. Linux基本命令

    1. Linux 基本操作 1 基本命令 序号 命令 对应英文 作用 1 ls list 查看当前文件夹下的内容 2 pwd print work directory 查看当前所在文件夹 3 Cd [ ...

  4. 初学JavaScript正则表达式(十三)

    字符串方法 search(reg) search()用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串 方法返回第一个匹配结果index,查找不到返回-1 search()不执行全局匹 ...

  5. 攻防世界web之PHP2

    题目 御剑扫描无果,源码也无发现 但是在url后面添加index.phps发现代码泄露 右击查看源码 审计代码 首先不能admin等于get传过来的值 又要使admin等于get传值 在get传值之前 ...

  6. day8_对象的交互

    #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2019/7/14 15:07 # @Author : 大坏男孩 # @File : d ...

  7. Session中短信验证码设置有效时间

    Session中短信验证码设置有效时间 package com.mozq.boot.kuayu01.controller; import org.springframework.web.bind.an ...

  8. Chatbot:

    讲清了一些最最基本的概念 - Intents(意图)和Entities(关键字) - 基于意图(Intent-based)的对话 和 基于流程(Flow-based)的对话  聊天机器人教学:使用Di ...

  9. boostrap --- 弹窗modal的使用

    <input id="btntext" type="button" value="添加文本组件" data-toggle=" ...

  10. pip 源切换至国内镜像

    pip 源切换至国内镜像 使用 pip 安装软件时,使用国内镜像可以大大提高下载速度 常用国内镜像 https://pypi.tuna.tsinghua.edu.cn/simple/ # 清华大学 h ...