教学设备管理c++程序.docx

上传人:b****6 文档编号:5373407 上传时间:2022-12-15 格式:DOCX 页数:21 大小:18.03KB
下载 相关 举报
教学设备管理c++程序.docx_第1页
第1页 / 共21页
教学设备管理c++程序.docx_第2页
第2页 / 共21页
教学设备管理c++程序.docx_第3页
第3页 / 共21页
教学设备管理c++程序.docx_第4页
第4页 / 共21页
教学设备管理c++程序.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

教学设备管理c++程序.docx

《教学设备管理c++程序.docx》由会员分享,可在线阅读,更多相关《教学设备管理c++程序.docx(21页珍藏版)》请在冰豆网上搜索。

教学设备管理c++程序.docx

教学设备管理c++程序

#include

#include

#include

#include

usingnamespacestd;

classDate

{

private:

intyear;

intmonth;

intday;

public:

Date(inty=0,intm=0,intd=0);

Date&operator=(Date&a);

voidfoutput(ofstream&fout);

voidoutput();

voidalloutput();

};

voidDate:

:

alloutput()

{

cout<

"<

"<

}

voidDate:

:

foutput(ofstream&fout)

{

fout<

}

Date:

:

Date(inty,intm,intd)

{

year=y;

month=m;

day=d;

}

Date&Date:

:

operator=(Date&a)

{

year=a.year;

month=a.month;

day=a.day;

return*this;

}

voidDate:

:

output()

{

cout<

}

classEquipment

{

private:

intnum;//设备编号

charname[20];//设备名称

charfactory[30];//生产厂家

Datedate;//购置日期

intamount;//台数

doubleprrice;//单价

charnotes[101];//备注

public:

Equipment(intnum_=0,char*name_=NULL,

intamount_=0,doubleprrice_=0);

Equipment&operator=(Equipment&a)

{

num=a.num;

strcpy(name,a.name);

strcpy(factory,a.factory);

date=a.date;

return*this;

}

voidgive(char*factory_,Datedate_,char*notes);

voidoutput();

voidalloutput();

intgetNum();

intgetAmount();

doublegetPrrice();

voidsetNum();

voidsetName();

voidsetFactory();

voidsetDate();

voidsetAmount();

voidsetPrrice();

voidsetNotes();

voidfoutput(ofstream&fout);

};

voidEquipment:

:

alloutput()

{

cout<

<

<

date.alloutput();

cout<<'\t'<

<<'\t'<

<<'\t'<

}

voidEquipment:

:

give(char*factory_,Datedate_,char*notes_)

{

strcpy(factory,factory_);

date=date_;

strcpy(notes,notes_);

}

Equipment:

:

Equipment(intnum_,char*name_,intamount_,doubleprrice_)

{

num=num_;

strcpy(name,name_);

amount=amount_;

prrice=prrice_;

strcpy(factory,"未设置");

strcpy(notes,"无");

}

voidEquipment:

:

output()

{

cout<<"1.设备编号:

"<

cout<<"2.设备名称:

"<

cout<<"3.生产厂家:

"<

cout<<"4.购置日期:

";date.output();

cout<<"5.台数:

"<

cout<<"6.单价:

"<

cout<<"7.备注:

"<

}

intEquipment:

:

getNum()

{

returnnum;

}

intEquipment:

:

getAmount()

{

returnamount;

}

doubleEquipment:

:

getPrrice()

{

returnprrice;

}

voidEquipment:

:

setNum()

{

cout<<"请输入设备编号:

";

cin>>num;

}

voidEquipment:

:

setName()

{

cout<<"请输入设备名称:

";

cin>>name;

}

voidEquipment:

:

setFactory()

{

cout<<"请输入生产厂家的名称:

";

cin>>factory;

}

voidEquipment:

:

setDate()

{

inty,m,d;

cout<<"请输入年、月、日,用空格隔开:

";

cin>>y>>m>>d;

Datea(y,m,d);

date=a;

}

voidEquipment:

:

setAmount()

{

cout<<"请输入设备台数:

";

cin>>amount;

}

voidEquipment:

:

setPrrice()

{

cout<<"请输入设备单价:

";

cin>>prrice;

}

voidEquipment:

:

setNotes()

{

cout<<"请输入备注内容:

";

cin>>notes;

}

voidEquipment:

:

foutput(ofstream&fout)

{

fout<

fout<

fout<

date.foutput(fout);

fout<

fout<

fout<

}

classList

{

private:

intn,capacity;

Equipment**elem;

public:

List();

~List();

booladd();//添加

boolfind();//查询

voidmodify();//修改

boolSave();//设备保存

boolRead();//读取

voidDelete();//删除设备记录

voidRecover();//恢复被删除的记录

voidStatistic();//统计

};

List:

:

List()

{

n=0;

capacity=1000;

elem=newEquipment*[capacity];

for(inti=0;i

}

List:

:

~List()

{

for(inti=0;i

{

delete[]elem[i];

elem[i]=NULL;

}

if(elem)delete[]elem;

elem=NULL;

}

boolList:

:

add()

{

if(n

{

intnum_;

charname_[20];

intamount_;

doubleprrice_;

cout<<"请输入设备编号:

";

cin>>num_;

cout<<"请输入设备名称:

";

cin>>name_;

cout<<"请输入购置台数:

";

cin>>amount_;

cout<<"请输入设备单价:

";

cin>>prrice_;

elem[n]=newEquipment(num_,name_,amount_,prrice_);

n++;

returntrue;

}

returnfalse;

}

boolList:

:

find()

{

intnum_;

cout<<"请输入您需要查找的设备编号:

";

cin>>num_;

for(inti=0;i

{

if(num_==elem[i]->getNum())

{

cout<<"查找成功!

设备信息如下:

"<

elem[i]->output();

returntrue;

}

}

cout<<"查找失败!

无此设备信息。

"<

returnfalse;

}

voidList:

:

modify()

{

system("cls");

if(n>0)

{

inti,num_;

boolok=false;

cout<<"现有的设备编号如下:

"<

for(i=0;i

{

cout<getNum()<<"";

}

cout<

cout<<"请输入您需要修改的设备编号:

";

cin>>num_;

for(i=0;i

{

if(elem[i]->getNum()==num_)

{

ok=true;

intchoice=1;

do

{

system("cls");

elem[i]->output();

cout<<"8.退出修改。

"<

cout<<"请输入您需要修改的选项:

";

cin>>choice;

if(choice<1||choice>8)

{

cout<<"输入错误,请重新输入!

"<

choice=1;

continue;

}

switch(choice)

{

case1:

elem[i]->setNum();

break;

case2:

elem[i]->setName();

break;

case3:

elem[i]->setFactory();

break;

case4:

elem[i]->setDate();

break;

case5:

elem[i]->setAmount();

break;

case6:

elem[i]->setPrrice();

break;

case7:

elem[i]->setNotes();

break;

case8:

break;

}

}while(choice!

=8);

}

}

if(!

ok)cout<<"您的输入有误!

"<

}

elsecout<<"现无任何设备!

"<

}

boolList:

:

Save()

{

ofstreamfout;

fout.open("save.txt");

fout.put(0);//清楚txt文档的数据

fout.seekp(-1,ios:

:

end);//在txt文档中光标退格

if(fout.fail())

{

cout<<"找不到文件,保存失败!

"<

returnfalse;

}

else

{

for(inti=0;i

{

elem[i]->foutput(fout);

}

}

cout<<"保存成功!

"<

fout.close();

returntrue;

}

boolList:

:

Read()

{

intsize;

ifstreamfin;

fin.open("save.txt");

streampospos=fin.tellg();

fin.seekg(0,ios:

:

end);

size=fin.tellg();

fin.seekg(pos);

if(fin.fail())

{

cout<<"找不到文件,读取失败!

"<

returnfalse;

}

else

{

intnum_,amount_,y,m,d;

doubleprrice_;

charname_[20],factory_[30],notes_[101];

n=0;

while(size!

=1)

{

fin>>num_;

fin>>name_;

fin>>factory_;

fin>>y>>m>>d;

if(fin.eof())break;

Datedate_(y,m,d);

fin>>amount_;

fin>>prrice_;

fin>>notes_;

elem[n]=newEquipment(num_,name_,amount_,prrice_);

elem[n]->give(factory_,date_,notes_);

n++;

}

}

cout<<"读取成功!

"<

fin.close();

returntrue;

}

voidList:

:

Delete()

{

system("cls");

if(n>0)

{

inti,num_;

boolok=false;

cout<<"现有的设备编号如下:

"<

for(i=0;i

{

cout<getNum()<<"";

}

cout<

cout<<"请选择您要删除的设备编号:

";

cin>>num_;

for(i=0;i

{

if(elem[i]->getNum()==num_)

{

ok=true;

system("cls");

elem[i]->output();

cout<<"您确定要删除此设备?

(YorN)"<

charstr;

do

{

cin>>str;

if(str!

='Y'&&str!

='N')

{

cout<<"输入错误,请重新输入:

";

}

}while(str!

='Y'&&str!

='N');

if(str=='Y')

{

ofstreamfout;

fout.open("recover.txt");

fout.app;

elem[i]->foutput(fout);

fout.close();

if(i==n-1)

{

delete[]elem[i];

elem[i]=NULL;

}

else

{

Equipment*tem;

tem=elem[i];

elem[i]=elem[n-1];

elem[n-1]=tem;

delete[]elem[n-1];

elem[n-1]=NULL;

}

n--;

cout<<"删除成功!

"<

}

elsecout<<"删除失败!

"<

}

}

if(!

ok)cout<<"您的输入有误!

"<

}

elsecout<<"现无任何设备!

"<

}

voidList:

:

Recover()

{

intsize;

ifstreamfin;

fin.open("recover.txt");

streampospos=fin.tellg();

fin.seekg(0,ios:

:

end);

size=fin.tellg();

fin.seekg(pos);

if(fin.fail())

{

cout<<"找不到文件,恢复失败!

"<

}

else

{

intnum_,amount_,y,m,d;

doubleprrice_;

charname_[20],factory_[30],notes_[101];

while(!

fin.eof()&&size!

=1)

{

fin>>num_;

fin>>name_;

fin>>factory_;

fin>>y>>m>>d;

if(fin.eof())break;

Datedate_(y,m,d);

fin>>amount_;

fin>>prrice_;

fin>>notes_;

elem[n]=newEquipment(num_,name_,amount_,prrice_);

elem[n]->give(factory_,date_,notes_);

n++;

}

cout<<"恢复成功!

"<

fin.close();

ofstreamfout;

fout.open("recover.txt");

fout.put(0);

fout.seekp(-1,ios:

:

end);

fout.close();

}

}

voidList:

:

Statistic()

{

system("cls");

inti,j,n_200=0,n200_800=0,n800_=0;

doublep_200=0,p200_800=0,p800_=0;

Equipment*tem;

for(i=0;i

{

for(j=0;j

{

if(elem[j]->getPrrice()>elem[j+1]->getPrrice())

{

tem=elem[j];

elem[j]=elem[j+1];

elem[j+1]=tem;

}

}

}

cout<<"编号"<<'\t'

<<"名称"<<'\t'

<<"厂家"<<'\t'

<<"日期"<<"\t\t"

<<"数量"<<'\t'

<<"单价"<<'\t'

<<"备注"<

for(i=0;i

{

if(elem[i]->getPrrice()<200)

{

n_200+=elem[i]->getAmount();

p_200+=elem[i]->getAmount()*elem[i]->getPrrice();

}

elseif(elem[i]->getPrrice()<=800)

{

n200_800+=elem[i]->getAmount();

p200_800+=elem[i]->getAmount()*elem[i]->getPrrice();

}

else

{

n800_+=elem[i]->getAmount();

p800_+=elem[i]->getAmount()*elem[i]->getPrrice();

}

elem[i]->alloutput();

}

cout<

cout<<"单价在:

200元以下的设备总台数及总金额为:

"

<<'\t'<

cout<<"单价在:

200~800元的设备总台数及总金额为:

"

<<'\t'<

cout<<"单价在:

800元以上的设备总台数及总金额为:

"

<<'\t'<

cout<<"累计所有设备的总台数及总金额为:

"

<<"\t\t"<

}

intmain()

{

Listlist;

intn=0;

intchoice=1;

system("color1C");

do

{

cout<<"\t\t\t\t教学设备管理系统"<

cout<<"\t\t================================================="<

cout<<"\t\t#\t\t1.添加设备内容。

\t\t#"<

cout<<"\t\t#\t\t2.查找设备内容。

\t\t#"<

cout<<"\t\t#\t\t3.修改设备内容。

\t\t#"<

cout<<"\t\t#\t\t4.保存设备记录。

\t\t#"<

cout<<"\t\t#\t\t5.读取设备记录。

\t\t#"<

cout<<"\t\t#\t\t6.删除设备内容。

\t\t#"<

cout<<"\t\t#\t\t7.恢复删除记录。

\t\t#"<

cout<<"\t\t#\t\t8.统计设备内容。

\t\t#"<

cout<<"\t\t#\t\t9.退出管理系统。

\t\t#"<

cout<<"\t\t================================================="<

cout<<"请输入您的操作:

";

cin>>choice;

if(choi

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1