- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C代码设备信息管理系统64047906
#include iostream
#include fstream
#include cstring
#include cstdlib
#include conio.h
using namespace std;
struct equipment{
int id;//设备编号
char name[25];//名称
char model[25];//型号
int price;//价格
char date[10];//购买日期
};
//动态数组类模板///////////////////////////////////////
template typename T
class Array
{
private:
T * pointer;
int size;
int capacity;
void capacity_increase();
public:
Array():pointer(0),size(0),capacity(0){};
explicit Array(int );
Array(const Array );
~Array(){delete [] pointer;};
int length(){return size;}; //长度
const ArrayT operator = (const ArrayT );
T operator [] (int n)
{
if(n=size || n0)
{cerr数组中无该元素endl;}
{return pointer[n] ; }
};
T * operator + (int n)
{ return pointer+n; };
void insert(int n , T pT); //在第n(n从0开始计)个元素前面插入pT
void erase(int n); //删除第n个元素
void push_back(T); //从后插入
void print()
{ //打印
for(int i=0;isize;i++)
{coutpointer[i]\t;}
coutendl;
};
};
template typename T
ArrayT::Array(int n)
{
pointer = new T[capacity=(size=n)*2];
}
template typename T
ArrayT::Array(const ArrayT rh)
{
pointer = new T[rh.capacity];
size = rh.size;
for(int i=0;irh.size;i++){
pointer[i] = rh.pointer[i]; //成员操做符的优先级高于中括号操做符
}
}
template typename T
const ArrayT ArrayT::operator =(const ArrayT rh)
{
delete [] pointer;
size = rh.size;
capacity = rh.capacity;
pointer = new T[rh.capacity];
for(int i=0;irh.size;i++){
pointer[i] = rh.pointer[i];
}
return * this;
}
template typename T
void ArrayT::capacity_increase()
{
if(capacity==0){
capacity=1;
}
T * temp = new T[capacity *= 2];
for(int i=0;isize;i++){
temp[i] = pointer[i];
}
delete [] pointer;
pointer = temp;
}
template typename T
void ArrayT::push_back(T pT)
{
if(size==capacity){
capacity_increase();
}
pointer[size++] = pT;
}
template typename T
void ArrayT::insert(int
文档评论(0)