用结构体数组写的一个通讯录
来源:互联网 发布:sql去除查询结果重复行 编辑:程序博客网 时间:2024/06/01 10:24
结构体数组是一个数组,其每个元素都是结构体数据类型,这就方便了我们在需要将不同的具有结构体数据类型的元素有机的结合在一起,上面是本人的一个小程序,谢谢浏览!
void f3()
{
static int b;
char z[30];
printf("请输入您想更改的通讯录的同学姓名:\n");
scanf("%s",z);
for(b=0;b<50;b++)
{
if(strcmp(stu[b].name,z)==0)
break;
}
printf("您想将该同学的学号更改为:\n");
scanf("%d",&stu[b].num);
printf("您想将该同学的姓名更改为:\n");
scanf("%s",stu[b].name);
printf("您想将该同学的住址更改为:\n");
scanf("%s",stu[b].addr);
printf("您想将该同学的电话更改为:\n");
scanf("%s",stu[b].tel);
}
void f5()
{
int k;
for(k=0;k<50;k++)
{
printf("%d\t,%s\t,%s\t,%s\n",stu[k].num,stu[k].name,stu[k].addr,stu[k].tel);
}
int main()
{
int a;
printf("************ 欢迎来到本通讯录! ************************** ");
printf("\n");
while(1)
{
printf("请输入您想要的操作: 1:添加新同学的通讯信息;2:删除某位同学的通讯信息;3:改正某位同学的通讯信息;4:查看访问某位同学的通讯信息 ; 5 :输出该通讯录所有同学的通讯信息; 6 : 退出\n");
printf("\n");
scanf("%d",&a);
switch(a)
{
case 1:f1();
break;
case 2:f2();
break;
case 3:f3();
break;
case 4:f4();
break;
case 5:f5();
break;
case 6:exit(-1);
break;
default:
printf("输入有误,请您重新输入!\n");
break;
}
}
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
#include <stdlib.h>
#include<string.h>
struct student
{
int num;
char name[30];
char addr[30];
char tel[30];
} ;
struct student stu[50];//(定义一个结构体数组。)
{
int num;
char name[30];
char addr[30];
char tel[30];
} ;
struct student stu[50];//(定义一个结构体数组。)
void f1()
{
static int i; //定义一个static类型变量i,是为了记住找到需要操作的的那个数组元素的下标,使得后面使用stu[i]时i的值是循环完后的值而不是初始值。
for(i=0;i<50;i++)
{
if(stu[i].num == 0 ) //(寻找一个空的数组元素stu[i]方便于新通讯的写入。)
{
printf("请输入该同学的学号:\n");
scanf("%d",&stu[i].num);
printf("请输入该同学的姓名:\n");
scanf("%s",stu[i].name);
printf("请输入该同学的住址:\n");
scanf("%s",stu[i].addr);
printf("请输入该同学的电话:\n");
scanf("%s",stu[i].tel);
break;
}
}
}
{
static int i; //定义一个static类型变量i,是为了记住找到需要操作的的那个数组元素的下标,使得后面使用stu[i]时i的值是循环完后的值而不是初始值。
for(i=0;i<50;i++)
{
if(stu[i].num == 0 ) //(寻找一个空的数组元素stu[i]方便于新通讯的写入。)
{
printf("请输入该同学的学号:\n");
scanf("%d",&stu[i].num);
printf("请输入该同学的姓名:\n");
scanf("%s",stu[i].name);
printf("请输入该同学的住址:\n");
scanf("%s",stu[i].addr);
printf("请输入该同学的电话:\n");
scanf("%s",stu[i].tel);
break;
}
}
}
void f2()
{
static int j;
char x[30];
printf("请输入您想要删除的通讯录的同学姓名:");
scanf("%s",x);
for(j=0;j<50;j++)
{
if(strcmp(stu[j].name,x)==0) //(找到目标操作数组元素stu[j]。)
break;
}
if(j==49) //(当要删除的同学在最后一个元素就直接将最后元素内容清空。)
{
stu[j].num=0;
strcpy(stu[j].name,'\0');
strcpy(stu[j].addr,'\0');
strcpy(stu[j].tel,'\0');
}
for(j;j<49;j++) //用后一个元素覆盖前一个元素来实现删除。
{
stu[j].num=stu[j+1].num;
strcpy(stu[j].name,stu[j+1].name);
strcpy(stu[j].addr,stu[j+1].addr);
strcpy(stu[j].tel,stu[j+1].tel);
}
{
static int j;
char x[30];
printf("请输入您想要删除的通讯录的同学姓名:");
scanf("%s",x);
for(j=0;j<50;j++)
{
if(strcmp(stu[j].name,x)==0) //(找到目标操作数组元素stu[j]。)
break;
}
if(j==49) //(当要删除的同学在最后一个元素就直接将最后元素内容清空。)
{
stu[j].num=0;
strcpy(stu[j].name,'\0');
strcpy(stu[j].addr,'\0');
strcpy(stu[j].tel,'\0');
}
for(j;j<49;j++) //用后一个元素覆盖前一个元素来实现删除。
{
stu[j].num=stu[j+1].num;
strcpy(stu[j].name,stu[j+1].name);
strcpy(stu[j].addr,stu[j+1].addr);
strcpy(stu[j].tel,stu[j+1].tel);
}
}
void f3()
{
static int b;
char z[30];
printf("请输入您想更改的通讯录的同学姓名:\n");
scanf("%s",z);
for(b=0;b<50;b++)
{
if(strcmp(stu[b].name,z)==0)
break;
}
printf("您想将该同学的学号更改为:\n");
scanf("%d",&stu[b].num);
printf("您想将该同学的姓名更改为:\n");
scanf("%s",stu[b].name);
printf("您想将该同学的住址更改为:\n");
scanf("%s",stu[b].addr);
printf("您想将该同学的电话更改为:\n");
scanf("%s",stu[b].tel);
}
void f4()
{
static c;
char y[30];
printf("请您输入您想查看访问的通讯录的同学姓名:");
scanf("%s",y);
for(c=0;c<50;c++)
{
if(strcmp(stu[c].name,y)==0)
break;
}
printf("%d\t,%s\t,%s\t,%s\n",stu[c].num,stu[c].name,stu[c].addr,stu[c].tel);
}
{
static c;
char y[30];
printf("请您输入您想查看访问的通讯录的同学姓名:");
scanf("%s",y);
for(c=0;c<50;c++)
{
if(strcmp(stu[c].name,y)==0)
break;
}
printf("%d\t,%s\t,%s\t,%s\n",stu[c].num,stu[c].name,stu[c].addr,stu[c].tel);
}
void f5()
{
int k;
for(k=0;k<50;k++)
{
printf("%d\t,%s\t,%s\t,%s\n",stu[k].num,stu[k].name,stu[k].addr,stu[k].tel);
}
}
int main()
{
int a;
printf("************ 欢迎来到本通讯录! ************************** ");
printf("\n");
while(1)
{
printf("请输入您想要的操作: 1:添加新同学的通讯信息;2:删除某位同学的通讯信息;3:改正某位同学的通讯信息;4:查看访问某位同学的通讯信息 ; 5 :输出该通讯录所有同学的通讯信息; 6 : 退出\n");
printf("\n");
scanf("%d",&a);
switch(a)
{
case 1:f1();
break;
case 2:f2();
break;
case 3:f3();
break;
case 4:f4();
break;
case 5:f5();
break;
case 6:exit(-1);
break;
default:
printf("输入有误,请您重新输入!\n");
break;
}
}
}
阅读全文
0 0
- 用结构体数组写的一个通讯录
- 用结构体数组写的通讯录
- C语言用结构体写一个通讯录
- 结构体写通讯录
- 用结构体数组实现通讯录
- 用C语言写一个简单的通讯录
- 通讯录(用结构体的方法实现)
- 编写一个可容纳1000人的通讯录(【结构体】静态通讯录的实现)
- 一个汇编写的通讯录程序
- 【汇编语言】写一个简单的通讯录
- php写一个简单的通讯录
- 用STL写的 通讯录
- 用STL写的 通讯录
- 写一个通讯录
- C结构体实现一个通讯录
- 用结构体实现通讯录
- 用python字典写的一个简单的通讯录小系统
- 自己写的一个简单JAVA网络通讯录
- CSDN-markdown编辑器
- [操作系统] I/O软件原理
- Java 字符串去中文(数字)
- Linux下去掉^M的方法
- Spring MVC学习
- 用结构体数组写的一个通讯录
- 关于引用 简单数组数组排序 和 最大值次最大值数组元素
- 林云会网络出席“腾讯云网络技术沙龙——深圳站“活动
- DGUS II的网络应用
- ASP.NET Core远程调试
- 2017-11-28 clac 简易计算器
- Codeforces 898F Restoring the Expression [hash+枚举]
- Java线程池几个参数的理解
- [最小割] BZOJ 3144: [Hnoi2013]切糕