题目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\"; } 因篇幅问题不能全部显示,请点此查看更多更全内容