C++基础 DAY1
用Clion注意
使用Clion编译器,如果未关联的文件,要在CMAKEList中改成这句话,并且之后重新加载CMAKE项目,
cmake_minimum_required(VERSION 3.28)
project(C__base)
set(CMAKE_CXX_STANDARD 17)
add_executable(C__base main.cpp)
cmake_minimum_required(VERSION 3.10)
project(MyProject)
# 设置C和C++标准
set(CMAKE_C_STANDARD 99)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# 设置输出目录
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/archive)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/library)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/runtime)
# 递归查找所有C和C++源文件
file(GLOB_RECURSE sources "*.c" "*.cpp")
foreach(source IN LISTS sources)
# 提取无扩展名的文件名
get_filename_component(exe_name ${source} NAME_WE)
# 生成唯一目标名(避免路径冲突)
string(REPLACE "/" "_" target_name ${exe_name})
# 添加可执行目标
add_executable(${target_name} ${source})
# 输出提示信息
message("-- Building ${source} -> runtime/${target_name}")
endforeach()常量定义一般有两种方式
#define DAY 7; //宏常量定义一般卸载头文件顶部
const int month =12; // const 定义之后一般 后面的常规赋值=不能修改,只能回到const 这句话更改sizeof的使用
int main()
{
cout<<"int所占空间为"<<sizeof(int)<<"个字节"<<endl;
cout<<"short所占空间为"<<sizeof(short)<<"个字节"<<endl;
cout<<"long所占空间为"<<sizeof(long)<<"个字节"<<endl;
cout<<"long long所占空间为"<<sizeof(long long)<<"个字节"<<endl;
system("pause");
return 0;
}输出结果
浮点型
要注意float4个字节,7位有效小数。 double8个字节,15-16位有效小数。用float定义数字时要在后面加个f,不然计算机会当作double处,理,定义时候后面带个e是科学计数法,e后面是正数是10的几次放,是负数是10的负几次方。
int main()
{
float a=3.14f;
double b=3.14;
cout<<"float所占空间为"<<sizeof(a)<<"个字节"<<endl;
cout<<"double所占空间为"<<sizeof(b)<<"个字节"<<endl;
float c=3e2;
cout<<c<<endl;
double d=3e-2;
cout<<d<<endl;
system("pause");
return 0;
}
转义字符
输入反斜杠要用双反斜杠\\ Clion中制表符\t 一般代表四个字符位
int main()
{
cout<<"\\"<<endl;
cout<<"aaa\thellowworld"<<endl;
cout<<"aa\thellowworld"<<endl;
cout<<"aaaahelloworld"<<endl;
system("pause");
return 0;
}BOOL类型
bool只有0和1两个值,比说bool a=100,输出a也是为1,a=-100,输出也为1。
赋值运算符
最常见的a++和++a的区别,a++是先进行运算后a进行++. ++a是a先++再运算;看加号位置,加号在后面则先用后加。
通讯录管理系统
简单的增删改查 出现的情况 for循环内是i<,而不是定量。
#include <iostream>
#include "string"
using namespace std;
#define MAX 1001
struct Ren
{
string name;
int age;
string address;
long number;
int sex;
};
struct tongxunlun
{
Ren a[MAX];
int sum;
};
void tianjia(tongxunlun *T)
{
if(T->sum==MAX)
{
cout<<"通讯录已满,无法添加!"<<endl;
return;
}
else
{
cout<<"请输入姓名:"<<endl;
cin>>T->a[T->sum].name;
cout<<"请输入年龄:"<<endl;
cin>>T->a[T->sum].age;
cout<<"请输入性别:"<<endl; cout<<"1--男 2--女"<<endl;
cin>>T->a[T->sum].sex;
while(true)
{
if(T->a[T->sum].sex!=1&&T->a[T->sum].sex!=2)
{
cout<<"性别有误请重新输入"<<endl;
cin>>T->a[T->sum].sex;
}
else
break;
}
cout<<"请输入电话号码:"<<endl;
cin>>T->a[T->sum].number;
cout<<"请输入家庭住址:"<<endl;
cin>>T->a[T->sum].address;
T->sum++;
cout<<"添加成功"<<endl;
system("pause");
system("CLS");
}
}
void showman(tongxunlun T)
{
if(T.sum==0)
{
cout<<"当前通讯录为空"<<endl;
}
else
{
for(int i=0;i<T.sum;i++)
{
cout<<"性别: "<<T.a[i].name<<"\t";
cout<<"年龄: "<<T.a[i].age<<"\t";
if(T.a[i].sex==1) cout<<"性别:男"<<"\t";
else cout<<"性别:女"<<"\t";
cout<<"电话号码: "<<T.a[i].number<<"\t";
cout<<"家庭住址: "<<T.a[i].address<<endl;
}
}
system("pause");
system("CLS");
}
int where(tongxunlun *T,string b)
{
for(int i=0;i<T->sum;i++)
{
if(T->a[i].name==b) return i;
}
return -1;
}
void Delete(tongxunlun *T)
{
cout << "请输入删除联系人的姓名" << endl;
string b;
cin >> b;
int ret =where(T,b);
if(ret!=-1)
{
for(int i=ret;i<T->sum;i++)
{
// T->a[i].name=T->a[i+1].name;
// T->a[i].sex=T->a[i+1].sex;
// T->a[i].age=T->a[i+1].age;
// T->a[i].number=T->a[i+1].number;
// T->a[i].address=T->a[i+1].address;
T->a[i]=T->a[i+1];
}
T->sum--;
cout<<"删除成功"<<endl;
}else
{
cout<<"查无此人"<<endl;
}
system("pause");
system("CLS");
}
void Find(tongxunlun *T)
{
cout<<"请输入要查找的联系人姓名"<<endl;
string name;
cin>>name;
int ret= where(T,name);
if(ret==-1)
{
cout<<"该联系人不存在"<<endl;
}
else
{
cout<<"性别: "<<T->a[ret].name<<"\t";
cout<<"年龄: "<<T->a[ret].age<<"\t";
if(T->a[ret].sex==1) cout<<"性别:男"<<"\t";
else cout<<"性别:女"<<"\t";
cout<<"电话号码: "<<T->a[ret].number<<"\t";
cout<<"家庭住址: "<<T->a[ret].address<<endl;
}
system("pause");
system("CLS");
}
void modif(tongxunlun *T)
{
cout<<"请输入要修改的联系人姓名"<<endl;
string name;
cin>>name;
int ret= where(T,name);
if(ret!=-1)
{
cout<<"请输入姓名:"<<endl;
cin>>T->a[ret].name;
cout<<"请输入年龄:"<<endl;
cin>>T->a[ret].age;
cout<<"请输入性别:"<<endl; cout<<"1--男 2--女"<<endl;
cin>>T->a[ret].sex;
while(true)
{
if(T->a[ret].sex!=1&&T->a[ret].sex!=2)
{
cout<<"性别有误请重新输入"<<endl;
cin>>T->a[ret].sex;
}
else
break;
}
cout<<"请输入电话号码:"<<endl;
cin>>T->a[ret].number;
cout<<"请输入家庭住址:"<<endl;
cin>>T->a[ret].address;
cout<<"修改成功"<<endl;
}else
{
cout<<"该联系人不存在"<<endl;
}
system("pause");
system("CLS");
}
void clear(tongxunlun *T)
{
T->sum=0;
cout<<"通讯录已清空"<<endl;
system("pause");
system("CLS");
}
void showmenu()
{
cout<<"********************"<<endl;
cout<<"*****1,添加联系人*****"<<endl;
cout<<"*****2,显示联系人*****"<<endl;
cout<<"*****3,删除联系人*****"<<endl;
cout<<"*****4,查找联系人*****"<<endl;
cout<<"*****5,修改联系人*****"<<endl;
cout<<"*****6,清空联系人*****"<<endl;
cout<<"*****0,退出通讯录*****"<<endl;
cout<<"********************"<<endl;
}
int main()
{
tongxunlun T;
T.sum=0;
int select;
while(true)
{
showmenu();
cin>>select;
switch(select)
{
case 1://1,添加联系人
tianjia(&T);
break;
case 2://2,显示联系人
showman(T);
break;
case 3://3,删除联系人
{
Delete (&T);
}
break;
case 4://4,查找联系人
Find(&T);
break;
case 5://5,修改联系人
modif(&T);
break;
case 6:
clear(&T);
break;
case 0:
cout<<"欢迎下次使用"<<endl;
system("pause");
return 0;
}
}
}
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果