#include <iostream>
#include <string>
#include <iomanip>
#include <fstream>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
using namespace std;
int k=1,i;                    //定义一个标志变量
class birthday
{                              //定义出生年月日类
public:
int year;
int month;
int day;
};
class people
{                            //声明人员基类,以后在这个基础上派生出其它类
public:
people() {}
virtual void enter();                        //虚基函数,搭成一个框架,以后在此基础上扩充
virtual void display();
virtual int get_no()
{
return number;
}
virtual char * get_name()
{
return name;
}
// virtual void change_infor() {}                 //信息修改函数
virtual void readfile() {}                     //从文件中读
virtual void write() {}                         //将信息写入文件
people operator = (people p1);                  //运算符重载
int operator == (people p1);
virtual ~people() {};
protected:
char name[12];
int number;
char sex;
birthday bir;
char id[15];
};
void people::enter()
{                    //定义信息输入函数
cout <<"输入姓名:";
cin>>name;
cout <<"输入编号:";
cin>>number;
cout <<"输入性别:";
cin>>sex;
cout <<"生日是(年 月 日):";
cin>>bir.year>>bir.month>>bir.day;
cout <<"身份证号:";
cin>>id;
}
void people::display()
{                  //定义信息显示函数
cout <<setw(8) <<"姓名" <<setw(8) <<"编号" <<setw(8) <<"性别" <<setw(8) <<"出生日期" <<setw(8) <<"身份证号" <<endl;
cout <<setw(8) <<name <<setw(8) <<number <<setw(8) <<sex <<setw(8) <<bir.year <<setw(8) <<bir.month <<setw(8) <<bir.day <<setw(8) <<id <<endl;
}
class student:virtual public people
{                                        //以公有方式派生出学生类
protected:
char classnumber[20];
public:
student() {}
virtual void enter()
{
people::enter();
cout <<"输入班级名称:";
cin>>classnumber;
}
virtual void display();
virtual void readfile();
virtual void write();
// virtual void change_infor();
virtual ~student() {};
};
void student::display()
{                                        //定义派生类学生的信息显示函数
cout <<setw(8) <<"姓名" <<setw(8) <<"编号" <<setw(5) <<"性别" <<setw(12) <<"出生日期" <<setw(12) <<"身份证号" <<setw(12) <<"班级名称" <<endl;
cout <<setw(8) <<name <<setw(8) <<number <<setw(5) <<sex <<setw(4) <<bir.year <<setw(4) <<bir.month <<setw(4) <<bir.day <<setw(10) <<id <<setw(12) <<classnumber <<endl;
}
/********************************************************************************************
ifstream myfile("student.txt",ios::nocreate);
nocreate在头文件中#include <fstream>不存在,
希望高手帮忙改一下,实现相同的功能
*/
void student::write()
{                      //定义派生类学生的信息写入文件函数
student stu;
char ch;
ofstream myfile("student.txt",ios::app);
do
{
stu.enter();
myfile.write((char *)&stu,sizeof(stu));
cout <<"还需要输入下个学生的信息吗(y/n):";
cin>>ch;
}
while (ch=='y'||ch=='Y');
myfile.close();
}
void student::readfile()
{                  //定义派生类学生的读文件函数
ifstream myfile("student.txt",ios::in);
while (myfile)
{
student stu;
if (myfile.read((char*)&stu,sizeof(stu)))
{
if (stu.number!=-1)             //删除一个学生的信息,通过不显示来定义删除
stu.display();
}
}
myfile.close();
}
//*************************************************************/
void menu()
{
cout <<"\n\n\t\t**************************************************" <<endl;
cout <<"\t\t*\t    人事管理系统\t        *" <<endl;
cout <<"\t\t*------------------------------------------------*" <<endl;
cout <<" \t\t*  1.请输入人事信息    2.显示人事信息  *" <<endl;
cout <<" \t\t*  3.对信息的修改或删除  4.返回主菜单  0.退出*" <<endl;
cout <<"\t\t**************************************************" <<endl;
cout <<" \t\t\t\t请选择操作(0=======4) " <<endl;
cout <<"\t\t\t\t  请选择:";
}
void select()
{
people *pt;
student st;
pt=&st;
/*
teacher te;
graduate gr;
teacher_asistant t_a;
if (i==1) pt=&st;
else if (i==2) pt=&gr;
else if (i==3) pt=&te;
else if (i==4) pt=&t_a;
*/
do
{
int ch;
cin>>ch;
switch (ch)
{
case 0:
exit(0);
case 1:
pt->write();
cout <<"你还想进行何种操作:";
break;
case 2:
pt->readfile();
cout <<"你还想进行何种操作:";
break;
case 3:
//         pt->change_infor();
cout <<"你还想进行何种操作:";
break;
case 4:
k=0;
break;
default:
cout <<"你的选择错误,请重新选择:";
break;
}
}
while (k);
}
int main()
{
b:
cout <<"\n\n\t\t***************************************************" <<endl;
cout <<"\t\t*\t        人事管理系统\t        *" <<endl;
cout <<"\t\t*-----------------------------------------------------*" <<endl;
cout <<"\t\t*            1:学生                                  *" <<endl;
cout <<"                  ***************************************************" <<endl;
cout <<"请选择(0---4):";
cin>>i;
switch (i)
{
case 0:
cout <<"你已经退出系统";
getch();
exit(0);
case 1:
{
system("cls");
menu();
select();
break;
}
default :
cout <<"你的选择有误,请重新选择:";
break;
}
if (k==0)
k=1;
system("cls");
goto b;
}

ios 学生的信息相关推荐

  1. C++文件读写的学生成绩信息管理系统

    编译环境:Windows VS2019 由于程序内部实现原因,由程序操作的文件的第一行,不可以被占用.必须空出来. 且文件最后一行不可以有多余的空行. 建议不要直接操作txt文件. #include ...

  2. c语言课程设计学生籍贯信息记录簿,C语言课程设计 学生籍贯信息记录簿设计.doc...

    C语言与程序设计课程设计 学生籍贯信息记录簿设计 学 院 信息工程 班 级 物联1301班 学 号 131408119 姓 名 滕玲 一.设计目的 该软件主要是编辑一个学生籍贯信息记录簿记录每个学生信 ...

  3. mysql中 课程1比课程2成绩高_小菜菜mysql练习解读分析1——查询 01 课程比 02 课程成绩高的学生的信息及课程分数......

    查询" 01 "课程比" 02 "课程成绩高的学生的信息及课程分数 好的,第一道题,刚开始做,就栽了个跟头,爽歪歪,至于怎么栽跟头的 --需要分析题目,查询的是 ...

  4. 学生籍贯信息管理系统c语言,学生籍贯信息管理系统(c).doc

    学生籍贯信息管理系统(c).txt吃吧吃吧不是罪,再胖的人也有权利去增肥!苗条背后其实是憔悴,爱你的人不会在乎你的腰围!尝尝阔别已久美食的滋味,就算撑死也是一种美!减肥最可怕的不是饥饿,而是你明明不饿 ...

  5. c语言100个学生,输入100名学生的学号,姓名,性别,住址及10门功课,且显示每个学生10门课的最低和最高分,还要显示每门课不及格的学生人数,,还输入一个学号就能显示该学生的信息...

    已结贴√ 问题点数:20 回复次数:3 输入100名学生的学号,姓名,性别,住址及10门功课,且显示每个学生10门课的最低和最高分,还要显示每门课不及格的学生人数,,还输入一个学号就能显示该学生的信息 ...

  6. python综合管理系统_学生综合信息管理系统

    1 绪论 1.1 项目概述 学生基本信息管理系统分为六个板块 分别是修改密码.班级管理 学生管理.教师管理.课程管理和选课管理 ①密码修改是对登录身份(系统管理员.教师.学生)密码的修改 ②班级管理系 ...

  7. 以下结点node定义了一个学生的信息。函数find查找并返回学号小于num,且下一节点学号不小于num的结点指针

    以下结点node定义了一个学生的信息.函数find查找并返回学号小于num,且下一节点学号不小于num的结点指针.函数insert按学号递增顺序插入新学生.测试主函数从键盘输入5个学号,调用inser ...

  8. mysql中 课程1比课程2成绩高_小菜菜mysql练习解读分析1——查询 01 课程比 02 课程成绩高的学生的信息及课程分数...

    查询" 01 "课程比" 02 "课程成绩高的学生的信息及课程分数 好的,第一道题,刚开始做,就栽了个跟头,爽歪歪,至于怎么栽跟头的 --需要分析题目,查询的是 ...

  9. 请编写一个程序,使用字典存储学生信息,学生信息包括学号和姓名,请根据学号从小到大的顺序输出学生的信息。

    请编写一个程序,使用字典存储学生信息,学生信息包括学号和姓名,请根据学号从小到大的顺序输出学生的信息. length = int(input("请输入学生总数:")) dict_1 ...

最新文章

  1. linux常用命令1
  2. ActiveRecord使用多数据库
  3. 3月30日作业:采购管理、信息管理和配置管理
  4. linux gpio设备驱动程序,嵌入式Linux设备驱动开发之:GPIO驱动程序实例-嵌入式系统-与非网...
  5. 会话标识未更新 java_Appscan漏洞之会话标识未更新
  6. 恩施机器人编程_恩施安川机器人水切切割编程
  7. Kubernetes如何删除deployment
  8. Codeforces 702B【二分】
  9. python 苹果id申请_以写代学: python 模拟用户注册或登录账号
  10. mac修改了/etc/profile导致所有命令不能用、mac下vim不能使用
  11. Thinkphp学习笔记——友情链接的添加和验证
  12. Android SoundPool封装
  13. 四阶巴特沃斯低通滤波器设计
  14. c#推箱子小游戏代码_C# 简单推箱子游戏源码
  15. 【今日CV 计算机视觉论文速览 第95期】Fri, 5 Apr 2019
  16. 数显之家快讯:【SHIO世硕心语】小聪明毁大前程,所有人都应该深思!
  17. 新概念二册 Lesson 13 The Greenwood Boys绿林少年 (将来进行时)
  18. Linux远方拷贝文件指令,windows与linux系统互相拷贝文件借助PSCP命令实现
  19. 语音转文字转换器怎么用,免费的语音转文字方法介绍
  20. 可免费编辑 PDF 内容的 7 大 PDF 编辑工具

热门文章

  1. Eclipse中的静态和动态web项目
  2. EF Core学习笔记:反向工程 + 底层操作数据库原理
  3. 适合小白的 Hadoop 集群配置搭建,非常详细
  4. Matlab的ACC模型
  5. 关于医学图像分类问题的一些归纳
  6. confluence忘记admin密码
  7. 日均2亿PV网站架构
  8. 使用EndNote在word中导入IEEE格式的参考文献
  9. 汽车销售管理系统[C/S版本]-Java课程设计
  10. 【C++】构造-析构详解