VC++课程实践第9题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
江苏科技大学
课程实践报告
设计题目: 计算机程序设计实践(VC++)
设计时间: 2016. 2.22 至2016. 2.28 学院: 能源与动力工程学院
专业班级: 14级建环2班
学生姓名: 姜宇阳学号1442105220 指导老师: 於跃成
(备注:红色部分根据自己的实际情况修改)
2016年2月23日
一、实践任务
9.定义一个字符串类CString,并设计一个算法对该串中各个不同字符出现的频率进行统计。
二、详细设计
1.累的描述与定义
(1)私有数据成员。
①char *str:指向要统计的字符串。
②char(*p)[2]:动态分配二维空间,用以存放str所指字符串中出现的字符及其出现的次数(次数在存放时,用该数字对应的ASCII编码值存放;在输出次数时,输出该ASCII字符对应的ASCII编码值即可)。
③int size:存放字符串中出现的所有不同的字符的个数。
(2)公有成员函数。
①CString(char*s)
②void Count()
③void Show()
④~CString()
2.主要函数设计
在主程序中定义字符串char s[]=“abdabcdesffffd”。定义一个CString类对象test,用s以初始化test,完成对该类的测试。
三、源程序
#include
#include
class cstring{
char*str;
char (*p)[2];
int size;
public:
cstring(char *s);
void count();
void show();
~cstring();
};
cstring::cstring(char*s)
{
p=0;
size=0;
str=s;
}
void cstring::count()
{
p=new char[strlen(str)][2];
char n;
char *p1,*p2;
for(int i=0;str[i];i++)
{
n='\0';
p1=&str[i];
for(int m=0;str[m];m++)
{
p2=&str[m];
if(*p1==*p2)n++;
p2++;
}
p[i][0]=str[i];
p[i][1]=n;
}
}
void cstring::show()
{
for(int i=0;i { int m,x=1; for(m=0;m { if(p[m][0]==p[i][0]) { x=0; break; } } if(x==1)cout< } } cstring::~cstring() { delete []p; } void main() { char s[]="abdabcdesffffd"; cstring test(s); test.count(); test.show(); } 四、测试和运行