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


本文摘自PHP中文网,作者little bottle,侵删。

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


1554188612236924.jpg

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

要求实现以下功能:


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

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

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

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

分步实施:

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

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

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

#include <iostream>

#include <string.h>

using namespace std;

#define MAX 100

class 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++的数据管理实现的详细内容!

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

以上就是用C++实现数据的管理功能的详细内容!

相关阅读 >>

C++实现最短路径之dijkstra算法

c#调用C++ 动态链接库dll

第四章C++:表达式概念-运算符的应用

深入学习C++必读书籍(推荐)

C++中不能重载的运算符有哪些

C++中如何避免内存泄漏?

C++标识符命名规则

C++中=和==的区别有哪些?

关于C++中的引用总结

小白程序员C++入门学习书籍(书单)

更多相关阅读请进入《C++》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...