马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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();
}
|