作用:函數(shù)的測試
#define _CRT_SECURE_NO_WARNINGS 1
#include"Contacts.h"
void menu() {printf("*********************************************\n");
printf("******** 1.add 2.del ********\n");
printf("******** 3.query 4.modif ********\n");
printf("******** 5.show 6.empty ********\n");
printf("******** 7.sort 0.exit ********\n");
printf("********************************************\n");
}
int main() {int input = 0;
Contacts con;
initContaces(&con);
do {menu();
scanf("%d", &input);
switch (input) {case 1:
addContacts(&con);
break;
case 2:
delContacts(&con);
break;
case 3:
queryContacts(&con);
break;
case 4:
modifContacts(&con);
break;
case 5:
showContacts(&con);
break;
case 6:
emptyContacts(&con);
break;
case 7:
sortContacts(&con);
break;
case 0:
printf("退出通訊錄\n");
break;
default:
printf("輸入錯誤\n");
break;
}
} while (input);
return 0;
}
2.Contacts.c作用:函數(shù)體的實現(xiàn)
#define _CRT_SECURE_NO_WARNINGS 1
#include"Contacts.h"
void initContaces(Contacts* con) {assert(con);
con->sz = 0;
memset(con->date, 0, sizeof(con->date));
}
void addContacts(Contacts* con) {assert(con);
if (con->sz == 100) {printf("通訊錄已滿無法添加\n");
return;
}
printf("請輸入要添加聯(lián)系人姓名:>");
scanf("%s", con->date[con->sz].name);
printf("請輸入要添加聯(lián)系人年齡:>");
scanf("%d", &(con->date[con->sz].age));
printf("請輸入要添加聯(lián)系人性別:>");
scanf("%s", con->date[con->sz].sex);
printf("請輸入要添加聯(lián)系人地址:>");
scanf("%s", con->date[con->sz].addr);
printf("請輸入要添加聯(lián)系人電話號:>");
scanf("%s", con->date[con->sz].tel);
con->sz++;
}
void showContacts(Contacts* con) {assert(con);
int i = 0;
printf("%-20s\t%-4s\t%-5s\t%-30s\t%-12s\n ", "姓名","年齡","性別","地址","電話號");
for (i = 0; i< con->sz; i++) {printf("%-20s\t%-4d\t%-5s\t%-30s\t%-12s\n ", con->date[i].name,
con->date[i].age,
con->date[i].sex,
con->date[i].addr,
con->date[i].tel);
}
}
int findContacts(Contacts* con, char* name) {int i = 0;
int ret = 0;
for (i = 0; i< con->sz; i++) {if (strcmp(name, con->date[i].name) == 0) { ret = i;
return ret;
}
}
return -1;
}
void delContacts(Contacts* con) {assert(con);
char name[20];
printf("請輸入要刪除聯(lián)系人的姓名\n");
scanf("%s", name);
int temp=findContacts(con, name);
if (-1 == temp) {printf("找不到姓名為%s的聯(lián)系人\n", name);
return;
}
else {for (int i = temp; i< con->sz - 1; i++) { con->date[i] = con->date[i + 1];
}
con->sz--;
}
}
void queryContacts(Contacts* con) {printf("請輸入要查找的聯(lián)系人的姓名\n");
char name[20];
scanf("%s", name);
int temp = findContacts(con, name);
if (-1 == temp) {printf("找不到姓名為%s的聯(lián)系人\n", name);
return;
}
else {printf("%-20s\t%-4s\t%-5s\t%-30s\t%-12s\n ", "姓名", "年齡", "性別", "地址", "電話號");
printf("%-20s\t%-4d\t%-5s\t%-30s\t%-12s\n ", con->date[temp].name,
con->date[temp].age,
con->date[temp].sex,
con->date[temp].addr,
con->date[temp].addr);
}
}
void modifContacts(Contacts* con) {printf("請輸入要修改的聯(lián)系人的姓名\n");
char name[20];
scanf("%s", name);
int temp = findContacts(con, name);
if (-1 == temp) {printf("找不到姓名為%s的聯(lián)系人\n", name);
return;
}
else {printf("請輸入修改后聯(lián)系人姓名:>");
scanf("%s", con->date[temp].name);
printf("請輸入修改后聯(lián)系人年齡:>");
scanf("%d", &(con->date[temp].age));
printf("請輸入修改后聯(lián)系人性別:>");
scanf("%s", con->date[temp].sex);
printf("請輸入修改后聯(lián)系人地址:>");
scanf("%s", con->date[temp].addr);
printf("請輸入修改后聯(lián)系人電話號:>");
scanf("%s", con->date[temp].tel);
}
}
int cmp(const void* e1, const void* e2) {Contacts* c1 = (Contacts*)e1;
Contacts* c2 = (Contacts*)e2;
return strcmp(c1->date->name, c2->date->name);
}
void sortContacts(Contacts* con) {qsort(con, con->sz, sizeof(con->date[0]), cmp);
}
void emptyContacts(Contacts* con) {con->sz = 0;
}
3.Contacts.h作用:函數(shù)的聲明
#pragma once
#include#include#include
#define MAX 100
#define NAME_MAX 20
#define SEX_MAX 5
#define ADDR_MAX 30
#define TEL_MAX 12
typedef struct people {char name[NAME_MAX];
int age;
char sex[SEX_MAX];
char addr[ADDR_MAX];
char tel[TEL_MAX];
}people;
typedef struct Contacts {people date[MAX];
int sz;
}Contacts;
//初始化結(jié)構(gòu)體
void initContaces(Contacts* con);
//添加
void addContacts(Contacts* con);
//展示
void showContacts(Contacts* con);
//刪除
void delContacts(Contacts* con);
//查詢
void queryContacts(Contacts* con);
//修改
void modifContacts(Contacts* con);
//排序
void sortContacts(Contacts* con);
void emptyContacts(Contacts* con);
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
文章名稱:C語言練習(xí):通訊錄的實現(xiàn)-創(chuàng)新互聯(lián)
標(biāo)題網(wǎng)址:http://www.rwnh.cn/article4/cedsoe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、網(wǎng)站改版、企業(yè)網(wǎng)站制作、網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、手機網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容