鱼C论坛

 找回密码
 立即注册
查看: 2336|回复: 1

[技术交流] C++(10th)

[复制链接]
发表于 2021-2-6 22:35:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 一叶枫残 于 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();
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-7 09:10:46 | 显示全部楼层
不错,111
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-14 19:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表