C++项目校园信息管理系统Word下载.docx
《C++项目校园信息管理系统Word下载.docx》由会员分享,可在线阅读,更多相关《C++项目校园信息管理系统Word下载.docx(20页珍藏版)》请在冰豆网上搜索。
intzoukeshi;
charname[50];
}course;
classperson//person类声明
{
public:
charname[10];
charsex[10];
charaddress[100];
datebirthday;
ptypetype;
person();
~person();
virtualvoidShow();
virtualvoidRead();
virtualvoidSave(ofstream*ofile);
virtualvoidLoad(ifstream*ifile);
};
#endif
//person.cpp//person类实现
*copyright(c)2005,公司名称
*Allrightsseserved.
person.cpp
person类定义文件
#include"
person.h"
person:
:
person()//初始化全部成员数据
name[0]='
\0'
;
sex[0]='
address[0]='
type=PERSON;
birthday.day=1;
birthday.month=1;
birthday.year=2000;
}
~person()
voidperson:
Show()//显示信息
cout<
<
"
姓名:
name<
endl;
性别:
sex<
出生日期:
birthday.year<
_"
birthday.month<
birthday.day<
家庭住址:
address<
Read()//输入信息
cin>
>
name;
sex;
年:
birthday.year;
月:
birthday.month;
日:
birthday.day;
address;
Save(ofstream*ofile)//将数据存入文件
//写入文件
ofile->
write((char*)&
type,sizeof(type));
size_tlen=0;
len=strlen(name);
len,sizeof(size_t));
write(name,len);
len=strlen(sex);
write(sex,len);
len=strlen(address);
write(address,len);
birthday,sizeof(date));
Load(ifstream*ifile)//将数据从文件读出
//读入数据
ifile->
read((char*)&
read(name,len);
name[len]='
read(sex,len);
sex[len]='
read(address,len);
address[len]='
//student.h//student类声明
*文件名称:
student.h
*文件标识:
..
*摘要:
student类头文件
*当前版本:
输入作者(或修改作者)名字
#ifndefSTUDENT_H//防止该头文件被多次编译
#defineSTUDENT_H
classstudent:
publicperson//student类派生自person类
charsclass[20];
charmajor[50];
coursecourses[50];
datesregister;
student();
~student();
voidShow();
voidRead();
voidSave(ofstream*ofile);
voidLoad(ifstream*ifile);
//student.cpp//student类实现
*Copyfight(c)2005,公司名称
student.cpp
*摘要:
student类定义文件
*原作者:
student.h"
student:
student()//初始化成员数据
sclass[0]='
major[0]='
sregister.day=1;
sregister.month=1;
sregister.year=2000;
type=STUDENT;
for(inti=0;
i<
50;
i++)
{
courses[i].name[0]='
courses[i].xueqi=0;
courses[i].zoukeshi=0;
}
~student()
voidstudent:
person:
Show();
//先调用基类Show函数
入学日期:
sregister.year<
-"
sregister.month<
sregister.day<
所学专业:
major<
所在班级:
sclass<
所学课程:
if(courses[i].name[0]!
='
)
cout<
courses[i].name;
Read()//输入数据
Read();
//先调用基类Read函数
sregister.year;
sregister.month;
sregister.day;
major;
sclass;
Save(ofstream*ofile)//将数据存入文件
Save(ofile);
//先调用基类Save函数
len=strlen(sclass);
write(sclass,len);
len=strlen(major);
write(major,len);
sregister,sizeof(date));
Load(ifstream*ifile)//将数据从文件读入
Load(ifile);
//先调用基类Load函数
read(sclass,len);
sclass[len]='
read(major,len);
major[len]='
//teacher.h//teacher类声明
teacher
teacher类头文件
#ifndefTEACHER_H//防止该文件被多次编译
#defineTEACHER_H
classteacher:
publicperson//teacher类派生自person类
datetregister;
teacher();
~teacher();
voidSave(ofstream*ofile);
voidLoad(ifstream*ofile);
#endif
//teacher.cpp//teacher类实现
1.2
teacher.h"
teacher:
teacher()//初始化数据成员
tregister.day=1;
tregister.month=1;
tregister.year=2000;
type=TEACHER;
~teacher()
voidteacher:
进校日期:
tregister.year<
tregister.month<
tregister.day<
所教课程:
Read()//读取信息
tregister.year;
tregister.month;
tregister.day;
Save(ofstream*ofile)//将数据写入文件
//先调用基类save函数
tregister,sizeof(date));
Load(ifstream*ifile)//将数据从文件读入
//读入数据
//先调用基类load函数
ifile->
//最后是命令调用及对象实例管理部分代码:
//main.h//系统头文件
*copyright(c)2005,公司名称
*Allrightsreserved.
main.h
主程序头文件
*作者:
*完成日期:
*取代版本:
*原作者:
#ifndefMAIN_H
#defineMAIN_H
#include<
iomanip>
//main.cpp
*Allrightsteserved.
main.cpp
主程序定义文件
main.h"
list>
usingnamespacestd;
list<
person*>
AllPerson;
//声明顺序表全局变量
voidhelpCMD()//显示帮助信息
setiosflags(ios:
left)<
setw(20)<
可用命令:
"
描述:
input"
数据输入"
output"
显示数据"
analyze"
分析数据"
save"
保存"
load"
读取"
exit"
退出系统"
voidinputCMD()
[A]输入学生信息"
[B]输入教师信息"
charbInfo;
bInfo;
cin.sync();
if(bInfo=='
a'
||bInfo=='
A'
)//判断用户要输入学生信息还是教师信息
student*s=newstudent();
//创建学生对象实例
s->
//输入学生数据
AllPerson.push_back((person*)s);
//将该对象实例存入顺序表
cout<
成功输入学生信息"
elseif(bInfo=='
b'
B'
teacher*t=newteacher();
//创建教师对象实例
t->
//输入教师数据
AllPerson.push_back((person*)t);
成功输入教师信息"
else
输入失败!
请选择输入学生或教师信息"
voidoutputCMD()
list<
iteratorAllPersonIterator;
inti=0;
for(AllPersonIterator=AllPerson.begin();
AllPersonIterator!
=AllPerson.end();
++AllPersonIterator)//遍历顺序表
i++;
------NO."
------"
(*AllPersonIterator)->
//对所有对象实例调用Show函数
voidanalyzeCMD()
intsum=0,nstu=0,ntea=0;
if((*AllPersonIterator)->
type==STUDENT)//统计学生数量
nstu++;
type==TEACHER)//统计教师数量
ntea++;
sum++;
//统计人员总数
当前总人数为:
sum<
其中教师共"
ntea<
人,"
学生共"
nstu<
人"
voidsaveCMD()//将数据写入文件
ofstreamofile("
person.dat"
ios:
binary|ios:
trunc);
//打开person.dat文件
//顺序表浏览指针
intsun=0;
++AllPersonIterator)//遍历顺序表计算人员总数
sun++;
ofile.write((char*)&
sun,4);
//将人员总数写入文件
Save(&
ofile);
//对所有实例调用Save函数
ofile.close();
//关闭文件
成功保存"
sun<
人信息"
voidloadCMD()
ifstreamifile("
binary);
intsum=0;
ifile.read((char*)&
sum,4);
//读入人员总数
sum;
ptypetype;
ifile.read((char*)&
if(type==STUDENT)//读入学生信息
{
student*s=