1、教学设备管理c+程序#include #include #include #include using namespace std;class Dateprivate: int year; int month; int day;public: Date(int y = 0 , int m = 0 , int d = 0); Date & operator = (Date &a); void foutput(ofstream &fout); void output(); void alloutput();void Date:alloutput() coutyear:month:dayt;void
2、 Date:foutput(ofstream &fout) foutyear month dayendl;Date:Date(int y,int m,int d) year = y; month = m; day = d;Date & Date:operator = (Date &a) year = a.year; month = a.month; day = a.day; return *this;void Date:output() coutyear年month月day日endl;class Equipmentprivate: int num; /设备编号 char name20; /设备
3、名称 char factory30; /生产厂家 Date date; /购置日期 int amount; /台数 double prrice; /单价 char notes101; /备注public: Equipment(int num_ = 0 , char *name_ = NULL , int amount_ = 0, double prrice_ = 0); Equipment & operator = (Equipment &a) num = a.num; strcpy(name,a.name); strcpy(factory,a.factory); date = a.date;
4、 return *this; void give(char *factory_ , Date date_ , char *notes); void output(); void alloutput(); int getNum(); int getAmount(); double getPrrice(); void setNum(); void setName(); void setFactory(); void setDate(); void setAmount(); void setPrrice(); void setNotes(); void foutput(ofstream &fout)
5、;void Equipment:alloutput() coutnumt namet factoryt; date.alloutput(); couttamount tprrice tnotesendl;void Equipment:give(char *factory_ , Date date_ , char *notes_) strcpy(factory,factory_); date = date_; strcpy(notes,notes_);Equipment:Equipment(int num_, char *name_,int amount_, double prrice_) nu
6、m = num_; strcpy(name,name_); amount = amount_; prrice = prrice_; strcpy(factory,未设置); strcpy(notes,无);void Equipment:output() cout1.设备编号:numendl; cout2.设备名称:nameendl; cout3.生产厂家:factoryendl; cout4.购置日期:; date.output(); cout5.台数:amountendl; cout6.单价:prriceendl; cout7.备注:notesendl;int Equipment:getNu
7、m() return num;int Equipment:getAmount() return amount;double Equipment:getPrrice() return prrice;void Equipment:setNum() coutnum;void Equipment:setName() coutname;void Equipment:setFactory() coutfactory;void Equipment:setDate() int y,m,d; coutymd; Date a(y,m,d); date = a;void Equipment:setAmount()
8、coutamount;void Equipment:setPrrice() coutprrice;void Equipment:setNotes() coutnotes;void Equipment:foutput(ofstream &fout) foutnumendl; foutnameendl; foutfactoryendl; date.foutput(fout); foutamountendl; foutprriceendl; foutnotesendl;class Listprivate: int n,capacity; Equipment *elem;public: List();
9、 List(); bool add(); /添加 bool find(); /查询 void modify(); /修改 bool Save(); / 设备保存 bool Read(); /读取 void Delete(); /删除设备记录 void Recover(); /恢复被删除的记录 void Statistic(); /统计;List:List() n = 0; capacity = 1000; elem = new Equipment *capacity; for(int i = 0 ; i capacity ; i+) elemi = NULL;List:List() for (
10、int i = 0 ; i n ; i+) delete elemi; elemi = NULL; if(elem) delete elem; elem = NULL;bool List:add() if(n capacity) int num_; char name_20; int amount_; double prrice_; coutnum_; coutname_; coutamount_; coutprrice_; elemn = new Equipment(num_,name_,amount_,prrice_); n+; return true; return false;bool
11、 List:find() int num_; coutnum_; for(int i = 0 ; i getNum() cout查找成功!设备信息如下:output(); return true; cout查找失败!无此设备信息。 0) int i,num_; bool ok = false; cout现有的设备编号如下:endl; for (i = 0 ; i n ; i+) coutgetNum() ; coutendl; coutnum_; for (i = 0 ; i getNum()=num_) ok = true; int choice = 1; do system(cls); e
12、lemi-output(); cout8.退出修改。endl; coutchoice; if(choice 8) cout输入错误,请重新输入!setNum(); break; case 2: elemi-setName(); break; case 3: elemi-setFactory(); break; case 4: elemi-setDate(); break; case 5: elemi-setAmount(); break; case 6: elemi-setPrrice(); break; case 7: elemi-setNotes(); break; case 8: bre
13、ak; while (choice != 8); if(!ok) cout您的输入有误!endl; else cout现无任何设备!endl;bool List:Save() ofstream fout; fout.open(save.txt); fout.put(0); /清楚txt文档的数据 fout.seekp(-1,ios:end); /在txt文档中光标退格 if(fout.fail() cout找不到文件,保存失败!endl; return false; else for(int i = 0 ; i foutput(fout); cout保存成功!endl; fout.close(
14、); return true;bool List:Read() int size; ifstream fin; fin.open(save.txt); streampos pos = fin.tellg(); fin.seekg(0,ios:end); size = fin.tellg(); fin.seekg(pos); if(fin.fail() cout找不到文件,读取失败!num_; finname_; finfactory_; finymd; if(fin.eof() break; Date date_(y,m,d); finamount_; finprrice_; finnotes
15、_; elemn = new Equipment(num_,name_,amount_,prrice_); elemn-give(factory_,date_,notes_); n+; cout读取成功! 0) int i,num_; bool ok = false; cout现有的设备编号如下:endl; for (i = 0 ; i n ; i+) coutgetNum() ; coutendl; coutnum_; for (i = 0 ; i getNum()=num_) ok = true; system(cls); elemi-output(); cout您确定要删除此设备? (Y
16、 or N)str; if(str != Y & str != N) coutfoutput(fout); fout.close(); if(i = n-1) delete elemi; elemi = NULL; else Equipment *tem; tem = elemi; elemi = elemn-1; elemn-1 = tem; delete elemn-1; elemn-1 = NULL; n-; cout删除成功!endl; else cout删除失败!endl; if(!ok) cout您的输入有误!endl; else cout现无任何设备!endl;void List
17、:Recover() int size; ifstream fin; fin.open(recover.txt); streampos pos = fin.tellg(); fin.seekg(0,ios:end); size = fin.tellg(); fin.seekg(pos); if(fin.fail() cout找不到文件,恢复失败!num_; finname_; finfactory_; finymd; if(fin.eof() break; Date date_(y,m,d); finamount_; finprrice_; finnotes_; elemn = new Equ
18、ipment(num_,name_,amount_,prrice_); elemn-give(factory_,date_,notes_); n+; cout恢复成功!endl; fin.close(); ofstream fout; fout.open(recover.txt); fout.put(0); fout.seekp(-1,ios:end); fout.close(); void List:Statistic() system(cls); int i,j,n_200 = 0,n200_800 = 0,n800_ = 0; double p_200 = 0,p200_800 = 0,
19、p800_ = 0; Equipment *tem; for(i = 0 ; i n ; i+) for(j = 0 ; j getPrrice() elemj+1-getPrrice() tem = elemj; elemj = elemj+1; elemj+1 = tem; cout编号t 名称t 厂家t 日期tt 数量t 单价t 备注endl; for (i = 0 ; i getPrrice() getAmount(); p_200 += elemi-getAmount()*elemi-getPrrice(); else if(elemi-getPrrice() getAmount()
20、; p200_800 += elemi-getAmount()*elemi-getPrrice(); else n800_ += elemi-getAmount(); p800_ += elemi-getAmount()*elemi-getPrrice(); elemi-alloutput(); coutendl; cout单价在:200元以下的设备总台数及总金额为: tn_200ttp_200endl; cout单价在:200800元的设备总台数及总金额为: tn200_800ttp200_800endl; cout单价在:800元以上的设备总台数及总金额为: tn800_ttp800_en
21、dl; cout累计所有设备的总台数及总金额为: ttn_200+n200_800+n800_ttp_200+p200_800+p800_endl;int main() List list; int n = 0; int choice = 1; system(color 1C); do couttttt教学设备管理系统endl; couttt=endl; couttt#tt 1.添加设备内容。tt#endl; couttt#tt 2.查找设备内容。tt#endl; couttt#tt 3.修改设备内容。tt#endl; couttt#tt 4.保存设备记录。tt#endl; couttt#tt 5.读取设备记录。tt#endl; couttt#tt 6.删除设备内容。tt#endl; couttt#tt 7.恢复删除记录。tt#endl; couttt#tt 8.统计设备内容。tt#endl; couttt#tt 9.退出管理系统。tt#endl; couttt=endl; coutchoice; if(choi
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1