首页 > 编程语言 >day2c++学习

day2c++学习

时间:2023-07-09 21:33:16浏览次数:49  
标签:txl cout int name1 day2 c++ 学习 printf size

通讯录

  1 #include <iostream>
  2 #include <string>
  3 
  4 using namespace std;
  5 const int N=2000;
  6 
  7 struct person{
  8     string name;
  9     string gender;
 10     int age;
 11     string phonenum;
 12     string address;
 13 };
 14 //通讯录结构体
 15 struct node{
 16     int size;
 17     struct person a[N];
 18 };
 19 
 20 void ShowMenu(){
 21     printf("************************\n");
 22     printf("***** 1.添加联系人 *****\n");
 23     printf("***** 2.显示联系人 *****\n");
 24     printf("***** 3.删除联系人 *****\n");
 25     printf("***** 4.查找联系人 *****\n");
 26     printf("***** 5.修改联系人 *****\n");
 27     printf("***** 6.清空联系人 *****\n");
 28     printf("***** 0.退出通讯录 *****\n");
 29     printf("************************\n");
 30 }
 31 
 32 void addperson(node *txl) {
 33     if(txl->size==N) {
 34         printf("通讯录已满,无法添加!");
 35         return;
 36     }
 37     int sz=++txl->size;
 38     cout<<"请输入姓名:"<<endl;
 39     cin>>txl->a[sz].name;
 40     cout<<"请输入性别:"<<endl;
 41     cin>>txl->a[sz].gender;    
 42     cout<<"请输入年龄:"<<endl;
 43     cin>>txl->a[sz].age;
 44     cout<<"请输入电话:"<<endl;
 45     cin>>txl->a[sz].phonenum;    
 46     cout<<"请输入住址:"<<endl;
 47     cin>>txl->a[sz].address;        
 48     cout<<"添加成功!"<<endl;
 49     system("pause");
 50     system("cls");//清屏
 51 }
 52 
 53 void showperson(node *txl) {
 54     if(txl->size==0) {
 55         printf("当前记录为空\n");
 56     }
 57     else {
 58         for(int i=1;i<=txl->size;i++) {
 59             cout<<"姓名:"<<txl->a[i].name<<endl;
 60             cout<<"性别:"<<txl->a[i].gender<<endl;
 61             cout<<"年龄:"<<txl->a[i].age<<endl;
 62             cout<<"电话:"<<txl->a[i].phonenum<<endl;
 63             cout<<"住址:"<<txl->a[i].address<<endl;
 64         }
 65     }
 66     system("pause");
 67     system("cls");//清屏    
 68 }
 69 
 70 int isexist(node txl,string nam) {
 71     for(int i=1;i<=txl.size;i++) {
 72         if(nam==txl.a[i].name) return i;
 73     } 
 74     return -1;
 75 }
 76 
 77 void delperson(node *txl,int id) {
 78     txl->a[id].name=txl->a[txl->size].name;
 79     txl->a[id].gender=txl->a[txl->size].gender;
 80     txl->a[id].age=txl->a[txl->size].age;
 81     txl->a[id].phonenum=txl->a[txl->size].phonenum;
 82     txl->a[id].address=txl->a[txl->size].address;
 83     txl->size--;
 84     system("pause");
 85     system("cls");//清屏    
 86 }
 87 
 88 void findperson(node *txl) {
 89     string name1;
 90     cout<<"请输入您要查找的联系人姓名:"<<endl;
 91     cin>>name1;
 92     int i=isexist(*txl,name1);
 93     if(i==-1) cout<<"查无此人"<<endl;
 94     else {
 95             cout<<"姓名:"<<txl->a[i].name<<endl;
 96             cout<<"性别:"<<txl->a[i].gender<<endl;
 97             cout<<"年龄:"<<txl->a[i].age<<endl;
 98             cout<<"电话:"<<txl->a[i].phonenum<<endl;
 99             cout<<"住址:"<<txl->a[i].address<<endl;        
100     }
101     system("pause");
102     system("cls");//清屏        
103 }
104 
105 void modifyperson(node *txl) {
106     string name1;
107     cout<<"请输入您要修改的联系人姓名:"<<endl;
108     cin>>name1;
109     int i=isexist(*txl,name1);
110     if(i==-1) cout<<"查无此人"<<endl;
111     else {
112         string s;int ag;
113         cout<<"请输入姓名:"<<endl;
114         cin>>s;
115         txl->a[i].name=s;
116         cout<<"请输入性别:"<<endl;
117         cin>>s;
118         txl->a[i].gender=s;    
119         cout<<"请输入年龄:"<<endl;
120         cin>>ag;
121         txl->a[i].age=ag;
122         cout<<"请输入电话:"<<endl;
123         cin>>s;
124         txl->a[i].phonenum=s;    
125         cout<<"请输入住址:"<<endl;
126         cin>>s;
127         txl->a[i].address=s;        
128         cout<<"修改成功!"<<endl;    
129     }
130     system("pause");
131     system("cls");//清屏    
132 }
133 
134 void clean(node *txl) {
135     cout<<"请确认是否要清空,确认请输入1,否则输入其他数字"<<endl;
136     int f;
137     cin>>f;
138     if(f==1) txl->size=0;
139     system("pause");
140     system("cls");//清屏
141 }
142 int main() {
143     node txl;
144     txl.size=0;
145 
146     while(1){
147         ShowMenu();
148         int op;
149         cin>>op;
150         switch (op)
151         {
152         case 0:
153             printf("欢迎下次使用");
154             return 0;
155             break;
156         case 1:
157             addperson(&txl);
158             break;
159         case 2:
160             showperson(&txl);
161             break;
162         case 3: {
163             cout<<"请输入要删除的联系人姓名:"<<endl;
164             string name1;
165             cin>>name1;
166             int num=isexist(txl,name1);
167             if(num==-1) cout<<"查无此人"<<endl;
168             else delperson(&txl,num);
169             break;
170         }
171         case 4: 
172             findperson(&txl);
173             break;
174         case 5:
175             modifyperson(&txl);
176             break;    
177         case 6:
178             clean(&txl);
179             break;                                                                
180         default:
181             printf("请正确输出0-6的数字实现功能\n");
182             break;
183         }
184     }
185     system("pause");
186     return 0;
187 }

 

标签:txl,cout,int,name1,day2,c++,学习,printf,size
From: https://www.cnblogs.com/AuroraKelsey/p/17539458.html

相关文章

  • 平面图学习笔记--zhengjun
    要点不多,记一下即可。\(G\)的对偶图记为\(G^*\)。\(G^*\)为连通图,若\(G\)联通,则\(G^{*}{^*}=G\)\(G^*\)中的简单环对应着\(G\)中的极小割,(简单对应极小),利用该性质,可以把平面图上的最小割问题转化为对偶图上的最短路问题平面图欧拉公式:\(V-E+F-C=1\),点数-边数+面......
  • Docker学习路线1:介绍
    Docker是什么?Docker是一个开源平台,通过将应用程序隔离到轻量级、可移植的容器中,自动化应用程序的部署、扩展和管理。容器是独立的可执行单元,封装了运行应用程序所需的所有必要依赖项、库和配置文件,可以在各种环境中稳定地运行。什么是容器?容器是一种轻量级、可移植和隔离的软件......
  • 「BalticOI 2011 Day2」Tree Mirroring 题解
    本文网址:https://www.cnblogs.com/zsc985246/p/17539182.html,转载请注明出处。题目大意现在有一棵树\(T\),复制一个完全相同的\(T'\),并将这两棵树的叶子节点全部对应合并在一起,形成一个图,我们称这种图为对称图。给定一个图,判断它是否为对称图。\(3\len,m\le10^5\)思路......
  • 【学习笔记】李超线段树
    维护一次函数以模板题为例。使用线段树维护线段,每个节点维护的都是完全覆盖这个区间的线段。考虑当前节点已经有线段\(f\),现在加入线段\(g\)。暴力想法是暴力递归每个子区间,把更优的保留,注意到\(f,g\)最多一个交点,因此也最多一侧的子区间需要暴力递归。具体流程如下:先......
  • Cesium学习笔记3——加载地图服务
    申请成为天地图开发者,创建应用 编写代码:<!DOCTYPEhtml><htmllang="en"><head><!--Usecorrectcharacterset.--><metacharset="utf-8"/><!--TellIEtousethelatest,bestversion.--><......
  • C++电影评分系统[2023-07-09]
    C++电影评分系统[2023-07-09]程序设计综合课程设计任务书任课教师:张启军班级:22数字媒体1、2、重、补修班时间:第20周分组:2人一组(经老师同意后可1人或3人一组)一、题目电影评分系统二、课程设计目的和要求本课程设计通过完成一个规模适当的、完整的程序,综合运用......
  • 数学分析学习笔记
    序言数学分析原理1、叙述上的系统性和可能范围内的严格性叙述按照逻辑的顺序2、数学分析是行动的指南做习题和例题的重要性3、数学分析与其它应用领域的联系4、分析计算一直算到求出数字的结果,学生要熟悉近似方法的运用与学会作出近似公式5、......
  • Qt/C++原创项目作品精选(祖传原创/性能凶残)
    00前言说明从事Qt开发十年有余,一开始是做C#.NET开发的,因为项目需要,转行做嵌入式linux开发,在嵌入式linux上做可视化界面开发一般首选Qt,当然现在可选的方案很多比如安卓,但是十多年前那时候板子性能低,安卓在这个上面跑的话卡成屎,当时的内存大概是128MB左右,Qt也是主要用QWidget,刚出......
  • CLR组件开发之 基于C++ dll 与C++/CLI dll与C#的数据类型对应关系
    ​  模块化组件化实现独立的功能模块是软件设计的良好习惯,一般用实现为DLL。普通的DLL对外提供接口是采用导出函数接口,如果接口数量不大,只是50个以内,这种方式很适合;如果对外接口有上百个,导出函数接口就完全破坏了软件模块化分层设计的理念,使用接口非常麻烦,此情形采用C++/CLI导......
  • 基于MFC dll实现C++/CLI dll组件全过程详解(附完整源码) 浮云绘图
    ​模块化组件化实现独立的功能模块是软件设计的良好习惯,一般用实现为DLL。普通的DLL对外提供接口是采用导出函数接口,如果接口数量不大,只是50个以内,这种方式很适合;如果对外接口有上百个,导出函数接口就完全破坏了软件模块化分层设计的理念,使用接口非常麻烦,此情形采用C++/CLI导出类......