A, Github에서 프로젝트 주소 : HTTPS : //github.com/Leungdc/ENhomework
두, PSP :
PSP2.1 |
개인 소프트웨어 프로세스의 단계 |
예상 시간이 소요 (분) |
실제 시간이 많이 소요 (분) |
·계획 |
· 계획 |
(40) |
(60) |
· 견적 |
• 견적 얼마나 많은 시간이 작업이 필요 |
(30) |
(30) |
·개발 |
· 개발 |
1,500 |
1,860 |
· 분석 |
· 분석 필요 |
(30) |
(70) |
· 디자인 사양 |
설계 문서를 생성 |
(30) |
(30) |
· 설계 검토 |
· 설계 검토 |
(20) |
(15) |
· 코딩 표준 |
· 코드 사양 |
(60) |
(40) |
· 디자인 |
· 특정 디자인 |
(20) |
(30) |
· 코딩 |
· 특정 코딩 |
1,440 |
1,800 |
· 코드 검토 |
· 코드 검토 |
(30) |
(120) |
· 테스트 |
· 테스트 (자체 테스트, 코드를 수정, 수정 제출) |
(20) |
(80) |
·보고 |
· 보고서 |
(60) |
(60) |
· 시험 보고서 |
· 시험 보고서 |
(60) |
(40) |
· 크기 측정 |
· 컴퓨팅 워크로드 |
(20) |
(20) |
· 사후 및 프로세스 개선 계획 |
· 돌이켜 보면, 프로세스 개선 계획을 제안한다 |
(30) |
(30) |
합계 |
|
1,700 |
2,000 |
셋째, 문제 해결 아이디어
아키텍처 : wc.exe 프로그램 기반의 그래픽 인터페이스의 구현입니다.
기본 폼 (WC.exe) : 프로그램 실행 시작 → 팝업 버튼을 클릭 입력 → → → 사용자 프로그램 명령 형태 본문 텍스트 필드 실행의 창
부사장 양식 (사용 가능한 파일) : "-x"→ →, 그 사용자가 파일 선택 → 모든 .c 인 파일에 버튼 스캐닝 시스템을 클릭하여 양식을 열 → 시작 버튼 → 프로그램 실행을 클릭하여 기본 폼 텍스트 필드를 입력
특정 양식 차트
질문 :이 양식은 무엇입니까?
A : JFrame의.
질문 2 : 어떤 구성 요소 아래의 텍스트 필드?
答 : JTextArea에.
질문 세 가지 : 왜 JTextFiled 및 JTextArea에 사용하지
A : JTextField를 텍스트 필드에 단 한 줄.
질문 4 : 어떻게 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
③用户选择要操作的目录,点击“开始”按钮输出相关信息。