前些阵子做了C++课程设计,在此将程序源码公布,以便同学之间交流
.
题目如下:1.编写函数bool syntaxCheck(const char* s),功能是检查字符串s中的{和}、
[和]、(和)是否匹配,即是否符合C语言的语法要求。
2.(5分) 不使用库函数,实现函数char*strStr(char* s, char* t),功能是在s
中查找t的第一次出现。若出现,返回出现的位置,否则返回0。
3. (5分)编写函数,实现对数组中是否存在某个元素的二分检索。
4. (5分)编写函数,实现对数组元素的快速排序。
5. (5分)定义一个类,以2个整数为数据成员,提供构造函数、数据成员的访问方
法和计算最大公约数和最小公倍数方法。
6.(5分) 根据下述描述创建一个时间类Time,具有h、m、s(时分、秒)属性,成
员访问方法和其它方法:
class Time
{ int h, m, s;
public:
Tmie(int hx = 0, int mx = 0, int sx = 0);
...; //成员访问方法
Time& increaseSecond(int s); //增加秒
Time& increaseMinute(int m); //增加分
Time& increaseHour(int h); //增加小时
bool equal(const Time&); //判定是否相等
void print(); //输出
};
7.(10分)设计一个字符串类,要求具有计算字符串长度、两个字符串大小比较、
两个字符串连接等功能。
细节要求:
(1)构造:可利用字符串对象,指针,整数,字符,浮点数构造一个字符串以及
拷贝构造对象;
(2)运算:提供字符串加法,关系运算(即比较字符串大小运算),赋值运算;
(3)转换:转换为C 语言字符串,字符串长度,大小写转换,删除字符串前后空
格,字符串与整数和浮点数转换等。
(4)输入输出:支持输入输出插入运算>>和<<。
8.(10分)设计一个能存放整数的一维向量(数组)类Vector,具有以下功能:
(1)数组的建立和输入输出。
(2)对向量的运算符+,-,+=,-=进行重载。
(3)一般操作。
细节要求:
构造:可利用向量对象和C的一维数组构造向量对象以及拷贝构造对象;
向量支持一般的数据类型
(3)运算:提供重新设置向量长度,向量加、减、乘(内积)运算以及拷贝构造
对象
(4)输入输出:支持输入输出插入运算>>和<<。
9.(10分)设计一个能存放整数的列表(链表)类List,具有以下功能:
(1)利用双向链表形成List类并可进行输入输出。
(2)对列表的运算符+,-,+=,-=进行重载。
(3)一般操作。
细节要求:
构造:可利用链表对象和C 的一维数组构造链表对象以及拷贝构造对象;
链表支持一般的数据类型
(3)运算:提供诸如添加、删除节点等操作
(4)输入输出:支持输入输出插入运算>>和<<。
10.(10分)定义一个学生类,使其具有学号、姓名(长度不定)、高数、外语和C++
程序设计三门课的成绩属性,以及各属性访问方法、求总成绩、求平均成绩、设置
和显示学生信息方法。此外,在main函数中以定义学生数组方法模拟一个班的学生
信息,利用独立定义函数方式给出常见情况的统计,如最高成绩、最低成绩、平均
成绩、学生信息列表等。
11.(30分)实现一个计算器类,支持加、减、乘、除等基本运算。
源代码下载:http://www.cppblog.com/Files/honker/CppClass.zip