2.实现一个通讯录; 通讯录可以用来存储1000个人的信息,每个人的信息包括: 姓名、性别、年龄、电话、住址 提供方法: 1. 添加联系人信息 2. 删除指定联系人信息 3. 查找指定联
2018-03-25 18:20
896 查看
实现一个通讯录 通讯录可以用来存储1000个人的信息,每个人的信息包括: 姓名、性别、年龄、电话、住址 提供方法: 1.添加联系人信息 2.删除指定联系人信息 3.查找指定联系人4.修改联系人信息5.显示所有联系人信息 6. 清空所有联系人
7. 以名字排序所有联系人Address.h
Address:Address.o
gcc -o $@ $^
.c.o:
gcc -c $<
.PHONY:clean
clean:
rm *.o Address
7. 以名字排序所有联系人Address.h
#include<stdio.h> #include<string.h> #include<assert.h> #include<stdlib.h> #pragma once #define NameMax 20 #define SexMax 3 #define TelMax 11 #define AddressMax 20 #define PeopleMax 1000 typedef char Persontype; typedef struct PERSON { Persontype Name[NameMax];// 姓名 Persontype Sex[SexMax]; // 性别 int Age; // 年龄 Persontype Tel[TelMax]; //联系方式 Persontype Address[AddressMax]; //地址 }Person; typedef struct BOOK { Person Data[PeopleMax];//Address_Book结构体最大存储容量 int count; //当前已存储人数 }Book; void Initbook(Book* people); //初始化 void show_person(Book* people);//打印 void Add_person(Book *people);// 增加成员 void Del_person(Book* people);//删除成员 int Find_person(Book* people);//查找成员 void Change_person(Book* people);//修改成员 void BubbleSort_person(Book* people);//冒泡排序
Address.c
#include<stdio.h> #include"Address.h" //初始化 void Initbook(Book* people) { people->count = 0; } //打印 void show_person(Book* people) { if(people == NULL) { printf("空通讯录!\n"); return; } if(people->count == 0) { printf("空通讯录!\n"); } int i = 0; for(;i <=people->count-1;++i) { printf("Name:%s\n",people->Data[i].Name); printf("Sex:%s\n",people->Data[i].Sex); printf("Age:%d\n",people->Data[i].Age); printf("Tel:%s\n",people->Data[i].Tel); printf("Add:%s\n",people->Data[i].Address); } printf("\n"); } //增加成员 void Add_person(Book *people) { assert(people); int i = 0; if (people->count > PeopleMax) { printf("通讯录已满!\n"); return; } printf("请输入姓名:\n"); scanf("%s", (people->Data[people->count]).Name); printf("请输入性别:\n"); scanf("%s", (people->Data[people->count]).Sex); printf("请输入年龄:\n"); scanf("%d", &(people->Data[people->count]).Age); printf("请输入联系方式:\n"); scanf("%s", (people->Data[people->count]).Tel); //for(;i<people->count;++i) //{ // if(strcmp(people->Data[i].Tel, people->Data[people->count].Tel) == 0) // { // printf("输入有误或联系人已存在!\n"); // } // return; //} printf("请输入住址:\n"); scanf("%s", (people->Data[people->count]).Address); printf("增加成功!\n"); people->count++; printf("count = %d\n",people->count); } //删除成员 void Del_person(Book* people) { if(people == NULL) { printf("空通讯录!\n"); return; } int ret = Find_person(people); if(ret != -1) { int i = ret; for(;i<people->count-1;++i) { people->Data[i] = people->Data[i+1]; } people->count--; printf("count = %d\n",people->count); } else { printf("没有该成员!\n"); } } //查找成员 int Find_person(Book* people) { assert(people); char name[20]; scanf("%s",name); int i = 0; for(;i<people->count;++i) { if(strcmp(people->Data[i].Name,name) == 0) { printf("Name:%s\tSex:%s\tAge:%d\tTel:%s\tAdd\n",people->Data[i].Name,people->Data[i].Sex,people->Data[i].Age,people->Data[i].Tel,people->Data[i].Address); return i; printf("下标为 %d\n",i); } } printf("没有找到该联系人!\n"); return -1; } //修改成员 void Change_person(Book* people) { assert(people); int ret = Find_person(people); if(ret != -1) { printf("Name->:\n"); scanf("%s",people->Data[ret].Name); printf("Sex->:\n"); scanf("%s",people->Data[ret].Sex); printf("Age->:\n"); scanf("%d",&(people->Data[ret]).Age); printf("Tel->:\n"); scanf("%s",people->Data[ret].Tel); printf("Add->:\n"); scanf("%s",people->Data[ret].Address); } else { printf("没有该成员!\n"); return; } } void BubbleSort_person(Book* people) { if(people == NULL) { printf("空通讯录!\n"); return; } int i = 0; for(;i<people->count-1;++i) { int j = 0; for(;j<people->count-1-i;++j) { if(strcmp(people->Data[j].Name,people->Data[j+1].Name) > 0) { char tmp[NameMax]; strcpy(tmp,people->Data[j].Name); strcpy(people->Data[j].Name,people->Data[j+1].Name); strcpy(people->Data[j+1].Name,tmp); } } } show_person(people); } void menu() { printf("*************通讯录**********************\n"); printf("*********1 增加成员*********************\n"); printf("*********2 删除成员*********************\n"); printf("*********3 查找成员*********************\n"); printf("*********4 修改成员*********************\n"); printf("*********5 显示成员*********************\n"); printf("*********6 清空成员*********************\n"); printf("*********7 排序*********************\n"); printf("*********8 退出*********************\n"); } int main() { Book people; Initbook(&people); while(1) { menu(); int n = 0; scanf("%d",&n); switch(n) { case 1: Add_person(&people); break; case 2: Del_person(&people); break; case 3: Find_person(&people); break; case 4: Change_person(&people); break; case 5: show_person(&people); break; case 6: Initbook(&people); break; case 7: BubbleSort_person(&people); break; case 8: exit(0); default: { printf("input error!\n"); break; } } } return 0; }Makefile
Address:Address.o
gcc -o $@ $^
.c.o:
gcc -c $<
.PHONY:clean
clean:
rm *.o Address
相关文章推荐
- 实现一个通讯录; 通讯录可以用来存储1000个人的信息,每个人的信息包括: 姓名、性别、年龄、电话、住址 提供方法: 1. 添加联系人信息 2. 删除指定联系人信息 3. 查找指定
- 用c语言实现一个通讯录; 通讯录可以存储1000个人的信息,信息包括姓名、性别、年龄、电话、住址 提供方法: 1.添加联系人信息 2.删除指定联系人信息 3.查找指定联系人信息 4.修改指定联系&
- 实现一个通讯录,可以用来存储1000个人的信息,每个人的信息包括:姓名,年龄,性别,电话,住址
- //实现中等难度通讯录。需求: //1、定义联系人类Contact。实例变量:姓名(拼音,首字母大写)、性别、电话号码、住址、分组名称、年龄。方法:自定义初始化方法(姓名、电话号码)、显示联系人信息
- 实现中等难度通讯录。需求: 1、定义联系人类AddressContact。实例变量:姓名(拼音,首字母大写)、性别、电话号码、住址、分组名称、年龄。方法:自定义初始化方法(姓名、电话号码)、显示联系人
- 实现简单通讯录操作。 1、定义联系人类AddressPerson。实例变量:姓名、性别、电话号码、住址、分组名称。方法:自定义初始化方法(姓名、电话号码)、显示联系人信息 2、在main.m中定义可变
- 用C语言模拟实现一个通讯录,要求实现其添加、删除、修改、查找、显示和排序联系人信息的功能
- 实现中等难度通讯录。需求: 1、定义联系人类AddressContact。实例变量:姓名(拼音,首字母大写)、性别、电话号码、住址、分组名称、年龄。方法:自定义初始化方法(姓名、电话号码)、显示联系人
- 笔试题:创建一个单链表,结点包含学生的学号,姓名,性别,年龄信息.写几个程序,实现按学生学号插入,查询,删除等操作.
- 编写一个学生信息管理系统:学生信息包括有(学生学号、姓名、性别、手机号码),系统以学生对象数组的方式存储学生信息 (初始数组为10个元素,每当数组存储满时,需要进行扩容,规则可以为翻倍也可以固定增长
- 一个学生的信息是:姓名,学号,性别,年龄等信息,用一个链表,把这些学生信息连在一起, 给出一个age, 在些链表中删除学生年龄等于age的学生信息
- 学生社团管理系统 任务:通过此系统可以实现如下功能(包含但不限于以下功能,可自行设计): 1、社团信息包括:社团编号、社团名称、成立时间…… 2、学生信息包括:学号、姓名、性别、年级、专业…… 3
- 学生信息是:姓名,学号,性别,年龄,用一个链表,把这些信息连在一起,给出一个age, 在些链表中删除学生年龄等于age的学生信息。
- 地磅称量系统之(53)在封装对象的类库中实现包括IDataErrorInfo接口提供的所有方法和并且扩展对异常具有添加和删除功能的基本业务对象基类
- 如何增加一个通讯录信息,信息包括姓名,地址和电话
- 一个学生的信息是:姓名,学号,性别,年龄等信息,用一个链表,把这些学生信息连在一起, 给出一个age, 在些链表中删除学生年龄等于age的学生信息。
- 一个学生的信息是:姓名,学号,性别,年龄等信息,用一个链表,把这些学生信息连在一起, 给出一个age, 在 链表中删除学生年龄等于age的学生信息。
- 【通讯录系统】:实现一个通讯录(可添加、删除、修改、查找、显示、清空、排序)
- 将通讯录类(姓名、电话),添加归档和解归档方法,即,添加储存信息到磁盘的方法。
- 用MySQL语法建 一个学生表,包括学生姓名、性别、年龄、班级信息。