用C++实现数据的管理功能

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

1554188612236924.jpg

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

要求实现以下功能:

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

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

立即学习“C++免费学习笔记(深入)”;

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

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

分步实施:

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

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

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

#include #include 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<>s;    name=new char[strlen(s)+1];        strcpy(name,s);        cout<>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<>name;    num=CStudent::num;        for(i=1; inum)    {            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]<>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++的数据管理实现的详细内容,更多请关注创想鸟其它相关文章!

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

以上就是用C++实现数据的管理功能的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1433103.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 08:54:13
下一篇 2025年12月8日 00:15:43

相关推荐

  • 数据结构中散列表(哈希表)经典之冲突处理

    散列是在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使得每个关键字key对应一个存储位置f(key),建立了关键字与存储位置的相互对应关系,这种关系 f 称为散列函数(哈希函数)。本文小编主要讲述散列函数的冲突处理问题。 查找过程中,关键码的比较次数,取决于产生冲突的多少,产生的冲突少,…

    2025年12月17日
    000
  • 指针常量与常量指针举例说明

    pointer 指针常量与常量指针 不管是指针常量还是常量指针其本质都是指针,所以他们需要赋值的是一个地址。 很多时候利用指针进行输出的时候 总是输出指针的地址了,经常性的忘记需要输出指针地址中的内容。  const int *还是int const * 都是指针常量 ,那常量指针怎么写法?常量指针…

    好文分享 2025年12月17日
    000
  • 用C++实现最短路径之Dijkstra算法

    网络层的链路状态路由选择算法(ls算法),其中一种就是用dijkstra算法写的。《算法导论》的介绍:dijkstra算法解决的是带权重的有向图上单源最短路径问题,该算法要求所有边的权重都为非负值。 算法思路 G集表示所有点集,S集表示已经求解出源到某点的最短路径的点集,V集表示为求出最短路径的点集…

    2025年12月17日 好文分享
    000
  • C++实现在二维数组中的查找

    今天小编在网上看到一道小题目,是关于在二维数组中的查找,带大家一起来学习一下,感兴趣的好好看看,附上代码可以仿照编写一下哦! 题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。…

    2025年12月17日
    000
  • 【C++趣味程序】之开心消消乐

    你们是否同小编一样,闲暇之余总爱拿起手机,打开小游戏玩一玩。本文就是一款火爆的游戏开心消消乐的C++版的制作过程,有兴趣的小伙伴来了解一下吧! 问题描述 给定一个矩阵, 判断移动哪一个格子,可以实现消除。(定义连续三个即可消除) 据说是华为的笔试题。 分析 先写一个函数,判断包含(i, j)的格子是…

    好文分享 2025年12月17日
    000
  • C#实现网络电子白板、课件功能 (在线教学系统)

    现如今,随着互联网技术的高速发展,线上教学也非常火热,而电子白板和课件功能便是是在线教学系统中的必备功能,本文就介绍如何基于OMCS快速实现电子白板的基础功能,以及课件功能:上传课件、打开课件、课件翻页、课件同步、删除课件等高级功能。        本文的应用场景是这样的: 一个老师和N个学生进入同…

    2025年12月17日
    000
  • C语言笔记-基于C语言实现的流水跑马灯

    今天,偶忽然想起大二时学跑马灯,当时一个个敲代码最后运行出来跑马灯的状态,我现在都还记得,把代码运行到实体上最后呈现的效果真是令人愉悦,话不多说,下面我将就跑马灯制作流程给大家分享一下。 1.题目: 跑马灯 (1)基本要求 采用8254精确定时,LED的点亮规律为LED8-LED1,每一个LED的点…

    好文分享 2025年12月17日
    000
  • C/C++函数如何返回多个值?(代码示例)

    有时我们需要从通过一个函数返回多个值,不幸的是c++/c ++不允许这样做;但我们可以通过一些巧妙的方法来达到这种效果。下面本篇文章就来给大家介绍c/c++从函数中返回多个值的方法,希望对大家有所帮助。【视频教程推荐:c语言教程、c++教程】 方法一:通过使用指针: 在函数调用时,传递带有地址的参数…

    2025年12月17日 好文分享
    000
  • C++中如何避免内存泄漏?

    内存泄漏会造成系统内存的浪费,严重会导致系统崩溃等后果。那么如何避免内存泄漏?下面本篇文章就来给大家介绍一些c++++中的内存泄漏,了解如何避免内存泄漏,希望对大家有所帮助。【视频教程推荐:c++教程】 内存泄漏 内存泄漏是指因为某些原因(疏忽或错误)导致程序中己动态分配的内存未能释放或无法释放的情…

    2025年12月17日
    000
  • 在C++中对象如何作为参数传递和返回?(代码示例)

    在c++++中,我们可以将类的对象作为参数传递,还可以像传递和返回其他变量一样从函数中返回它们;且不需要特殊的关键字或头文件。下面本篇文章就来带大家了解一下,希望对大家有所帮助。 1、将对象作为参数传递 要将对象作为参数传递,我们将对象名作为参数写入,同时调用函数,方法与对其他变量执行是相同的。 基…

    2025年12月17日
    000
  • Perl和C++的区别是什么?Perl和C++的简单比较

    perl和c++++都是一种通用编程语言,那么它们之间有什么区别?下面本篇文章就来带大家简单比较一下perl和c++,了解perl和c++之间的区别,希望对大家有所帮助。 什么是Perl? Perl是一种通用的高级解释和动态编程语言。Perl最初是为文本处理开发的,例如从指定的文本文件中提取所需信息…

    2025年12月17日
    000
  • C#是什么,能做些什么?

    C#是由C和C++衍生出来的一种安全的、稳定的、简单的、优雅的面向对象编程语言,它专为公共语言基础结构所设计,提供了大量的功能支持与接入使得功能开发更加简单,我们可以使用C#语言来开发软件或者是网站。 C#语言是由微软公司发布的一种面向对象且运行在.NET Framework和.NET Core上的…

    2025年12月17日
    000
  • C#中常用的运算符有哪些

    c#中常用的运算符有:条件运算符,as运算符用于强制转换,is运算符判断变量是否是特定类型,typeof 运算符返回calss类型以及sizeof 运算符返回栈中值类型所需的长度 C#语言中提供了许多运算符,这些运算符可以帮助我们在表达式中进行数学,索引或者是函数调用等运算,接下来将在文章中为大家详…

    2025年12月17日
    000
  • C中scanf()和gets()之间的区别(代码示例)

    scanf()函数 它用于从标准输入(键盘)读取输入(字符,字符串,数字数据)。 它用于读取输入,直到遇到空格,换行符或文件结束(EOF)。 例如,请参阅以下代码: #include int main() { char str[20]; printf(“enter somethingn”); sca…

    2025年12月17日
    000
  • C++中动态内存分配与命名空间介绍

    本篇文章给大家带来的内容是介绍c++++中的动态内存分配与命名空间,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 1、C++中的动态内存分配  ● 通过new关键字进行动态内存申请  ● C++中的动态内存申请时基于类型进行的  ● delete关键用于内存释放 C语言其实是不支持…

    好文分享 2025年12月17日
    000
  • .net和c#有什么区别

    有的人可能会认为.net和c#之间没有太大的区别,但是实际上它们是两个并不相同,本篇文章我们就来给大家介绍一下关于.net和c#之间的区别。 什么是.net? .NET是微软公司下的一个开发平台,.NET核心就是.NET Framwork(.NET框架)是.NET程序开发和运行的环境,在这个平台下可…

    2025年12月17日
    000
  • C#与.net有什么关系

    .net与c#的关系有c#是一种针对与.net编写的编程语言,与c++的语法十分相似。而.net是一个开发框架,而且.net中存在的特性c#不一定存在。 经常会有人将.net与C#混淆,认为它们是一样的,其实他们还是有一定的区别的。.net是一个抽象的平台概念而C#是一种编程语言。接下来在文章中将具…

    2025年12月17日
    000
  • 在C,C ++和C#中的Int是什么

    int,“integer”的缩写,是编译器内置的基本变量类型,用于定义包含整数的数字变量。其他数据类型包括  float  和  double。 C,C ++,C#和许多其他编程语言将int识别为数据类型。  在C ++中,以下是如何声明整数变量: int a = 7; Int的局限性 只有整数可以…

    2025年12月17日
    000
  • C#中复制构造函数是什么

    通过从另一个对象复制变量或将一个对象的数据复制到另一个对象来创建对象的构造函数称为复制构造函数。下面我们来简单了解一下,希望对大家有所帮助。 复制构造函数是一个参数化构造函数,包含相同类类型的参数。它的主要用途是将新实例初始化为现有实例的值。通常,C#不提供对象的复制构造函数,但是如果要在程序中创建…

    2025年12月17日
    000
  • 什么是C#中的多态性?

    多态性是一种概念,其中方法可以定义不止一次。但每次,函数都会传递一组不同的参数,下面我们来通过一个案例来讲解一下什么是C#中的多态性。【推荐阅读:什么是C#中的继承?】 步骤1)第一步是更改Tutorial类的代码,在此步骤中,我们将以下代码添加到Tutorial.cs文件中。 代码说明: 1.第一…

    2025年12月17日
    000

发表回复

登录后才能评论
关注微信