string类的实现说明书.doc_第1页
string类的实现说明书.doc_第2页
string类的实现说明书.doc_第3页
string类的实现说明书.doc_第4页
string类的实现说明书.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

*实践教学* 兰州理工大学计算机与通信学院2013年秋季学期Java面向对象课程设计题 目: string类的实现 专业班级: 11级基地班 姓 名: 尹鹏飞 学 号: 11270305 指导教师: 段宏湘 成 绩: _ 摘要 String类的实现实现的是string中的七个功能,本设计是采用可视化的界面来实现一些列的操作,需要用户自己输入数据,同时也采用了一些文件的调用和创建的操作,使用了鼠标的监听器等等。但感觉有些繁琐和拥挤,这是后期将要改正的地方,总体上还是不错的,可以认为是很成功的一次设计。关键词:可视化、监听器、文件、数据序言经过这将近一个学期对java的学习,我感觉自己对这一门语言产生了浓厚的兴趣,并自己不断去尝试打一些代码练练手,最后老师组织了这一次学期末的课程设计,我想终于可以做点东西出来了,是以自己的双手一点点的去实现它,看着它的不断成型,心里别提多有成就感了。中途也遇到了很多的挫折,好多不会的地方见见显露出来,还要去查资料,一步步自己学,然后再去实践试用。总体来说,这次的课程设计,自己费了很大的心血在里面,也出现过焦虑不安,烦躁等情绪,有时候索性一扔,就不想再干了,等静下心来后,还是乖乖地回来重头做起。这个可视化也不是特别美观,我也没时间和精力花费在这上面,所以还请老师见谅,两周时间把七个功能一个个实现,并且还要弄成可视化的界面,确实挺麻烦,大部分时间就只顾着去把各种功能与画布结合起来最后,有不足的地方望老师能够理解。II目录摘要I序言II一、系统分析与设计- 1 -1.系统分析- 1 -2.系统设计- 1 -二、详细设计- 10 -三、系统测试- 16 -1.测试方案- 16 -2.测试用例及结果- 17 -四、软件使用说明书- 20 -设计总结- 21 -参考文献- 22 -一、系统分析与设计1.系统分析对于string类的实现这个题目,string类的各种功能要各自实现,并且不借用它固有的方法,就要自己去一点点的实现 最后把各种功能总结到一块,其中字符串的连接可以使用创建文件的方式来实现,并把连接后的字符串显示出来;求字符串的长度这个也不是太难,只要一个字符一个字符读取并添加一个计数器就行;求某个字符在字符串中的位置,首要把字符串转换成为数组形式的才可方便返回值;字符串的比较,从键盘读入两个串,一个字符一个字符的相比较,以确定是否相同;提取子串,同样,也需要把原串转换为数组形式,再通过键盘输入的两个值确定截取的位置;大小写的转换,可以利用ASCII码的大小来判断原值的大小写;对于指定字符的替换,可以利用查找到字符后重新赋值的方法来实现。2.系统设计总体设计:通过布局管理器排版各个模块的位置,再通过按钮来执行一系列的操作,为了实现这个操作,就要设置鼠标监听器,通过对鼠标点击的监听,调用各自类内对应的方法实现一系列的操作,然后再返回所需要的值。 图1 总体设计流程图 1.连接部分设计:在这里把两个已经建立好的文档内的数据写入子串1、2的区域内,再通过文件流的操作把子串1和2连起来,通过点击按钮的操作输入到子串3 的区域里。 图2 连接子串流程图 2.长度部分设计:通过对键盘输入串的提取,保存到一个字符串中,再调用类内的求长度的方法实现求值,最后返回到特定区域内。 图3 求子串长度流程图3.比较部分设计:通过对键盘输入的两个字符串的重新保存,把他们调用给类内的比较方法,通过对他们的比较,然后再返回比较的结果,相等或者是较大的字符串。 图4 两个子串比较流程图4.位置部分设计:通过对键盘输入字符串的保存,先把原字符串转换成数组类型的,调用类内的查找方法,把要查找的字符和元字符串一一比较,返回字符的下标值。 图5 求字符位置流程图5.替换部分设计:通过对键盘输入字符串的保存,把原字符串转换成数组类型的,把要替换的字符和要替换成的字符同原串共同调用类内的方法实现替换的功能,最后把替换过后的串输出到指定的区域。 图6 替换字符流程图6.提取部分设计:通过对键盘输入的字符串的获取,先把原串转换成数组类型的,再把所要截取子串的开头位置和结束位置同原串调用类内的提取方法实现对某个指定子串的提取,最后把提取出的子串显示出来。 图 7 提取子串流程图 7.转换部分设计:通过对键盘输入的字符串的获取(输入的字符串既有大写的也有小写的),然后调用类内的转换方法实现对给个字符的转换,把大写转换成小写,把小写转换成大写,最后把得到的串显示出来。 图 8 大小写转换流程图二、详细设计1.主函数的设计:实现了窗体,弄成了可视化,设置了背景颜色、大小,调用画布类public class MyFrame extends JFramepublic MyFrame() setSize(1024, 768);setLayout(null);ContentPanel panel = new ContentPanel();panel.setSize(1024, 768);panel.setBackground(Color.white);add(panel);setVisible(true);public static void main(String args) new MyFrame()2.画布的设计:设定了布局,添加各个功能的类public class ContentPanel extends JPanel public ContentPanel() setLayout(new GridLayout(7,1);add(new LianJie();add(new ChangDu(); add(new WeiZhi();add(new BiJiao(); add(new TiQu();add(new ZhuanHuan();add(new TiHuan();3.连接字符串的设计:定义按钮与文本框,还有读取流方法,写的方法,还有鼠标监听器对连接的操作,子串1和2是通过读取流方法把已经写好的数据读入到文本框中/读流的实现public static String inRead(String str) throws IOExceptionString str1=null;FileReader fileReader1=null;try fileReader1=new FileReader(str);char chuf=new char32;int hasRead=0;while(hasRead=fileReader1.read(chuf)0)str1=new String(chuf,0,hasRead); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();finallyif(fileReader1!=null) fileReader1.close();return str1;/写流的实现public static String outWriter(FileWriter fileWriter1) throws IOExceptionString str2=null;try fileWriter1 = new FileWriter(s1.txt);fileWriter1.write(str1); catch (Exception e) / TODO: handle exceptionfinallyif(fileWriter1!=null) fileWriter1.close();return str2;public void myEvent() /鼠标监听器的实现stringButton.addMouseListener(new MouseListener()public void mousePressed(MouseEvent e)public void mouseReleased(MouseEvent e)public void mouseEntered(MouseEvent e)public void mouseExited(MouseEvent e)public void mouseClicked(MouseEvent e)try stringText1.setText(inRead(s1.txt); catch (IOException e1) / TODO Auto-generated catch blocke1.printStackTrace();try stringText2.setText(inRead(s2.txt); catch (IOException e1) / TODO Auto-generated catch blocke1.printStackTrace();try outputText.setText(inRead(s1.txt)+inRead(s2.txt); /把子串1和2连起来 catch (IOException e1) / TODO Auto-generated catch blocke1.printStackTrace(););4.求字符串长度的设计:获取字符串后求其的长度public void init()stringButton1 =new JButton(请输入一个字符串);stringText = new JTextField(15);stringButton2 = new JButton(该字符串的长度为);outputText = new JTextField(10);JLabel lable = new JLabel();add(stringButton1);add(stringText);add(stringButton2);add(outputText);myEvent();/鼠标监听器的实现public void mouseClicked(MouseEvent e) String str = stringText.getText();Integer length = str.length();outputText.setText(length.toString();5.字符串比较的设计:获取两个字串后,通过调用比较方法实现 /比较方法public static String compareString(String str1,String str2) if(str1.length()str2.length() /String a = 比较大的串是+str1;return str1; else if(str1.length()str2.length() /String b = 比较大的串是+str2;return str2;else return 相等; /鼠标监听器的实现public void mouseClicked(MouseEvent e) String str3 = stringText1.getText();String str4 = stringText2.getText();stringText3.setText(compareString(str3, str4);6.字符替换的设计:调用tiHuan方法实现字符的替换/*public static String tiHuan(String str1,char chr1,char chr2)String str2;char ch1=str1.toCharArray();for(int i=0,j=0;istr1.length()|bbstr1.length()stringText4.setText(输入错误);else stringText4.setText(str1.substring(aa,bb);/截取串的操作 8.字符位置的设计:通过调用weiZhi方法返回下标值/返回下标值得实现public static int weiZhi(String a,String b)char aaa=b.charAt(0);int k=0;char c =a.toCharArray();for(int i=0;ic.length;i+)if(aaa=ci)k=i; return k;/鼠标监听器的public void mouseClicked(MouseEvent e) String str1 = stringText1.getText();String b=charText2.getText();String ad=该字母的位置为+weiZhi(str1, b); outputText.setText(ad);9.大小写转换的设计:通过调用convertString方法转换每个字符public static String convertString(String str)String upStr=str.toUpperCase();String lowStr=str.toLowerCase();StringBuffer buf=new StringBuffer();for(int i=0;istr.length();i+)if(str.charAt(i)=upStr.charAt(i)buf.append(lowStr.charAt(i);else buf.append(upStr.charAt(i);return buf.toString();三、系统测试1.测试方案 系统测试(System Test, ST)是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。 系统测试的目的是对最终软件系统进行全面的测试,确保最终软件系统满足产品需求并且遵循系统设计。 系统测试过程域是SPP模型的重要组成部分。本规范阐述了系统测试的规程,该规程的“目标”、“角色与职责”、“启动准则”、“输入”、“主要步骤”、“输出”、“完成准则”和“度量”均已定义。 由于系统测试的目的是验证最终软件系统满足产品需求并且遵循系统设计,所以当产品需求和系统设计文档完成之后,系统测试小组就可以提前开始制定测试计划和设计测试用例,而不必等到“实现与测试”阶段结束。这样可以提高系统测试的效率。 系统测试过程中发现的所有缺陷必须用统一的缺陷管理工具来管理,开发人员应当及时消除缺陷(改错)。 项目经理设法组建富有成效的系统测试小组。系统测试小组的成员主要来源于: 机构独立的测试小组(如果存在的话)。 邀请其它项目的开发人员参与系统测试。 本项目的部分开发人员。 机构的质量保证人员。 系统测试小组应当根据项目的特征确定测试内容。一般地,系统测试的主要内容包括: 功能测试。即测试软件系统的功能是否正确,其依据是需求文档,如产品需求规格说明书。由于正确性是软件最重要的质量因素,所以功能测试必不可少。 健壮性测试。即测试软件系统在异常情况下能否正常运行的能力。健壮性有两层含义:一是容错能力,二是恢复能力。 性能测试。即测试软件系统处理事务的速度,一是为了检验性能是否符合需求,二是为了得到某些性能数据供人们参考(例如用于宣传)。 用户界面测试。重点是测试软件系统的易用性和视觉效果等。 安全性(security)测试。是指测试软件系统防止非法入侵的能力。“安全”是相对而言的,一般地,如果黑客为非法入侵花费的代价(考虑时间、费用、危险等因素)高于得到的好处,那么这样的系统可以认为是安全的。 安装与反安装测试。2.测试用例及结果 1.对于字符串的连接,用已经建好的文档输入,s1中写着“I am a student.”,s2中写着“And I like studying!”,点击按钮后,测试结果结果为:2. 对于求字符串的长度,随便输入一个字符串“asfsaldj”,点击长度按钮后,测试结果为:3. 对于查找一个字符的位置来说,输入一个字符串“asdfgh”,查找的字符为f,测试结果为:4. 对于比较两个字符串的大小,测试用例为“asdfg”,“axdfgh”,测试结果为:5. 对于从一个字符串中截取一个子串,测试用例为“asdfghjkl”,起始位置为3,结束位置为7,测试结果为:6. 对于一个字符串大小写的转换,测试用例为“aaaKKK”,测试结果为:7. 对于替换一个字符

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论