⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 listdb.cc

📁 C++ class and storage
💻 CC
字号:
//listDB.cc//ECE106 Lab#5//Name: Mo Li//Student#: 995447379//Date:Mar.09,2007#include<iostream>#include"listDB.h"#include"listNode.h"#include"studentRec.h"using namespace std;studentDB::studentDB(){   head=NULL;   probesCount=0;};studentDB::~studentDB(){   delete head;};bool studentDB::insert(studentRecord* newRecord){    listNode* newNode= new listNode(newRecord);    for(listNode* test_full=head; test_full!=NULL; test_full=test_full->getNext(),probesCount++);    if(probesCount==1000)    {       cout <<"Error: database is full.\n";       return false;    }    if(head==NULL)    {       head=newNode;       return true;    }    else    {         listNode* prev;       listNode* current;       for(prev=NULL,current=head;           current!=NULL && newRecord->getStudentNumber()>current->getStudentRec()->getStudentNumber();           prev=current, current=current->getNext());       if(newRecord->getStudentNumber()==current->getStudentRec()->getStudentNumber())       return false;       newNode->setNext(current);       if (prev==NULL)       head=newNode;       else       prev->setNext(newNode);       return true;     }};bool studentDB::retrieve(unsigned int studentNum, studentRecord* searchRecord){    listNode* temp;    for(temp=head,probesCount=0;        temp!=NULL&&studentNum>temp->getStudentRec()->getStudentNumber();        temp=temp->getNext(),probesCount++);    if(temp==NULL)    return false;    else if(studentNum==temp->getStudentRec()->getStudentNumber())    {        searchRecord->setStudentNumber(temp->getStudentRec()->getStudentNumber());        searchRecord->setFirstName(temp->getStudentRec()->getFirstName());        searchRecord->setLastName(temp->getStudentRec()->getLastName());        searchRecord->setFirstName(temp->getStudentRec()->getFirstName());        for(int i=0;i<5;i++)        searchRecord->setMark(i,temp->getStudentRec()->getMark(i));        return true;    }    else    return false;};bool studentDB::remove(unsigned int studentNum){          listNode* prev;    listNode* current;    for(prev=NULL, current=head;        current!=NULL&&studentNum>current->getStudentRec()->getStudentNumber();        prev=current,current=current->getNext());    if(current==NULL)    return false;    else if(studentNum==current->getStudentRec()->getStudentNumber())    {        delete current->getStudentRec();        if(prev==NULL)        head=(head->getNext());        else        prev->setNext(current->getNext());        return true;    }    else    return false;};void studentDB::clear(){    delete head;    head=NULL;};bool studentDB::isEmpty(){    return head==NULL;};bool studentDB::isFull(){    for(listNode* test_full=head; test_full!=NULL; test_full=test_full->getNext(),probesCount++);    return probesCount==1000;};void studentDB::printProbes(){   cout<<probesCount+1<<endl;};void studentDB::dump(){   for(listNode* temp=head; temp!=NULL;temp=temp->getNext())   {   temp->getStudentRec()->print();   cout<<endl;   }};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -