資源簡介
課程設計名稱:實驗室設備管理系統
設計內容:編寫一個簡單的實驗室設備管理程序,幫助管理實驗室設備信息。要求具有設備信息管理的功能,其中包括設備信息的錄入、刪除、查詢和修改等功能;還應包括對實驗室信息管理的功能,其中包括對實驗室信息的錄入、刪除、修改和查詢等功能。
任務和要求
運用面向對象的程序設計方法,要求選擇動態數組類模板,任務中要運用I/O流對象對文件進行讀寫操作。
本題程序應提供的基本管理功能有:
添加:即增加一條信息到設備信息中,或增加一條信息到實驗室信息中;
顯示:即在屏幕上顯示所有設備或實驗室信息;
存儲:即將設備信息和實驗室信息分別保存在文件中;
裝入:即將文件中的信息讀入程序;
查詢:可根據設備名稱查找具體情況,若找到,顯示在屏幕上;
修改:可修改設備信息,或對實驗室信息進行修改。
代碼片段和文件信息
#include?
#include?
#include?
#include?
#include?
using?namespace?std;
//實驗室數據類型
struct?lab{
int?labid;//實驗室編號
int?area;//實驗室面積
char?admin[20];//管理員姓名
};
//設備數據類型
struct?equipment{
int?id;//設備編號
char?name[25];//名稱
char?model[25];//型號
int?labid;//所屬實驗室
int?price;//價格
char?date[10];//購買日期
};
//動態數組類模板///////////////////////////////////////
template?
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?Array?&?operator?=?(const?Array?&?);
????T?&?operator?[]?(int?n){
????????if(n>=size?||?n<0){
????????????cerr<<“數組中無該元素“< ????????}
????????{
????????????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;i ????????????cout< ????????}
????????cout< ????};
};
template?
Array::Array(int?n)
{
????pointer?=?new?T[capacity=(size=n)*2];
}
template?
Array::Array(const?Array?&?rh)
{
????pointer?=?new?T[rh.capacity];
????size?=?rh.size;
????for(int?i=0;i ????????pointer[i]?=?rh.pointer[i];?//成員操做符的優先級高于中括號操做符
????}
}
template?
const?Array?&?Array::operator?=(const?Array?&?rh)
{
????delete?[]?pointer;
????size?=?rh.size;
????capacity?=?rh.capacity;
????pointer?=?new?T[rh.capacity];
????for(int?i=0;i ????????pointer[i]?=?rh.pointer[i];??
????}
????return?*?this;
}
template?
void?Array::capacity_increase()
{????
????if(capacity==0){
????????capacity=1;
????}
????T?*?temp?=?new?T[capacity?*=?2];
????for(int?i=0;i ????????temp[i]?=?pointer[i];??
????}
????delete?[]?pointer;
????pointer?=?temp;
}
template?
void?Array::push_back(T?pT)
{
????if(size==capacity){
????????capacity_increase();
????}
????pointer[size++]?=?pT;
}
template?
void?Array::insert(int?n?T?pT)
{
????if(n>=size?||?n<0){
????????cerr<<“Insert?Error“< ????????return;
????}
????if(size==capacity){
????????capacity_increase();
????}
????for(int?i=size;i>n;i--){
????????pointer[i]=pointer[i-1];
????}
????pointer[n]?=?pT;
}
template?
void?Array::erase(int?n)
{
????if(n>=size?||?n<0){
????????cout<<“Erase?Error“< ????????return?;
????}
????for(int?i=n;i ????????pointer[i]=pointer[i+1];
????}
????--size;
}/////////////////////////////////////////////////////////////////////
//主函數
void?main(){
int?i=0;
int?lid=-1eid=-1;
char?name[25];
char?mainchoice=
評論
共有 條評論