会议记录管理系统课设报告.docx
《会议记录管理系统课设报告.docx》由会员分享,可在线阅读,更多相关《会议记录管理系统课设报告.docx(31页珍藏版)》请在冰豆网上搜索。
会议记录管理系统课设报告
1题目容及设计要求1
2总体设计1
2.1总体功能框图1
2.2类的设计说明1
2.3主要算法流程图1
3程序清单及注释1
4运行结果与分析1
5总结2
6参考文献2
1题目容及设计要求
题目:
会议记录管理系统
容:
定义会议信息类classConference
会议信息包括:
会议编号,会议名称、部门名称、会议地点,会议日期,会议主持人,
会议记录人,出席人员,会议摘要。
会议信息以二进制形式存储在文件中。
(1)添加会议记录
(2)浏览所有会议记录信息
(3)按不同字段(会议编号,会议名称等)查询会议记录
(4)修改会议记录
(5)删除会议记录
2总体设计
2.1总体功能框图
图2-1总体功能框图
2.2类的设计说明
定义类为struckMeetinglist
使用Struck不仅可用于C++也可兼容于C上。
而且struct可直接默认所有属性和方法为public。
voidAdd(fstream)//添加会议记录
voidmodification(fstream);//修改会议记录
voidDelete(fstream);//删除会议记录
voidInquire(fstream);//按不同字段(会议编号)查询会议记录和浏览所
有会议记录信息
2.3主要算法流程图
图2-2主算法流程图
输入会议记录人
图2-3添加会议算法流程图
Y
N
图2-3修改会议算法流程图
Y
N
Y
N
图2-4删除会议算法流程图
N
Y
图2-5按不同字段(会议编号)
查询会议记录和浏览所
有会议记录信息
3程序清单及注释
#include
#include
#include
#include
structMeetinglist//定义类Meetinglist
{
charname[10];
charnumber[50];
chardepartment[40];
charaddress[40];
chartime[15];
charmoderator[20];
charrecoder[15];
charpresentmembers[300];
chardigest[500];
};
voidAdd(fstream);//添加会议记录
voidmodification(fstream);//修改会议记录
voidDelete(fstream);//删除会议记录
voidInquire(fstream);//按不同字段(会议编号)查询会议记录和浏
览所有会议记录信息
voidmain()
{intchoice;
fstreamfield("F:
\\aaa.dat",ios:
:
in|ios:
:
out|ios:
:
binary);
if(!
field)
{cerr<<"文件不能打开"<return;
}
while(choice)
{cout<<"**会议记录管理系统**\n";
cout<<"1.添加会议记录:
\n"
<<"2.修改会议记录:
\n"
<<"3.删除会议记录:
\n"
<<"4.按不同字段(会议编号)查询会议记录和浏览所有会议记录信息:
\n"
<<"0.退出!
\n";
do
{
cin>>choice;
}
while(choice!
=0&&choice!
=1&&choice!
=2&&choice!
=3&&choice!
=4&&choice!
=5);
switch(choice)
{
case1:
Add(field);break;
case2:
modification(field);break;
case3:
Delete(field);break;
case4:
Inquire(field);break;
case0:
cout<<"退出系统!
\n";return;
default:
cout<<"输入错误,请重新输入\n";
}
}
field.close();
}
voidAdd(fstreamf)
{
Meetinglistlist;
cout<<"请输入会议名称:
\n";
cin>>list.name;
cout<<"请输入会议编号(3位):
\n";
cin>>list.number;
cout<<"請输入部门名称:
\n";
cin>>list.department;
cout<<"请输入会议地点:
\n";
cin>>list.address;
cout<<"请输入会议日期:
\n";
cin>>list.time;
cout<<"请输入会议主持人:
\n";
cin>>list.moderator;
cout<<"请输入会议记录人:
\n";
cin>>list.recoder;
cout<<"请输入出席人员:
\n";
cin>>list.presentmembers;
cout<<"请输入会议摘要:
\n";
cin>>list.digest;
f.write((char*)&list,sizeof(Meetinglist));
}
voidmodification(fstreamf)
{
MeetinglistList;
inta=0;
intm=0;
intchoice;
charnum[50];
charinformation[50];
f.seekg(0,ios:
:
end);
longposEnd=f.tellg();
f.seekg(0,ios:
:
beg);
cout<<"*请输入要修改会议记录的编号:
*\n";
cin>>num;
do
{
f.read((char*)&List,sizeof(Meetinglist));
for(inti=0;i<50;i++)
{
if(num[i]==List.number[i])
m++;
if(num[i]!
=List.number[i])
{
m=0;
break;
}
}
}
while(m!
=50&&posEnd!
=f.tellg());
if(m<=50)
cout<<"*找到这个会议*\n"
<<"1.修改会议名称:
\n"
<<"2.修改会议编号:
\n"
<<"3.修改部门名称:
\n"
<<"4.修改会议地点:
\n"
<<"5.修改会议日期:
\n"
<<"6.修改会议主持人:
\n"
<<"7.修改会议记录人:
\n"
<<"8.修改出席人员:
\n"
<<"9.修改会议摘要:
\n"
<<"0.退出:
\n";
if(m!
=50)
{
cout<<"*没有这个会议*!
\n";
return;
}
while(choice)
{
do
{
cin>>choice;
}
while(choice!
=1&&choice!
=2&&choice!
=3&&choice!
=4&&choice!
=5&&
choice!
=6&&choice!
=7&&choice!
=8&&choice!
=9&&choice!
=0);
switch(choice)
{
case1:
cin>>information;
for(a=0;aList.name[a]=information[a];
f.seekp(-long(sizeof(Meetinglist)),ios:
:
cur);
f.write((char*)&List,sizeof(List));
return;
case2:
cin>>information;
for(a=0;aList.number[a]=information[a];
f.seekp(-long(sizeof(Meetinglist)),ios:
:
cur);
f.write((char*)&List,sizeof(List));
return;
case3:
cin>>information;
for(a=0;aList.department[a]=information[a];
f.seekp(-long(sizeof(Meetinglist)),ios:
:
cur);
f.write((char*)&List,sizeof(List));
return;
case4:
cin>>information;
for(a=0;aList.address[a]=information[a];
f.seekp(-long(sizeof(Meetinglist)),ios:
:
cur);
f.write((char*)&List,sizeof(List));
return;
case5:
cin>>information;
for(a=0;aList.time[a]=information[a];
f.seekp(-long(sizeof(Meetinglist)),ios:
:
cur);
f.write((char*)&List,sizeof(List));
return;
case6:
cin>>information;
for(a=0;aList.moderator[a]=information[a];
f.seekp(-long(sizeof(Meetinglist)),ios:
:
cur);
f.write((char*)&List,sizeof(List));
return;
case7:
cin>>information;
for(a=0;aList.recoder[a]=information[a];
f.seekp(-long(sizeof(Meetinglist)),ios:
:
cur);
f.write((char*)&List,sizeof(List));
return;
case8:
cin>>information;
for(a=0;aList.presentmembers[a]=information[a];
f.seekp(-long(sizeof(Meetinglist)),ios:
:
cur);
f.write((char*)&List,sizeof(List));
return;
case9:
cin>>information;
for(a=0;aList.digest[a]=information[a];
f.seekp(-long(sizeof(Meetinglist)),ios:
:
cur);
f.write((char*)&List,sizeof(List));
return;
case0:
cout<<"退出!
\n";return;
}
}
}
voidDelete(fstreamf)
{
Meetinglistlist;
intm=0;
chara;
charnum[50];
charFill[80]={''};
cout<<"*请输入要删除的会议的编号Y/N:
*"<cin>>num;
f.seekg(0,ios:
:
end);
longposEnd=f.tellg();
f.seekg(0,ios:
:
beg);
do
{
f.read((char*)&list,sizeof(Meetinglist));
for(inti=0;i<50;i++)
{
if(num[i]==list.number[i])
m++;
if(num[i]!
=list.number[i])
{
m=0;
break;
}
}
}
while(m!
=50&&posEnd!
=f.tellg());
if(m<=50)
cout<<"*找到这个会议*\n";
if(m!
=50)
{
cout<<"*没有这个会议!
*\n";
return;
}
cout<<"*确定删除这个会议?
*"<do
{
cin>>a;
}
while(a!
='Y'&&a!
='N'&&a!
='y'&&a!
='n');
if(a=='Y'||a=='y')
{
for(inti=0;i{
list.name[i]=Fill[i];
}
for(i=0;i{
list.number[i]=Fill[i];
}
for(i=0;i{
list.department[i]=Fill[i];
}
for(i=0;i{
list.address[i]=Fill[i];
}
for(i=0;i{
list.time[i]=Fill[i];
}
for(i=0;i{
list.moderator[i]=Fill[i];
}
for(i=0;i{
list.recoder[i]=Fill[i];
}
for(i=0;i{
list.presentmembers[i]=Fill[i];
}
for(i=0;i{
list.digest[i]=Fill[i];
}
f.seekp(-long(sizeof(Meetinglist)),ios:
:
cur);
f.write((char*)&list,sizeof(list));
return;
}
if(a=='N'||a=='n')
return;
}
voidInquire(fstreamf)
{intchoice;
Meetinglistlist;
charnum[50];
f.seekg(0,ios:
:
end);
longposEnd=f.tellg();
cout<<"**查询会议资料**\n";
while
(1)
{cout<<"请输入操作选项\n"
<<"1:
按会议编号查询\t"
<<"2:
浏览\t"
<<"0:
退出\n";
cin>>choice;
switch(choice)
{case1:
{f.seekg(0,ios:
:
beg);
cout<<"会议编号:
\n";
cin>>num;
do
{f.read((char*)&list,sizeof(Meetinglist));
}while(list.number!
=num&&f.tellg()!
=posEnd);
if(list.number==num)
cout<<<<<<<<<else
{cout<<"*会议编号输入错误*\n";
continue;
}
break;
}
case2:
{f.seekg(0,ios:
:
beg);
do
{f.read((char*)&list,sizeof(Meetinglist));
cout<<<<<<<<<}
while(list.number!
=num&&f.tellg()!
=posEnd);
break;
}
case0:
return;
}
}
}
4运行结果与分析
图4-1运行结果图(添加会议)
图4-2运行结果图(按编号查询会议)
通过会议编号查询编号为2的会议
将编号为2的会议中会议日期从2013.5.25改为2013.6.20
通过编号查询编号为2的会议记录
图4-3、4、5运行结果图(修改会议记录)
图4-6运行结果图(浏览所有会议记录)
图4-7运行结果图(删除编号为2的会议记录)
5总结
(课程设计过程中出现的问题及其解决方案,可扩充的功能及设计等。
)
6参考文献
[1]爱华,程磊著.面向对象程序设计(C++语言).:
清华大学,2010
[2]振安,燕君著.C++程序设计课程设计.:
机械工业,2004
[3]谭浩强著.C++程序设计实践指导.:
清华大学,2005