您的当前位置:首页正文

会议记录管理系统

2024-04-24 来源:易榕旅网


题目4 会议记录管理系统

内容及要求:

定义会议信息类class Conference

会议信息包括:会议编号,会议名称、部门名称、会议地点,会议日期,会议主持人,会议记录人,出席人员,会议摘要。会议信息以二进制形式存储在文件中。

要求能够:

(1) 添加会议记录

(2) 浏览所有会议记录信息

(3) 按不同字段(会议编号,会议名称等)查询会议记录

(4) 修改会议记录

(5) 删除会议记录

部分参考代码:

class Conference //定义会议数据类

{

private:

int Coyear,Comonth,Coday; //会议日期

long Conumber; //会议编号

char Coname[30]; //会议名称

char Coplace[30]; //会议地点

char Codepartment[30]; //部门名称

char Cocompere[10]; //会议主持人

char Corecorder[10]; //会议记录人

char Coattendant[25][10]; //会议出席人员(25人以内)

int number; //会议出席人数

char Cosummary[200]; //会议摘要(100字以内)

public:

Conference()

{

}

void Settime(int a,int b,int c) //修改会议日期

{

Coyear = a; Comonth = b; Coday = c;

}

void SetConumber(long a) //修改会议编号

{

Conumber = a;

}

long ShowConumber() //返回会议编号

{

return Conumber;

}

void SetConame(char* a) //修改会议名称

{

strcpy(Coname,a);

}

char *ShowConame() //返回会议名称

{

return Coname;

}

void SetCoplace(char* a) //修改会议地点

{

strcpy(Coplace,a);

}

char *ShowCoplace() //返回会议地点

{

return Coplace;

}

void SetCodepartment(char* a) //修改部门名称

{

strcpy(Codepartment,a);

}

char *ShowCodepartment() //返回部门名称

{

return Codepartment;

}

void SetCocompere(char* a) //修改会议主持人

{

strcpy(Cocompere,a);

}

char *ShowCocompere() //返回会议主持人

{

return Cocompere;

}

void SetCorecorder(char* a) //修改会议记录人

{

strcpy(Corecorder,a);

}

char *ShowCorecorder() //返回会议记录人

{

return Corecorder;

}

void Setnumber(int n)

{

number = n;

}

void setCoattendant(char a[25][10]) {

int i = 0;

for(i;i{

//修改会议出席人员

strcpy(Coattendant[i],a[i]); //逐人次输入

}

}

void SetCosummary(char* a) //修改会议摘要

{

strcpy(Cosummary,a);

}

Conference(const Conference &conference);

int Compare(Conference &date); //比较会议日期

void Show();

};

本设计中利用时间顺序将会议记录动态有序地存储在内存中,可方便的添加、修改、删除、查看、查询记录,并能手动的将会议记录以二进制的形式存储到文件中,也可从文件中读取信息,存储结构如下 :

结点(储存记录信息)→链表(动态存储)→链(显式调用)

具体代码如下:

//****************************结点****************************

class CNode //定义结点类

{

private:

Conference *pData; //用于指向数据类的指针 CNode *pNext; //指向链表的后向指针

public:

CNode() //结点构造函数

{

pData = 0;

pNext = 0;

}

CNode(CNode &node) //用于拷贝的构造函数

{

pData = node.pData;

pNext = node.pNext;

}

void InputData(Conference *pdata) {

pData = pdata;

}

void ShowNode()

{

pData->Show();

//输入数据

}

CNode *Next()

{

return pNext;

}

Conference *GetData()

{

return pData;

}

friend class CList; //定义链表类为友元函数

friend class CListSuper;

};

//****************************结点****************************

//****************************链表****************************

class CList //定义链表类

{

protected:

CNode *pHead; public:

CList()

{

pHead = 0;

}

~CList()

{

DeleteList();

//链表的头指针结点

}

void AddNode(CNode *pnode); //在首部添加结点

CNode *DeleteNode(CNode *); //删除一个指定节点,返回其指针

CNode *Lookup(Conference &); //查找一个指定的数据

void ShowList(); //打印整个链表

void DeleteList(); //删除整个链表

CNode *GetListHead() //返回链表首结点

{

return pHead;

}

CNode *GetListNextNode(CNode *);

//返回链表指定结点的下一个指针

};

//****************************链表****************************

//****************************链****************************

class CListSuper:public CList //定义链表类

{

public:

void InsertNode(CNode *); //排序插入一个结点

friend void write(CListSuper &FinList);

friend void read(CListSuper &FinList);

};

//****************************链****************************

//****************************存档****************************

void Write(CListSuper &FinList) //存信息到文件

{

ofstream outfile(\"huiyi.txt\

if(!outfile)

{

cout<<\"数据文件打开错误,没有将数据存入文件!\\n\";

return;

}

CNode *pnode;Conference *pc;

pnode = FinList.GetListHead();

while(pnode)

{

pc = (Conference *)pnode->GetData();

outfile.write((char*)pc,sizeof(Conference));

pnode = FinList.GetListNextNode(pnode);

}

outfile.close();

cout<<\"保存存档成功!\\n\";

}

因篇幅问题不能全部显示,请点此查看更多更全内容