字符串测试系统课程设计_第1页
字符串测试系统课程设计_第2页
字符串测试系统课程设计_第3页
字符串测试系统课程设计_第4页
字符串测试系统课程设计_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、河南城建学院河南城建学院面向对象程序设计面向对象程序设计课程设计报告书课程设计报告书设 计 题 目:字符串测试系统指 导 老 师:学 号:姓 名:同 组 人 员:时 间: 2013 年 1 月 11 日1目 录第第 1 章章 选选 题题.11.1 题目背景.11.2 系统实现的具体分工.11.2.1 标题.11.3 开发环境.1第第 2 章章 设计内容设计内容.22.1 实现功能.22.2 概要设计(涉及类的框图).22.3 界面设计.2第第 3 章章 系统实现系统实现.43.1 涉及知识点.43.2 系统运行(主要运行界面抓图).43.3 源程序清单(关键代码).8第第 4 章章 结束语结束

2、语.171第第 1 章章 选选 题题1.1 题目背景随着人们生活水平的提高,计算机发展异常迅速。如今,计算机已经深入到我们社会的各个领域,计算机的使用也已不再局限于科学计算,它已进入人类社会的各个领域并发挥着越来越重要的作用。通过计算机对各类信息的管理已经成为一种高效、快捷的方式。本课程设计就是要求完成一个字符串类的设计,使所设计出的字符串类有包括加法、复制、查找、交换等7大功能。1.2 系统实现的具体分工系统仅设 string 类以及各种调用函数,其功能是通过设置 string 的成员函数,然后通过函数调用来实现,用户在选择编号来实现对应的功能,main() 函数实现对程序主界面的引导。此次

3、设计,我主要负责功能中的前两个:1 字符串加法 2 字符串复制。为了实现这两个功能,在网上和图书馆找了各种资料,其中在实现字符串加法时,我主要设置了 string 的成员函数 append 然后通过 scl()调用 append 成员函数来实现字符串的家加法,字符串的复制也是通过 csl2()来调用 string 的 find成员函数,这也是我们整个程序的宗旨之处,通过这次课程设计,让我有了很大的收获,特别是在函数调用方面。1.2.1 标题字符串类的设计1.3 开发环境visual c+ 6.0机型: 方正电脑 处理器名称:intel(r)core(tm)2 duo cpu e7200 2.5

4、3ghz 硬盘驱动器:wdc wd1600aajs-22waao 系统内存:金士顿内存 2gb 显示卡: nvidia geforce 9400 gt 显示器: 方正科技 fg981-w92第第 2 章章 设计内容设计内容2.1 实现功能我们此次做的字符串类课程设计将要完成以下功能:1 字符串加法;2.字符串复制;3.字符串查找 ;4.字符串交换 ;5.求子串 6.字符串长度;7.字符串比较大小。2.2 概要设计(涉及类的框图)字符串类的设计字符串加法字符串复制字符串查找求子串字符串比较大小字符串长度字符串交换2.3 界面设计界面设计在工作流程上分为结构设计、交互设计、视觉设计三个部分。3结构

5、设计 structure design结构设计也称概念设计 (conceptual design) ,是界面设计的骨架。该字符串操作系统运行时界面上的目录体系和词语定义易于用户理解和操作,例如主界面的目录体系包括 1 字符串的加法、2 字符串的复制、3 字符串的查找、4 字符串的交换、5 求子串、6 字符串的比较、7 字符串的长度。其中没实现一个功能,都会自动提示使用者是否需要退出系统,如果选择 y 就会退出系统,若选择 n 就可以继续使用。交互设计 interactive design 交互设计的目的是使产品让用户能简单使用。 任何产品功能的实现都是通过人和机器的交互来完成的。该字符串操作系

6、统中包含 1)清楚的错误提示,误操作后,系统提供有针对性的提示。例如输入功能选项错误时,系统会给出相应的提示,以指导读者进行正确的操作。2) 使用用户的语言,而非技术的语言。 3)方便退出。人的因素被作为设计的核心体现出来。视觉设计 visual design 该管理系统界面清晰明了,在结构设计的基础上,参照目标群体的心理模型和任务达成进行了视觉设计。 4第第 3 章章 系统实现系统实现3.1 涉及知识点类封装、面向对象程序设计、数组的应用、循环语句的使用、过程化设计的思想等3.2 系统运行(主要运行界面抓图) 主界面1.加法:52.复制: 3.查找:64.字符串交换:5.求字符串:76.字符

7、串的长度:7.字符串大小比较:88.退出:3.3 源程序清单(关键代码)#includeconst int n=200;9int n ,flag=0;class string private:char strn;public:string(char *p) copy(str,p); /字符串的构造string ();void copy(char *s1,char *s2);void copy(char *s);void str_set() cinstr; /字符串的输入void str_out()coutstrendl; /字符串的输出void append(char *s);void wor

8、d_str(char *s,int n1,int n2);void swap(char *s1,char *s2);int length (); void strcmp(); int length (char s);int find (char s);void tishi() char yorn; coutyorn; coutendl;if(yorn=y|yorn=y) flag=1;elseif(yorn=n|yorn=n)flag=0;cout请再次输入功能序号n;elseflag=0; cout输入有误,请重新输入endl; int string:length() /字符串长度 int

9、i=0;10while(stri+!=0);return i-1;int string:length(char s) /字符串长度 int i;for (i=0;i200;i+) if(si=0) return i; void string:strcmp() /比较字符串大小char s1n; /定义长度为 200 的一维字符数组char s2n;cout你选择测试的功能是比较大小n;cout请输入一串字符串字符串 1:s1; cout请输入另一串字符串字符串 2:s2;char *p1=s1;char *p2=s2;cout输出两个字符串大小的比较结果:endl; for(;*p1!=0|*

10、p2!=0;+p1,+p2) if(*p1-*p2)0)cout字符串 1 小于字符串 20)cout字符串 1 大于于字符串 2endl;break;11if(*p1=0&*p2=0)cout两个字符串大小相等!endl;int string:find (char s)/字符串查找 int k=length(); for(int i=0;ik;i+)if(stri=s)return i;return -1;void string:swap(char *s1,char *s2) /字符串交换 copy(str,s1); copy(s1,s2); copy(s2,str);void string

11、:copy(char *s1,char *s2)/字符串复制 int i=0;while(s2i!=0)s1i=s2i;i+;s1i=0;void string:copy(char *s)/字符串复制 int i=0;while(stri!=0)si=stri;i+;si=0;12void string:append(char *s)/加法 int i=0,k=length();while(si!=0)strk=si;k+; i+;strk=0;void string:word_str(char *s,int n1,int n2) /求子串 int i,k=0;for(i=n1-1;in2;i

12、+)strk=si;k+;strk=0; /功能列表void menu()coutn*欢迎使用四人组字符串测试系统*n;cout下面是功能选择菜单endl; cout* * * * * * * * * * * * * * * * * * * * * * * * * * n;cout 1)字符串加法 *n;cout 2)字符串复制 *n; cout* 3)字符串查找 *n;cout* 4)字符串交换 *n; cout* 5)求子串 *n;cout* 6 ) 字符串的长度 *n;cout* 7) 字符串比较大小 *n;cout* * * * * * * * * * * * * * * * * *

13、* * * * * * * *n;cout请你输入测试相应功能的序号:endl;void cs1() /测试功能 1:加法13 char s1n;string s;cout你选择测试的功能是加法n;cout请你随意输入一串字符并以回车结束:n;s.str_set();couts1;s.append(s1);cout连接后的新字符串为:n;s.str_out();tishi();void cs2()/测试功能 2:复制 string s;char s1n;cout你选择测试的功能是复制n;cout请你随意输入一串字符以回车结束n;cout你输入的字符串:n;s.str_set();cout复制的

14、字符串为:n;s.copy(s1);couts1endl;tishi();void cs3()/测试功能 3:查找 string s;char s1n;char s3;cout你选择测试的功能是查找n;couts1;s=s1;couts3;if(s.find(s3)!=-1)cout你所查字符下标为:s.find (s3)endl;else cout没有找到你要查找的字符!n;tishi();void cs4()/测试功能 4:交换 string s;char s1n,s2n;cout你选择测试的功能是交换n;couts1;couts2;s.swap(s1,s2);cout交换结果为:n;co

15、uts1=s1endl;couts2=s2endl;tishi();void cs5()/测试功能 5:求子串 string s;int n1,n2;char s1n;cout你选择测试的功能是求子串n;couts1;coutn1;coutn2;coutendl;15s.word_str(s1,n1,n2);cout所取子串为:;s.str_out();tishi();void cs6() string s;char s1n;int a;cout你选择的测试是求字符串的长度:n;couts1;a=s.length(s1);cout此字符串的长度为:naendl;tishi();void cs7

16、()string s;s.strcmp();tishi();void cs(char &n1) /开关 n=n1-0;switch(n)case 1: cs1();break;case 2: cs2();break;case 3: cs3();break;case 4: cs4();break;case 5: cs5();break;case 6: cs6();break; case 7:cs7();break;16default: cout你输入的功能序号有误,请重新输入!endl;int main() char n1;menu();while(1)if(flag) coutn1;cs(n1

17、);return 0;17第第 4 章章 结束语结束语这次课程设计历经一个星期左右,通过这一个星期的学习,发现了自己的很多不足,自己知识的很多漏洞,也有很多闻所未闻的东西,理解实践的能力急需提高。课程设计是培养学生综合运用所学知识、发现、提出分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程. 它为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生运用所学知识解决实际问题的能力。这次的课程设计也让我看到了团队的力量,我认为我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须

18、发扬团结协作的精神。刚开始的时候,大家就按照分配好了的任务进行,并且经常聚在一起讨论各个方案的可行性。在课程设计中只有一个人的知识是远远不够的,必须要结合每个人的知识,否则一个人的错误,就有可能导致整个工作失败。团结协作是我们成功的一项非常重要的保证。而这次设计也正好锻炼我们这一点,这也是非常宝贵的。 回顾起此次课程设计,至今我仍感慨颇多,起初在选题时,做出决定是非常困难的,若选择简单的题目,很有可能会很早就做完了,那样岂不是浪费了许多宝贵的时间;若选择比较难的题目,感觉自己的能力可能不够,不能完成课程设计,最后,在我们组的商量之下选了字符串测试系统这个课题。定下了我们的目标。接着我们都开始做

19、了,我们明确的分工任务,然后每个人都去完成自己的任务,对于不会的,不太清楚的我们都会在一起讨论,研究。通过本次课程设计,我深刻认识到了“理论联系实际”的这句话的重要性,我不但知道了以前不知道的理论知识,而且也巩固了以前的知识。最重要的是在实践中理解了书本上的知识,明白了学以致用的真谛。也明白老师为什么要求我们做好这个课程设计的原因。他是为了教会我们如何运用所学的知识去解决实际的问题,提高我们的动手能力。在整个设计到按各种功能输出以及调试过程中,我个人感觉调试部分是最难的,我们把运行错误和不能运行的部分一遍遍的修改直到达到预期的效果。 初拿到题目觉得很沮丧,虽然学了这么久的 c+语言,但还是觉得它很深奥,对它几乎是一无所知。如何着手?在接下来的时间里大家集思广益,在一起认真讨论,不甚理解的问题去查阅一些资料。然后写代码,运行调试虽然在这个过程中遇到了很

温馨提示

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

最新文档

评论

0/150

提交评论