已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/person.h /* *Copyright (c) 2005,公司名称 *All rights reserved. * *文件名称:person.h *文件标识:. *摘 要:person 类头文件 * *当前版本:1.1 *作 者:输入作者(或修改者)名字 *完成日期:. * *取代版本:1.0 *原作者 :输入原作者(或修改者)名字 *完成日期. * */ #ifndef PERSON_H /防止头文件被多次编译 #define PERSON_H #include #include /#include using namespace std ; enum ptypeSTUDENT,TEACHER,PERSON; /定义枚举类型 ptype typedef struct date /定义 date 结构 int year; int month; int day; date; typedef struct course /定义 course 结构 int xueqi; int zoukeshi; char name50; course; class person /person 类声明 public: char name10; char sex10; char address100; date birthday; ptype type; person(); person(); virtual void Show(); virtual void Read(); virtual void Save(ofstream*ofile); virtual void Load(ifstream*ifile); ; #endif /person.cpp /person 类实现 /* *copyright (c) 2005,公司名称 *All rights seserved. * *文件名称:person.cpp *文件标识:. *摘 要:person 类定义文件 * *当前版本:1.0 *作 者:输入作者(或修改者)名字 *完成日期:. *取代版本:. *原作者 :输入作者(或修改者)名字 *完成日期:. */ #include “person.h“ person:person() /初始化全部成员数据 name0=0; sex0=0; address0=0; type=PERSON; birthday.day=1; birthday.month=1; birthday.year=2000; person:person() void person:Show() /显示信息 coutname; coutsex; coutbirthday.year; coutbirthday.month; coutbirthday.day; coutaddress; void person:Save(ofstream* ofile)/将数据存入文件 /写入文件 ofile-write(char*) size_t len=0; len=strlen(name); ofile-write(char*) ofile-write(name,len); len=strlen(sex); ofile-write(char*) ofile-write(sex,len); len=strlen(address); ofile-write(char*) ofile-write(address,len); ofile-write(char*) void person:Load(ifstream* ifile)/将数据从文件读出 /读入数据 size_t len=0; ifile-read(char*) ifile-read(name,len); namelen=0; ifile-read(char*) ifile-read(sex,len); sexlen=0; ifile-read(char*) ifile-read(address,len); addresslen=0; ifile-read(char*) /student.h /student 类声明 /* * *Copyright (c) 2005,公司名称 *All rights reserved. * *文件名称:student.h *文件标识: *摘 要:student 类头文件 * *当前版本:1.1 *作 者:输入作者(或修改作者)名字 *完成日期:. * *取代版本:1.0 *原作者 :输入作者(或修改作者)名字 *完成日期:. */ #ifndef STUDENT_H /防止该头文件被多次编译 #define STUDENT_H #include “person.h“ class student:public person /student 类派生自 person 类 public: char sclass20; char major50; course courses50; date sregister; student (); student(); void Show(); void Read(); void Save(ofstream* ofile); void Load(ifstream* ifile); ; #endif /student.cpp /student 类实现 /* *Copyfight (c) 2005,公司名称 *All rights reserved. * *文件名称:student.cpp *文件标识:. * 摘 要:student 类定义文件 * *当前版本:1.1 *作 者:输入作者(或修改作者)名字 *完成日期:. * *取代版本:1.0 *原作者:输入作者(或修改作者)名字 *完成日期:. */ #include “student.h“ student:student() /初始化成员数据 sclass0=0; major0=0; sregister.day=1; sregister.month=1; sregister.year=2000; type=STUDENT; for(int i=0;isregister.year; coutsregister.month; coutsregister.day; coutmajor; coutsclass; void student:Save(ofstream* ofile) /将数据存入文件 /写入文件 person:Save(ofile); /先调用基类 Save 函数 size_t len=0; len=strlen(sclass); ofile-write(char*) ofile-write(sclass,len); len=strlen(major); ofile-write(char*) ofile-write(major,len); ofile-write(char*) void student:Load(ifstream* ifile) /将数据从文件读入 /读入数据 person:Load(ifile); /先调用基类 Load 函数 size_t len=0; ifile-read(char*) ifile-read(sclass,len); sclasslen=0; ifile-read(char*) ifile-read(major,len); majorlen=0; ifile-read(char*) /teacher.h /teacher 类声明 /* *Copyright (c) 2005,公司名称 *All rights reserved. * *文件名称:teacher *文件标识:. *摘 要:teacher 类头文件 * *当前版本:1.1 *作 者:输入作者(或修改者)名字 *完成日期:. * *取代版本:1.0 *原作者:输入原作者(或修改者)名字 *完成日期:. */ #ifndef TEACHER_H /防止该文件被多次编译 #define TEACHER_H #include “person.h“ class teacher:public person /teacher 类派生自 person 类 public: course courses50; date tregister; teacher(); teacher(); void Show(); void Read(); void Save (ofstream* ofile); void Load(ifstream* ofile); ; #endif /teacher.cpp /teacher 类实现 /* *Copyright (c) 2005,公司名称 *All rights reserved. * *文件名称:student.cpp *文件标识:. *当前版本:1.2 *作 者:输入作者(或修改作者)名字 *完成日期:. * *取代版本:1.1 *原作者:输入原作者(或修改者)名字 *完成日期:. */ #include “teacher.h“ teacher:teacher() /初始化数据成员 tregister.day=1; tregister.month=1; tregister.year =2000; type=TEACHER; for(int i=0;itregister.year; couttregister.month; couttregister.day; void teacher:Save(ofstream* ofile) /将数据写入文件 /写入文件 person:Save(ofile); /先调用基类 save 函 数 ofile-write(char*) void teacher:Load(ifstream*ifile) /将数据从文件读入 /读入数据 person:Load(ifile); /先调用基类 load 函数 ifile-read(char*) /最后是命令调用及对象实例管理部分代码: /main.h /系统头文件 /* * copyright (c) 2005,公司名称 * All rights reserved. * *文件名称:main.h *文件标识:. *摘 要:主程序头文件 * *当前版本:1.0 *作 者:输入作者(或修改者)名字 *完成日期:. * *取代版本:. *原作者 :输入原作者(或修改者)名字 *完成日期:. */ #ifndef MAIN_H #define MAIN_H #include #include #endif /main.cpp /* *Copyright (c) 2005,公司名称 *All rights teserved. * *文件名称:main.cpp *文件标识:. *摘 要:主程序定义文件 * *当前版本:1.2 *作 者:输入作者(或修改者)名字 *完成日期:. * *取代版本:1.1 *原作者 :输入原作者(或修改者)名字 *完成日期:. */ #include “main.h“ #include “person.h“ #include “student.h“ #include “teacher.h“ #include using namespace std; listAllPerson; /声明顺序表全局变量 void helpCMD() /显示帮助信息 coutbInfo; cin.sync(); if(bInfo=a|bInfo=A) /判断用户要输入学生信息还是教 师信息 student* s=new student(); /创建学生对象实例 s-Read(); /输入学生数据 AllPerson.push_back(person*)s); /将该对象实例存入顺序 表 coutRead(); /输入教师数据 AllPerson.push_back(person*)t); /将该对象实例存入顺序表 cout:iterator AllPersonIterator; int i=0; for(AllPersonIterator=AllPerson.begin();AllPersonIterator!=AllPerso n.end(); +AllPersonIterator) /遍历顺序表 i+; coutShow(); /对所有对象实例调用 Show 函数 void analyzeCMD() list:iterator AllPersonIterator; int sum=0,nstu=0,ntea=0; for(AllPersonIterator=AllPerson.begin();AllPersonIterator!=AllPerso n.end(); +AllPersonIterator) /遍历顺序表 if(*AllPersonIterator)-type=STUDENT) /统计学生数量 nstu+; if(*AllPersonIterator)-type=TEACHER) /统计教师数量 ntea+; sum+; /统计人员总 数 cout:iterator AllPersonIterator; /顺序表浏览指 针 int sun=0; for(AllPersonIterator=AllPerson.begin();AllPersonIterator!=AllPerso n.end(); +AllPersonIterator) /遍历顺序表计算人员总数 sun+; ofile.write(char*) /将人员总数写入文件 for(AllPersonIterator=AllPerson.begin();AllPersonIterator!=AllPerso n.end(); +AllPersonIterator) /遍历顺序表 (*AllPersonIterator)-Save( /对所有实例调用 Save 函数 ofile.close(); /关闭文件 coutLoad( AllPerson.push_back(person*)s); /将学生对象实例 放入顺序表 if(type=TEACHER) /读入老师 信息 teacher*t=new teacher(); t-Load( AllPerson.push_back(person*)t); /将教师对象实例子 放入顺序表 if
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年04月江苏徐州邳州市面向2024年毕业生招考聘用编制教师337人笔试历年常考点试题后附答案详解
- 2024年04月天津市和平区教育系统事业单位招考聘用145人笔试历年常考点试题后附答案详解
- 医药费困难申请书
- 2024年04月中国国家画院2024年招考2名应届毕业生笔试历年常考点试题后附答案详解
- 北京市存量房屋买卖合同书模板
- 北京市二手房买卖合同模板
- 勤工俭学申请书600字
- 中国网络直播行业市场深度调研及前景趋势与投资研究报告2024-2034版
- 动物王国竞选记
- 全球及中国车内照明行业市场发展分析及前景趋势与投资发展研究报告2024-2034版
- 中考数学一轮复习课件线段角相交线与平行线
- 2023年患者用药指导全国知识技能竞赛备考题库
- 2024-2030年中国工程担保行业发展运行现状及投资潜力预测报告
- 2024届浙江省金华市十校高三下学期4月二模英语试题含答案
- 2024年辽宁省葫芦岛市连山区中考模拟考试道德与法治试卷(一)
- 2024年空调清洗维保合同
- 高考语文作文主题:德才学识
- 全过程工程咨询服务服务质量保障方案
- 租赁门面巡查制度内容
- 江苏名校2023-2024一年级数学下册期中试卷及答案
- 推动架工艺及夹具设计
评论
0/150
提交评论