083411127李蕊岗.docx
- 文档编号:6909060
- 上传时间:2023-01-12
- 格式:DOCX
- 页数:18
- 大小:439.69KB
083411127李蕊岗.docx
《083411127李蕊岗.docx》由会员分享,可在线阅读,更多相关《083411127李蕊岗.docx(18页珍藏版)》请在冰豆网上搜索。
083411127李蕊岗
河南城建学院
《面向对象程序设计》课程设计报告书
设计题目:
字符串测试系统
目录
第1章选题1
1.1题目背景1
1.2系统实现的具体分工1
1.2.1标题1
1.3开发环境1
第2章设计内容2
2.1实现功能2
2.2概要设计(涉及类的框图)2
2.3界面设计2
第3章系统实现4
3.1涉及知识点4
3.2系统运行(主要运行界面抓图)4
3.3源程序清单(关键代码)8
第4章结束语17
第1章选题
1.1题目背景
随着人们生活水平的提高,计算机发展异常迅速。
如今,计算机已经深入到我们社会的各个领域,计算机的使用也已不再局限于科学计算,它已进入人类社会的各个领域并发挥着越来越重要的作用。
通过计算机对各类信息的管理已经成为一种高效、快捷的方式。
本课程设计就是要求完成一个字符串类的设计,使所设计出的字符串类有包括加法、复制、查找、交换等7大功能。
1.2系统实现的具体分工
系统仅设string类以及各种调用函数,其功能是通过设置string的成员函数,然后通过函数调用来实现,用户在选择编号来实现对应的功能,main()函数实现对程序主界面的引导。
我是此次字符串测试系统课程设计的组长,因此我根据他们的特长进行了分工,其中刘强主要设计前两个功能,杨刚主要负责字符串查找与字符串交换,王金涛负责子串的求取与课程设计报告书的设计,而我主要负责字符串的比较与字符串长度两个功能的实现以及主函数的构建,我们的设计突出在函数调用方面,因此在一周的设计时间内我们主要进行函数调用的复习。
1.2.1标题
字符串类的设计
1.3开发环境
VisualC++6.0
机型:
方正电脑
处理器名称:
Intel(R)Core(TM)2DuoCPUE7200@2.53GHz
硬盘驱动器:
WDCWD1600AAJS-22WAAO
系统内存:
金士顿内存2GB
显示卡:
NVIDIAGeFORCE9400GT
显示器:
方正科技FG981-W9
第2章设计内容
2.1实现功能
我们此次做的字符串类课程设计将要完成以下功能:
1字符串加法;2.字符串复制;3.字符串查找;4.字符串交换;5.求子串6.字符串长度;7.字符串比较大小。
2.2概要设计(涉及类的框图)
2.3界面设计
界面设计在工作流程上分为结构设计、交互设计、视觉设计三个部分。
结构设计StructureDesign
结构设计也称概念设计(ConceptualDesign),是界面设计的骨架。
该字符串操作系统运行时界面上的目录体系和词语定义易于用户理解和操作,例如主界面的目录体系包括1字符串的加法、2字符串的复制、3字符串的查找、4字符串的交换、5求子串、6字符串的比较、7字符串的长度。
其中没实现一个功能,都会自动提示使用者是否需要退出系统,如果选择y就会退出系统,若选择n就可以继续使用。
交互设计InteractiveDesign
交互设计的目的是使产品让用户能简单使用。
任何产品功能的实现都是通过人和机器的交互来完成的。
该字符串操作系统中包含1)清楚的错误提示,误操作后,系统提供有针对性的提示。
例如输入功能选项错误时,系统会给出相应的提示,以指导读者进行正确的操作。
2)使用用户的语言,而非技术的语言。
3)方便退出。
人的因素被作为设计的核心体现出来。
视觉设计VisualDesign
该管理系统界面清晰明了,在结构设计的基础上,参照目标群体的心理模型和任务达成进行了视觉设计。
第3章系统实现
3.1涉及知识点
类封装、面向对象程序设计、数组的应用、循环语句的使用、过程化设计的思想等
3.2系统运行(主要运行界面抓图)
主界面
1.加法:
2.复制:
3.查找:
4.字符串交换:
5.求字符串:
6.字符串的长度:
7.字符串大小比较:
8.退出:
3.3源程序清单(关键代码)
#include
constintN=200;
intn,flag=0;
classstring
{private:
charstr[N];
public:
string(char*p){copy(str,p);}//字符串的构造
string(){};
voidcopy(char*s1,char*s2);
voidcopy(char*s);
voidstr_set(){cin>>str;}//字符串的输入
voidstr_out(){cout< voidappend(char*s); voidword_str(char*s,intn1,intn2); voidswap(char*s1,char*s2); intlength(); voidStrcmp(); intlength(chars[]); intfind(chars); }; voidtishi() {charyorn; cout<<"\n是否退出系统[Y/N]: "; cin>>yorn; cout< if(yorn=='y'||yorn=='Y')flag=1; else if(yorn=='n'||yorn=='N'){flag=0;cout<<"请再次输入功能序号\n";} else {flag=0;cout<<"输入有误,请重新输入"< } intstring: : length()//字符串长度 {inti=0; while(str[i++]! ='\0'); returni-1; } intstring: : length(chars[])//字符串长度 {inti; for(i=0;i<200;i++) { if(s[i]=='\0') { returni; } } } voidstring: : Strcmp()//比较字符串大小 { chars1[N];//定义长度为200的一维字符数组 chars2[N]; cout<<"你选择测试的功能是比较大小\n"; cout<<"请输入一串字符串字符串1: "< cin>>s1; cout<<"请输入另一串字符串字符串2: "< cin>>s2; char*p1=s1; char*p2=s2; cout<<"输出两个字符串大小的比较结果: "< for(;*p1! ='\0'||*p2! ='\0';++p1,++p2){ if((*p1-*p2)<0){ cout<<"字符串1小于字符串2"< break;} elseif((*p1-*p2)>0){ cout<<"字符串1大于于字符串2"< break;} } if(*p1=='\0'&&*p2=='\0') cout<<"两个字符串大小相等! "< } intstring: : find(chars)//字符串查找 {intk=length(); for(inti=0;i if(str[i]==s) returni; return-1; } voidstring: : swap(char*s1,char*s2)//字符串交换 {copy(str,s1); copy(s1,s2); copy(s2,str); } voidstring: : copy(char*s1,char*s2)//字符串复制 {inti=0; while(s2[i]! ='\0') {s1[i]=s2[i]; i++; } s1[i]='\0'; } voidstring: : copy(char*s)//字符串复制~ { inti=0; while(str[i]! ='\0') {s[i]=str[i]; i++; } s[i]='\0'; } voidstring: : append(char*s)//加法 {inti=0,k=length(); while(s[i]! ='\0') {str[k]=s[i]; k++;i++; } str[k]='\0'; } voidstring: : word_str(char*s,intn1,intn2)//求子串 {inti,k=0; for(i=n1-1;i {str[k]=s[i]; k++; } str[k]='\0'; }//功能列表 voidmenu() {cout<<"\n*************欢迎使用四人组字符串测试系统***********\n"; cout<<"下面是功能选择菜单"< cout<<"**************************\n"; cout<<"1)字符串加法*\n"; cout<<"2)字符串复制*\n"; cout<<"*3)字符串查找*\n"; cout<<"*4)字符串交换*\n"; cout<<"*5)求子串*\n"; cout<<"*6)字符串的长度*\n"; cout<<"*7)字符串比较大小*\n"; cout<<"**************************\n"; cout<<"请你输入测试相应功能的序号: "< } voidcs1()//测试功能1: 加法 {chars1[N]; strings; cout<<"你选择测试的功能是加法\n"; cout<<"请你随意输入一串字符并以回车结束: \n"; s.str_set(); cout<<"请你输入一串你想连接的字符并以回车结束: \n"; cin>>s1; s.append(s1); cout<<"连接后的新字符串为: \n"; s.str_out(); tishi(); } voidcs2()//测试功能2: 复制 {strings; chars1[N]; cout<<"你选择测试的功能是复制\n"; cout<<"请你随意输入一串字符以回车结束\n"; cout<<"你输入的字符串: \n"; s.str_set(); cout<<"复制的字符串为: \n"; s.copy(s1); cout< tishi(); } voidcs3()//测试功能3: 查找 {strings; chars1[N];chars3; cout<<"你选择测试的功能是查找\n"; cout<<"请输入一串字符并以回车结束: \n"; cin>>s1; s=s1; cout<<"请输入你要查找的字符并以回车结束: \n"; cin>>s3; if(s.find(s3)! =-1) cout<<"你所查字符下标为: "< elsecout<<"没有找到你要查找的字符! \n"; tishi(); } voidcs4()//测试功能4: 交换 {strings; chars1[N],s2[N]; cout<<"你选择测试的功能是交换\n"; cout<<"请输入第一个字符串s1: \n"; cin>>s1; cout<<"请输入第二个字符串s2: \n"; cin>>s2; s.swap(s1,s2); cout<<"交换结果为: \n"; cout<<"s1="< cout<<"s2="< tishi(); } voidcs5()//测试功能5: 求子串 {strings; intn1,n2; chars1[N]; cout<<"你选择测试的功能是求子串\n"; cout<<"请输入母串并以回车结束: \n"; cin>>s1; cout<<"请输入子串的始位置: \n"; cin>>n1; cout<<"请输入子串的末位置: \n"; cin>>n2;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 083411127 李蕊岗
![提示](https://static.bdocx.com/images/bang_tan.gif)