本文主要讲述了通过C++实现对数据的增加,删除,查询以及按规则排序。


1554188612236924.jpg

这里,我用学生数据管理来举个栗子:

要求实现以下功能:


1、信息录入:录入学生成绩信息(包括学生学号、姓名、各门课程的成绩等);

2、信息查询:输入学号,查询学生各门课程的成绩,并显示。

3、排序:按各门课程的成绩平均分进行排序,并显示。

4、信息删除与修改——输入学号,删除该学生的成绩信息。

分步实施:

1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数。

2、建立一个文件,将每位学生的信息写入文件中并能显示于屏幕上。

3、完成上述信息查询(学生学号、姓名等)、排序、信息删除与修改功能。

#include <iostream>#include <string.h>using namespace std;#define MAX 100class CStudent{private:    char *name;              // 姓名    bool sex;                // 性别    CDate date;              // 出生日期,类对象作数据成员    public:    static int num;          // 学生人数    CStudent();    void InputData();        friend void Sort();      // 排序    friend void FindName();  // 按姓名查询    friend void Statistic(); // 按性别统计    friend void Display();   // 显示全部信息} stu[MAX];    int CStudent::num=0;    //static 初始化    CStudent::CStudent() {} //构造函数// 输入信息void CStudent::InputData(){        int p;    char s[41];        cout<<"请输入学生信息(NO."<<num<<"):\n";        cout<<"姓名:";    cin>>s;    name=new char[strlen(s)+1];        strcpy(name,s);        cout<<"性别(1-男,0-女):";        cin>>p;        if (p)  sex=true;        else sex=false;    cin>>date;//操作符重载->istream &operator>>(istream &in,CDate &d)    cout<<endl;}// 排序 根据data从小到大排序void Sort(){        int i,j,p,num;    char *tn;    bool ts;    CDate td;    num=CStudent::num;        for(i=1; i<num; i++)    {        p=i;            for(j=i+1; j<=num; j++)                if (stu[j].date<stu[p].date) p=j;//找到当前未排序元素中年龄最小的对象的下标        if (p==i) continue;        //下面交换stu[i]和stu[p]        tn=stu[i].name;        stu[i].name=stu[p].name;        stu[p].name=tn;        ts=stu[i].sex;        stu[i].sex=stu[p].sex;        stu[p].sex=ts;        td=stu[i].date;        stu[i].date=stu[p].date;        stu[p].date=td;    }}// 按姓名查询void FindName(){        char name[41];        int i,num;        cout<<"请输入姓名:";        cin>>name;    num=CStudent::num;        for(i=1; i<=num; i++)            if (strcmp(stu[i].name,name)==0) break;        if (i>num)    {            cout<<"查无此人!"<<endl<<endl;            return;    }    //如果查到了,显示学生信息    cout<<"姓名:"<<stu[i].name<<endl;        cout<<"性别:";    if (stu[i].sex)            cout<<"男"<<endl;    else    cout<<"女"<<endl;        cout<<"生日:"<<stu[i].date<<endl;        cout<<endl;}// 按性别统计void Statistic(){        int i,num,s1,s0;    num=CStudent::num;    s1=0;    s0=0;    for(i=1; i<=num; i++)            if (stu[i].sex==1)s1++;            else s0++;        cout<<"男生人数:"<<s1<<endl;        cout<<"女生人数:"<<s0<<endl;        cout<<endl;}// 显示全部信息void Display(){        int i,num;    num=CStudent::num;    for(i=1; i<=num; i++)    {            cout<<stu[i].name<<"\t";            if (stu[i].sex)                cout<<"男";            else cout<<"女";            cout<<"\t"<<stu[i].date<<endl;    }        cout<<endl;}    int main1(){    char *menu[]= { "","输入信息","排序","按姓名查询","按性别统计","显示全部信息","退出" };        int i,p;    bool end;    end=false;    while(!end)    {        for(i=1; i<7; i++)                cout<<i<<"  "<<menu[i]<<endl;            cin>>p;            switch(p)        {            case 1:                          // 输入信息            CStudent::num++;            stu[CStudent::num].InputData();            break;            case 2:                          // 排序            Sort();            break;            case 3:                          // 按姓名查询            FindName();            break;            case 4:                          // 按性别统计人数            Statistic();            break;            case 5:                          // 显示全部信息            Display();            break;            case 6:                          // 退出            end=true;            break;        }    }    return 0;}

【推荐课程:C++视频教程】

更多相关文章

  1. go语言查看环境信息的方法
  2. 教你怎样快速从一个XML文件中查找信息的详细介绍
  3. 使用XML将机器内码转换为人们能够理解的信息案例分享
  4. 利用XML FOR PATH合并分组信息的示例代码(图文)
  5. XMLHTTP获取web访问头信息和网页的示例代码分析
  6. 关于查找信息的10篇文章推荐
  7. 利用神器BTrace 追踪线上 Spring Boot应用运行时信息
  8. 惊呆了!不改一行 Java 代码竟然就能轻松解决敏感信息加解密|原创
  9. Python 系统资源信息获取工具,你用过没?

随机推荐

  1. ListView.setOnItemClickListener无效问
  2. Android 之读取元素中的数据
  3. android handler线程原理详详解
  4. TextView中ellipsize属性 + 走马灯效果
  5. googlesamples/android-topeka学习笔记(
  6. android用视频当做背景
  7. WebView在Fragment中点击返回键返回上一
  8. Android指纹解锁,更好的接入到应用中
  9. 用Eclipse 来导入Android 工程 总结
  10. Android Studio 运行模拟器启动失败