一叶枫残 发表于 2021-2-6 22:35:43

C++(10th)

本帖最后由 一叶枫残 于 2021-2-8 18:04 编辑

对象的基础——结构
结构(Structure)是一种由程序员定义的、由其他变量类型组合而成的数据类型;
创建
定义结构的基本语法是:
struct name
{
        type varName1;
        type varName2;
        ......
};        //注意不要忘记这个分号
对于本人而言,结构简单来说就是一个可以放不同数据类型的数组,类似于python中的列表;

赋值方式
struct Imformation
{
        string name;
        char sex;
        int idnum;
} ;
(1)我们可以使用 . (点操作符)来进行赋值
struct Imformation Friend;   //在C++里面,我们可以去掉前面的struct
Friend.name = "Ming";
Friend.sex = 'F';
Friend.idnum = 125;

(2)声明新变量时,也可以像定义数组一样的方式进行赋值
struct Imformation Friend = { "Ming" , 'F' , 125 };
(3)使用指针来赋值:
<1>解引用方式
Imformation Friend;
Imformation *p;
p = &Friend;

(*p).name = "Ming";        //请注意,括号必不可少
(*p).sex = 'F';
(*p).idnum = 125;

<2>使用" ->"
p->name = "Ming";
p->sex = 'F';
p->idnum = 125;

课后作业:
定义一个结构,至少储存:姓名,身份证,性别
实现文件储存
可以打印到屏幕
#include <iostream>
#include <string>
#include <stdlib.h>
#include <fstream>

using namespace std;

struct DataStorage
{
        string name;
        string idn;
        char sex;
};

typedef DataStorage DS;

bool Datainput();
bool Datapring();
bool DataStore( DS*);

int main()
{
        int get;
        while( 1 )
        {
                std::cout << "请输入您需要的功能: " << endl;
                std::cout << "1. 打印数据到屏幕" << endl;
                std::cout << "2. 录入数据" << endl;
                std::cout << "3. 退出程序" << endl;
                cin >> get;
                if( get == 1)
                {
                        cout << "姓名        身份证        性别" << endl;
                        Datapring();
                }
                else if( get == 2)
                {
                        Datainput();
                }
                else if( get == 3 )
                {
                        return 0;
                }
       
        }
       
       
        return 0;
}


bool Datainput()
{
        DS one;
        DS* p;
        p = &one;
       
        cout << "请输入姓名:" ;
        cin >> one.name;
        cout << "请输入身份证:";
        cin >> one.idn;
        cout << "请输入性别(F/M):";
        cin.ignore( 100 , '\n' );
        one.sex = cin.get();
        cin.clear();
        cin.ignore( 100 , '\n');
        char sign;
        cout << "是否保存数据(Y/N):";
        sign = cin.get();
       
        if( sign == 'Y')
        {
                DataStore( p );
        }
        else if( sign == 'N')
        {
                ;
        }
        else
        {
                cout << "请重新输入(N/Y):" << endl;
        }
       
}

bool Datapring()
{
        ifstream in( "Data.txt" );
        if( !in )
        {
                cerr << "打开文件失败" << endl;
                return 0;
        }
       
        char c;
        while( in.read( &c , 1))
        {
                cout << c;       
        }
       
        in.close();
}

bool DataStore( DS* p )
{
        ofstream out( "Data.txt" , ios::app);
       
        if( !out )
        {
                cerr << "打开文件失败" << endl;
                return 0;
        }

       
        out << p->name;
        out << "   ";
        out << p->idn;
        out << "   ";
        out << p->sex;
        out << "\n";
               
        out.close();
}

yoobaby 发表于 2021-2-7 09:10:46

不错,111
页: [1]
查看完整版本: C++(10th)