实现了顺序表的基本操作
代码均为原创,转载请注明源地址blog.csdn.net/u012350104
欢迎留言交流
实现的功能:
=====开始=====
==增加(1)==
==删除(2)==
==修改(3)==
==查询(4)==
==退出(0)==
============
==============增加==============
==输入一个元素,到顺序表末尾-(1)==
==输入一个元素,到第n个位置--(2)==
==插入三个预设元素到表末尾---(3)==
============返回(0)============
================================
==============删除==============
==删除所有的元素-----------(1)==
==删除第n个元素------------(2)==
==查找元素,并删除----------(3)==
============返回(0)============
================================
==============修改==============
==输入一个元素,替换第n个元素(1)==
==把第n1个元素和第n2个交换--(2)==
============返回(0)============
================================
==============查询==============
==得到存储的元素个数--------(1)==
==得到顺序表容量-----------(2)==
==输出第n个元素的细节-------(3)==
==输出所有的元素细节--------(4)==
==通过某个元素细节找到元素位置(5)==
==查找元素并输出------------(6)==
============返回(0)============
================================
多文件编程,层次清晰
各个步骤中包含详细的验证,拒绝bug
下面是主函数及两个头文件
//
// main.cpp
// MySeqList
//
// Created by Fred韩 on 15/8/29.
// Copyright (c) 2015年 Fred韩. All rights reserved.
//
#include "SeqList.h"
#include <iostream>
#include <string>
using namespace std;
int main()
{
cout<<"Copyright (c) 2015年 Fred韩. All rights reserved."<<endl;
cout<<"实现了对顺序表的增删改查等操作"<<endl;
cout<<endl;
SeqList list;
list.startControlLoop();
cout<<"程序已退出,感谢使用。"<<endl;
cout<<"Copyright (c) 2015年 Fred韩. All rights reserved."<<endl;
return 0;
}
//
// ElemType.h
// MySeqList
//
// Created by Fred韩 on 15/8/29.
// Copyright (c) 2015年 Fred韩. All rights reserved.
//
#ifndef __ELEMTYPE_H__
#define __ELEMTYPE_H__
#include <iostream>
#include <string>
using namespace std;
class ElemType
{
protected:
string m_flight;//航班号
string m_type;//飞机型号
string m_begin;//起飞时间
string m_end;//到达时间
string m_from;//出发地
string m_to;//目的地
public:
ElemType();//构造函数,不进行任何操作,创建数组时,系统会自动调用无参数的构造函数,但因重载过下面的构造函数,系统默认的构造函数失效,需要手动写出这个无参数的构造函数才行
ElemType(string flight,string type,string begin,string end,string from,string to);//直接设置所有细节的构造函数
ElemType(const ElemType &element);//复制构造函数(应该是可以缺省的)
bool showDetail();//在控制台显示细节
bool setDetail(string flight,string type,string begin,string end,string from,string to);//设置所有细节
bool inputDetail();//在控制台输入细节
//对成员属性进行封装,set方法中包含合法性验证
string getFlight();
static bool isFlightRight(string flight);
bool setFlight(string flight);
string getType();
static bool isTypeRight(string type);
bool setType(string type);
string getBegin();
static bool isBeginRight(string begin);
bool setBegin(string begin);
string getEnd();
static bool isEndRight(string end);
bool setEnd(string end);
string getFrom();
static bool isFromRight(string from);
bool setFrom(string from);
string getTo();
static bool isToRight(string to);
bool setTo(string to);
string getTime();//通过起飞时间和降落时间计算出飞行时间长度(按飞行时间不超过24小时计算)
static bool isEqual(ElemType elem1,ElemType elem2);//判断两个ElemType类型的对象是否相同
};
#endif //__ELEMTYPE_H__ 1240
//__ELEMTYPE_H__
//
// SeqList.h
// MySeqList
//
// Created by Fred韩 on 15/8/29.
// Copyright (c) 2015年 Fred韩. All rights reserved.
//
#ifndef __SEQLIST_H__
#define __SEQLIST_H__
#include "ElemType.h"
#define MaxSize 100
class SeqList//顺序表
{
protected:
ElemType element[MaxSize];//存储元素用的数组
size_t length;//存储的元素个数
public:
SeqList();//构造函数,存储的元素个数设为0
bool setLength(size_t length);//设置已经存储的元素个数
bool addElement(ElemType element);//把某个元素添加到顺序表末尾
bool addElement(ElemType element , size_t n);//插入一个元素,使其成为第n个元素,其余元素后移
bool delElement();//删除所有的元素
bool delElement(size_t n);//删除第n个元素
bool delElement(string elementDetailType,string elementDetail);//通过某个元素细节找到元素,把这个元素删除
bool replaceElement(ElemType element , size_t n);//使用一个元素,替换掉第n个元素
bool swapElement(size_t n1 , size_t n2);//把第n1个元素和第n2个元素交换
ElemType* getElement();//得到数组头的指针
ElemType* getElement(size_t n);//得到第n个元素的指针
size_t getLength();//得到存储的元素个数
size_t getMaxSize();//得到顺序表容量
bool showElementDetail();//输出所有的元素细节
bool showElementDetail(size_t n);//输出第n个元素的细节
bool showElementDetail(string elementDetailType,string elementDetail);//通过某个元素细节找到元素,输出元素所有细节
size_t findElement(string elementDetailType,string elementDetail);//通过某个元素细节找到元素位置
static int inputAInt(int min = 0,int max = 9,int defaultValue = -1);//从键盘读取,限制为一个min到max间的整数,非法情况返回defaultValue
void startControlLoop();//打开控制界面
~SeqList();//析构函数
};
#endif //__SEQLIST_H__
看过头文件,相信你已经对我实现的功能有所了解
五个文件的下载地址:http://download.csdn.net/detail/u012350104/9143127
另外我制作了讲解函数关系的PPT,欢迎交流
ppt下载地址http://download.csdn.net/detail/u012350104/9143143