// example3_26_student.h:学生类的定义
#ifndef _STUDENT                //条件编译
#define _STUDENT
#include<iostream>
#include<string>
using namespace std;
#define SIZE 80
class Student
{char *name;                     //姓名char ID[19];                     //身份证char number[10];                 //学号char speciality[20];                //专业int age;                         //年龄
public:Student();                         //无参构造函数Student( char *na , char *id , char *num , char * spec ,int ag);  //带参构造函数Student(const Student &per);          //拷贝构造函数~Student();                        //析构函数char* GetName();                   //提取姓名char* GetID();                      //提取身份证char* GetNumber();                 //提取学号char* GetSpec();                    //提取专业int GetAge();                       //提取年龄void Display();                      //显示学生信息void Input();                        //输入学生信息};
#endif
//example3_26_student.cpp:学生类的实现
#include "example3_26_student.h"
Student::Student()
{name=NULL;age=0;
}
//构造函数
Student::Student( char *na , char *id , char *num , char * spec ,int ag)
{   if(na){ name=new char[strlen(na)+1];       //避免浅拷贝strcpy(name,na);}strcpy(ID, id);strcpy(number,num);strcpy(speciality, spec);age=ag;
}Student::Student(const Student &per)           //拷贝构造函数,在此例中暂时没有用到
{if(per.name){name=new char[strlen(per.name)+1];strcpy(name,per.name);}strcpy(ID, per.ID);strcpy(number,per.number);strcpy(speciality, per.speciality);age=per.age;
}Student::~Student()                         //析构函数
{if (name)delete []name;
}char* Student:: GetName()                   //提取姓名
{return name;
}
char* Student::GetID()                      //提取身份证
{  return ID;
}
int Student::GetAge()                       //提取年龄
{  return age;
}
char* Student::GetSpec()                    //提取专业
{return speciality;
}
char* Student::GetNumber()                 //提取学号
{return number;
}
void Student::Display()                    //输出数据信息
{cout<<"姓  名:"<<name<<endl;cout<<"身份证:"<<ID<<endl;cout<<"学  号:"<<number<<endl;cout<<"专  业:"<<speciality<<endl;  cout<<"年  龄:"<<age<<endl<<endl;
}
void Student::Input()                      //输入数据
{char na[10];cout<<"输入姓  名:";cin>>na ;if(name)delete []name;            name=new char[ strlen(na)+1];strcpy( name, na );cout<<"输入身份证:";cin>>ID ;cout<<"输入年  龄:";cin>>age; cout<<"输入专  业:";cin>>speciality ;cout<<"输入学  号:";cin>>number;
}
//example3_26.cpp文件:包含主函数及其他一些普通函数
#include<iostream>
#include "example3_26_student.h"
using namespace std;
const int N=10;void menu();
void OutputStu( Student *array );
void InputStu(Student *array);
int SearchStu( Student *array, char *na);int count=0;int main()
{Student array[N];int choice;do{menu();cout<<"Please input your choice:";cin>>choice;if( choice>=0 && choice <= 3 )         switch(choice){case 1:InputStu(array);break;case 2:cout<<"Input the name searched"<<endl;char na[20];cin>>na;int i;i=SearchStu(array, na);if (i==N)cout<<"查无此人!\n";elsearray[i].Display();break;case 3:OutputStu(array); break;default:break;}}while(choice);return 0;
}void menu()
{cout<<"**********1.录入信息**********"<<endl;cout<<"**********2.查询信息**********"<<endl;cout<<"**********3.浏览信息**********"<<endl;cout<<"**********0.退    出**********"<<endl;
}void OutputStu( Student *array)               //输出对象数组元素
{cout<<"学生总人数="<<count<<endl;for(int i=0 ; i<count ; i++)array[i].Display();
}int SearchStu( Student *array, char *na )         //按姓名查询
{int i,j=N;for(i=0 ; i<count ; i++)if( strcmp( array[i].GetName() , na) == 0 )j=i;return j;
}void InputStu(Student *array )                //输入对象数组元素
{char ch;do{   array[count].Input();count++;cout<<"继续输入吗?(Y or N )"<<endl;cin>>ch;}while(ch=='Y');
}

C++学生信息管理系统1.0相关推荐

  1. 赶紧进来看看--用C语言实现学生信息管理系统(1.0静态版)

    本文介绍了用C语言实现学生信息管理系统设计,主要包括对学生信息增删查改.分类统计.排序等功能,文章最后有全部源码展示- C语言实现学生信息管理系统--1.0静态版 一.学生信息管理系统介绍 二.实现学 ...

  2. Python实现学生信息管理系统V3.0(GUI界面)

    关于"学生信息管理系统"的基本思路和详细过程,请看V1.0版本: Python实现学生信息管理系统V1.0_︶ㄣ释然的博客-CSDN博客本文是关于学生信息管理系统的简易版以及具体内 ...

  3. python学生信息管理系统1.0

    目录 具体需求:实现一个学生信息管理系统 一.数据结构的设计: 二.菜单界面及按钮的设置: 三.各个模块的具体实现 1.定义一个字典,用于存放学生信息 2.查询学生信息模块: 3.添加学生信息模块: ...

  4. 赶紧进来看看---C语言实现学生信息管理系统(3.0文件存储版)

    本文主要介绍了将学生信息管理系统改造为文件存储版本- 主要涉及文件操作函数–将学生信息导入文件和从文件读取学生信息到程序中,从而达到数据持久化的效果 文章最后有源码展示 学生信息管理系统1.0静态版- ...

  5. C# 学生信息管理系统 2.0

    资源下载请点击 经历几天的探索,对原有的系统做了重大的修改. 修改如下: 1.登录界面进行了修改,增加了管理员选项. 2.学生界面增加了课表查询,成绩查询和选课系统,学生信息功能,界面做了优化,可以显 ...

  6. 学生信息管理系统V1.0

    需求: 将学生信息存储起来并能进行相关的增删改查 思路: 将学生信息存放在字典中,然后在将所有学生信息存放到列表中,通过对列表进行操作来达到对学生信息的增删改查等操作 说明: 此版本只是一个简单的列表 ...

  7. 学生信息管理系统V2.0

    需求 将学生信息存储起来(数据能多次使用)并能进行相关的增删改查 思路 将学生信息存放在字典中,然后在将所有学生信息存放到文件中,通过对文件进行操作来达到对学生信息的增删改查等操作 说明 这个版本只是 ...

  8. 【数据结构实习】学生信息管理系统2.0

    Student.h 1 #include<iostream> 2 #include<string> 3 #include<fstream> 4 using name ...

  9. python学生管理系统-Python 学生信息管理系统 2.0

    本次改进的方面有: 1.通过函数把不同的功能封装成为了一个个模块,使主程序看起来清晰简明. 2.把信息都通过文件操作写入了json文件中,在退出系统后重新登录时数据都还存在. 整个工程分为了四个.py ...

  10. Python实现简易版学生信息管理系统,包含源码及相关实现说明~

    前言 最近学了一点python语法,所以写一个小程序练习一下.当然程序中有许多不完美的地方,仅供各位小伙伴参考呀,并且欢迎大家留言指出不合理的地方奥~ 学生信息管理系统 1.系统介绍 该系统主要考察 ...

最新文章

  1. 空车上路,Waymo拿下加州首个“真”无人驾驶许可证
  2. AutoBench+Httperf的安装、测试
  3. 浅谈JAVA中如何利用socket进行网络编程(二)
  4. java-抽象类和接口对区别
  5. mysql编程的入门案例
  6. 周志华机器学习西瓜书速记第二章绪论模型评估与选择(一)
  7. 基于springboot+vue的学生选课系统(前后端分离)
  8. java 8 特点_Java8的特性有哪些
  9. hack_lu_2018_heap_heaven
  10. 对_stdcall 的理解 (转)
  11. c语言中isupper用法,C 库函数 - isupper()
  12. 图片Base64编码 图片Base64在线转换
  13. vivo 调用链 Agent 原理及实践
  14. O-1 4GB+的ISO镜像刻录
  15. 怎么从转移特性曲线上看dibl_半导体器件原理chapter4.ppt
  16. Log4j 严重漏洞修最新修复方案参考
  17. IDEA中类的图标变成J
  18. 2021年信息学部物联网工程学院学生科协前端大培训
  19. HW3000无线芯片模块
  20. 用友与华为结盟私有云 谁将是背后最大赢家?

热门文章

  1. Elastic Search 学习笔记
  2. 年入百万的表弟给我上一课:互联网思维该怎么接地气
  3. 内存优化最后一弹——优化函数运行
  4. [AppScan深入浅出]修复漏洞:会话标识未更新
  5. Linux Ubuntu从零开始部署web环境及项目 -----部署项目 (三)
  6. 第7.3节 Python特色的面向对象设计:协议、多态及鸭子类型
  7. win10 安装oracle 11gR2_database(内附下载地址)
  8. ubuntu目录结构
  9. MPEG4 笔记3(TRAK,TKHD, MVHD)
  10. 2月份13个jQuery最佳插件推荐