java课程设计报告3.doc

上传人:laozhun 文档编号:2387056 上传时间:2023-02-17 格式:DOC 页数:9 大小:165KB
返回 下载 相关 举报
java课程设计报告3.doc_第1页
第1页 / 共9页
java课程设计报告3.doc_第2页
第2页 / 共9页
java课程设计报告3.doc_第3页
第3页 / 共9页
java课程设计报告3.doc_第4页
第4页 / 共9页
java课程设计报告3.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《java课程设计报告3.doc》由会员分享,可在线阅读,更多相关《java课程设计报告3.doc(9页珍藏版)》请在三一办公上搜索。

1、浙江*学院面向对象程序设计java课程设计报告学 院 _*学院_ 专 业 _信息管理_班 级 10信管1班 学 号 * 姓 名 * 课 题(题号)_2、3、4_指导教师 _* _报告成绩_日 期:2011年12 月 18 日一、选题题目1:更正键盘输入的英语书写要求:1. 从键盘输入英文句子,最多可以输入100行,当用户输入一个空行(直接回车)时,输入结束。2. 程序内构造数组,保存输入的英文句子。3. 按照一套规则纠正英文句子的拼写,然后在屏幕上输出结果。4. 纠正英文句子的规则如下,第一条是必须完成的,斜体字列出的是可选的,完成可选部分可以获得更高分(下同):a) 每个英文句子的句首字母大

2、写。b) 给每个句子的句首添加行号。c) 将小写的“zjicm”都替换成大写的“ZJICM”。d) 如果行末没有句号,则自动添加句号。5. 示例如下(完成了规则a、b):提示:1. 关于键盘输入可参考教材例子c14_4。对System.in进行流的包装。2. BufferedReader的readLine函数可读入键盘输入直至碰到换行符或回车符,可参考jdk帮助。readLine返回读入的字符串,不包含换行符。如果直接回车则字符串长度为0。3. 循环调用readLine。用break跳出循环。4. 充分利用字符串类的函数来进行更正的操作。题目2:更正英语书写并输出文件要求:1. 在第一题的基础

3、上增加一项功能:将结果再输出到一个文本文件,文件名任意,如sentence.txt。提示:1. 写文件可参考教材例子c14_7。创建文件和文件输出流。2. 字符串读入和更正已经在第1题中解决。用字符串的某一方法可以从字符串中取出字符,按例子c14_7可将字符一个一个写入文件。3. 实现文本文件中的换行需要输出两个字符:r和n,即回车+换行。题目3:更正文本文件的英语书写要求:1. 已存在文本文件input.txt(由实验材料提供),它包含一些英文句子。2. 读入此文件,程序内构造数组保存输入的英文句子。3. 按照一套规则纠正英文句子的拼写,并将它们在屏幕上输出。4. 纠正英文句子的规则如下,第

4、一条是必须完成的,其它斜体字列出的是可选的:a) 每个英文句子的句首字母大写。b) 给每个句子的句首添加行号。c) 将小写的“zjicm”都替换成大写的“ZJICM”。d) 如果行末没有句号,则自动添加句号。5. 示例如下(完成了规则a、b):提示:1. 文件对象的使用可参考教材例子c14_7,通过文件流对象的read函数可以读文件。2. 如需使用readLine函数按行读入文件,则需要用InputStreamReader和BufferedReader对输入流进行包装,可参考c14_4。当使用readLine时,到达文件末尾时返回字符串为null。3. 参考题目1提示。题目4:更正文本文件的英

5、语书写并在窗口输出要求:1. 在第三题的基础上增加功能:将结果输出到一个窗口中。示例如下:提示:helpingCode目录中包含了上学期实验13(窗口内绘制五二、设计1、 你认为有哪些关键环节(比如键盘输入),解决此环节的技术是什么?此技术落实到教材什么章节?关键环节:文件读取、输入、字符串处理、输出、窗口输出。文件读取、字符输入采用scanner、nextline()方法。字符串处理采用字符串类的方法,对应课本第七章。输出采用System.out.print().文件的保存对应课本第十四章 File 类。窗口输出对应第九章2、 程序的流程该如何?要求画出流程图。基本程序运行图:3、 其他在选

6、择好题目、动手编程之前所考虑的、你认为重要的问题。选择合适的数据结构处理文字数据,字符串和字符数组的选取,代码的可靠性。输入和输出的方法选取。最重要的是找到适合的算法处理数据。三、代码开发过程1、 遇到什么困难?1)调试过程中由于变量的位置变化,经常出现局部变量和全局变量的混乱。导致程序无法正确运行。 解决办法:仔细分析程序,调整变量的位置。2)将结果保存文件时,出现只保存最后一行的错误。经过分析由于使用循环,每次都重新打开已有文件,造成覆盖。 解决办法:在循环处理的过程中,生成一个结果字符串。将结果字符串一次性保存到文件之中.3)保存的结果第一行出现“null”,在生成结果字符串是首行出现空

7、字符。分析在初始赋值时对字符串赋空值。 解决办法。最后再次处理结果字符串。截取需要的部分保存。4)保存文件时,出现结果不换行的情况。分析原因是java中换行符应该写成“rn”,只有“n”时,保存的文件没有换行格式,但显示结果有换行格式。5)在窗口输出结果时,行号发生变化。分析窗口的现实过程,系统调用窗口显示时,对行号变量的值进行了重新计算。导致行号变化。解决办法:在每次显示时,对行号M进行重新赋值。2、 在代码编写时是否出现了设计时不曾预见的情况?如果有,记录修正设计的过程。1) 在添加句末标时发现直接添加会造标点符号的重复情况,之后分析要处理的文本,采用分情况添加的方式避免了处理之后句末标点

8、符号的重复情况。2) 窗口显示结果时行号容易出现变动。理解程序运行过程后,在每次系统调用窗口时,对变量重新赋值解决问题。四、完成情况1、 是否完成了题目要求?对于可选的项目完成到什么程度?圆满完成题目要求。能达到所有处理的要求,程序运行无异常。并且优化句末标点符号的添加,在句末有正确标点时,不会重复添加句号。2、 对于普通的输入,是否返回正常的结果?普通输入返回正常结果。3、 对于破坏性的输入,是否具有容错性?在什么输入的情况下程序会出错?对于破坏性输入有良好的容错性,目前未发现导致程序出错的输入。最后查验发现读取的txt文本文件内不能出现空行。否则程序运行到空行处停止。五、总结个人总结:通过

9、一周的课程设计,进一步熟悉了java的字符串的操作。熟悉的多种处理字符串的方法。扩展自己处理问题的能力,握了保存文件、窗口显示结果的方法。圆满完成题目要求。应得成绩:优。附:程序源代码:题目二:import java.io.FileInputStream;/第三題源代碼import java.util.Scanner;public class Main_02 private static int m = 1;public static void main(String args) Scanner in = null;try in = new Scanner(new FileInputStrea

10、m(input.txt); catch(Exception e) in = new Scanner(System.in);System.out.println(源文件:);while (in.hasNext() String t = in.nextLine(); /读入一行数据System.out.println(t);try in = new Scanner(new FileInputStream(input.txt); catch(Exception e) in = new Scanner(System.in); System.out.println(); System.out.print

11、ln(处理后的结果:); System.out.println();while (in.hasNext() String t = in.nextLine(); /读入一行数据solve(t);m+; /行标/ 查找“zjicm”并用大写的“ZJICM”替换。private static void solve(String p) / TODO Auto-generated method stubString temp = p.replace(zjicm, ZJICM);up(temp);private static void up(String p) String k = p.substring

12、(0, 1);String t = p.substring(1);String l = k.toUpperCase();int len = p.length();String b = p.substring(len - 1, len);if (b.equals(.) | b.equals(,) | b.equals(;) | b.equals(?) System.out.println(m + . + l + t);/输出结果 elseSystem.out.println(m + . + l + t + .);/输出结果/ TODO Auto-generated method stub题目三:

13、import java.util.*;import java.io.*;public class Main04 private static int n;public static void main(String args) Scanner in = null; try /尝试读取in.txt文件 in = new Scanner(new FileInputStream(tin.txt); catch (Exception e) /读取失败表示在OJ系统运行 in = new Scanner(System.in); n=in.nextInt()+1; String a=new Stringn

14、; for(int i=0;in;i+) ai=in.nextLine(); for(int i = 1;in;i+)ai= (String) ai).replace( ,); System.out.println(ai); 题目四:import java.util.*;import java.io.*;import java.awt.*;import javax.swing.*;public class Main05 public Main05() JFrame.setDefaultLookAndFeelDecorated(true); JFrame f=new JFrame(面向对象的程序

15、设计java-窗口显示结果); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); drawPanel pa=new drawPanel(); pa.setPreferredSize(new Dimension(800, 700); Container cp=f.getContentPane(); pa.setBackground(Color.green); cp.add(pa,BorderLayout.CENTER); f.pack(); f.setVisible(true); public static void main(String ar

16、gs) new Main05(); class drawPanel extends JPanel String st1=null; int m; public void paint(Graphics g) int y=50; m=1; Scanner in = null;try in = new Scanner(new FileInputStream(input.txt); catch (Exception e) in = new Scanner(System.in);/in = new Scanner(System.in);while (in.hasNext() String t = in.

17、nextLine(); /读入一行数据solve(t);y+=15;g.drawString(st1, 160, y);m+; /行标m private void solve(String p) / TODO Auto-generated method stubString temp = p.replace(zjicm, ZJICM);up(temp);/处理首字母,行末加标点。private void up(String p) String k = p.substring(0, 1); String t = p.substring(1);String l = k.toUpperCase();int len = p.length();String b = p.substring(len - 1, len);if (b.equals(.)|b.equals(,)|b.equals(;)|b.equals(?) st1=m + . + l + t+rn; /组装字符串 else st1=m + . + l + t+.+rn; /组装字符串/ TODO Auto-generated method stub 参考资料:面向对象的程序设计java 西安电子科技大学出版社 张白一 崔尚森 著;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号