c语言手机通讯录退出程序,通讯录小程序(C/C++)C语言练习小程序
實(shí)現(xiàn)一個(gè)通訊錄;
通訊錄可以用來(lái)存儲(chǔ)1000個(gè)人的信息,每個(gè)人的信息包括:
姓名、性別、年齡、電話、住址
實(shí)現(xiàn)功能:
1.?添加聯(lián)系人信息
2.?刪除指定聯(lián)系人信息
3.?查找指定聯(lián)系人信息
4.?修改指定聯(lián)系人信息
5.?顯示所有聯(lián)系人信息
6.?清空所有聯(lián)系人
7.?以名字排序所有聯(lián)系人
程序說(shuō)明:
分模塊實(shí)現(xiàn)
Phonelist.h 頭文件——存放函數(shù)聲明
fun.c ——函數(shù)實(shí)現(xiàn)
test.c——主函數(shù)
!Phonelist.h!//Phonelist.h
#pragma?once
#ifndef?__ARROPT_H__
#define?__ARROPT_H__
typedef?struct?PHONE
{
char?Name[10];
int?Age;
char?Sex[3];??//男/女
char?Tele[13];
char?Address[20];
//struct?PHONE?*next;
}PHONE,*Phone;
void?ADD(PHONE?*p);//添加
int?DEL(Phone?p,?char*);//刪除
void?SEEK(Phone?p,?char?*);//查找
void?REVISE(Phone?p,?char?*);//修改
void?SHOW(Phone?p);//顯示
void?FREE_ALL(Phone?p);//清空
void?SORT(Phone?p,?const?size_t?);//用快排排序必須將結(jié)構(gòu)體第一個(gè)成員設(shè)為?Name,才可以實(shí)現(xiàn)
void?menu();
#endif??//__ARROPT_H__
fun.c ——函數(shù)實(shí)現(xiàn)//fun.c
#include
#include
#include
#include"Phonelist.h"
#define?MAX?1000??//通訊錄最大存儲(chǔ)人數(shù)
//*****************添加**************
void?ADD(Phone?p)
{
printf("請(qǐng)輸入要錄入聯(lián)系人的姓名\n");
scanf_s("%s",?p->Name,?10);//用scanf_s?函數(shù)實(shí)現(xiàn)字符串的輸入
printf("請(qǐng)輸入要錄入聯(lián)系人的性別(男/女)\n");
scanf_s("%s",?p->Sex,3);
printf("請(qǐng)輸入要錄入聯(lián)系人的年齡\n");
scanf_s("%d",?&p->Age);
printf("請(qǐng)輸入要錄入聯(lián)系人的電話\n");
scanf_s("%s",p->Tele,?13);
printf("請(qǐng)輸入要錄入聯(lián)系人的住址\n");
scanf_s("%s",?p->Address,?20);
}
//****************刪除**************************
int?DEL(Phone?p,char?*name)
{
int?i?=?0;
int?tmp?=?0;
Phone?j?=?p;
while?(i++?
{
if?(strcmp(j->Name,?name)?==?0)
{
j->Age?=?0;
tmp?=?1;
break;
}
j++;
}
if?(tmp?==?1)
{
printf("%s信息刪除成功!\n",?name);
return?1;
}
else
{
printf("%s信息刪除失敗,無(wú)此人!\n",?name);
return?0;
}
}
//*********查找*************
void?show_one(Phone?j)
{
printf("Name:?%s??",?j->Name);
printf("??Age:?%d??",?j->Age);
printf("??Tele:?%s??",?j->Tele);
printf("??Sex:?%s??",?j->Sex);
printf("??Address:?%s??\n",?j->Address);
}
void?SEEK(Phone?p,?char?*name)
{
int?i?=?0;
int?tmp?=?0;
Phone?j?=?p;
while?(i++?
{
if?(strcmp(j->Name,?name)?==?0)
{
tmp?=?1;
break;
}
j++;
}
if?(tmp?==?1)
{
printf("%s信息存在!\n",?name);
show_one(j);
}
else
printf("%s信息查找失敗,無(wú)此人!\n",?name);
}
//***********修改**********
void?REVISE(Phone?p,?char?*name)
{
int?i?=?0;
int?tmp?=?0;
Phone?j?=?p;
while?(i++?
{
if?(strcmp(j->Name,?name)?==?0)
{
ADD(j);
tmp?=?1;
break;
}
j++;
}
if?(tmp?==?1)
printf("%s信息修改成功!\n",?name);
else
printf("%s信息修改失敗,無(wú)此人!\n",?name);
}
//************顯示所有聯(lián)系人********
void?SHOW(Phone?p)
{
Phone?j?=?p;
int?i?=?0;
int?count?=?0;
while?(i++?
{
if?(j->Age?!=?0)
{
show_one(j);
count++;
}
j++;
}
if(0==count)
printf("通訊錄里還沒有人,請(qǐng)選擇1,添加您的好友\n");
}
//************清空****************
void?FREE_ALL(Phone?p)
{
Phone?j?=?p;
int?i?=?0;
while?(i?Age?!=?0)
{
j->Age?=?0;
j++;
}
printf("通訊錄已清空!\n");
}
//*************以名字排序所有聯(lián)系人********
void?SORT(Phone?p,const?size_t?num)
{
qsort(p,?num,?sizeof(*p),?strcmp);//用快排排序必須將結(jié)構(gòu)體第一個(gè)成員設(shè)為?Name,才可以實(shí)現(xiàn)
}
//***************菜單******************
void?menu()
{
printf("***********************************************\n");
printf("*??????????????????MENU???????????????????????*\n");
printf("***********************************************\n");
printf("*???????1.添加聯(lián)系人信息??????????????????????*\n");
printf("*???????2.刪除指定聯(lián)系人信息??????????????????*\n");
printf("*???????3.查找指定聯(lián)系人信息??????????????????*\n");
printf("*???????4.修改指定聯(lián)系人信息??????????????????*\n");
printf("*???????5.顯示所有聯(lián)系人信息??????????????????*\n");
printf("*???????6.清空所有聯(lián)系人??????????????????????*\n");
printf("*???????7.以名字排序所有聯(lián)系人????????????????*\n");
printf("*???????0.退出????????????????????????????????*\n");
printf("***********************************************\n");
printf("***********************************************\n");
printf("請(qǐng)輸入選擇序號(hào):->");
}
test.c——主函數(shù)#include
#include
#include
#include"Phonelist.h"
#define?MAX?1000
PHONE?PEO[MAX]?=?{0};
int?main()
{
int?choose?=?1;
int?i?=?0;
int?ret?=?0;
while?(choose)
{
menu();
scanf_s("%d",?&choose);
char?name[10];
if?(choose?>=?0?&&?choose?
{
switch?(choose)
{
i?=?0;
case?1:
if?(PEO[i].Age?==?0?&&?i?
ADD(&PEO[i++]);
break;
case?2:
printf("請(qǐng)輸入要?jiǎng)h除學(xué)生的名字\n");
scanf_s("%s",?name,?10);
ret?=?DEL(PEO,?name);
if?(ret?==?1)
i--;
break;
case?3:
printf("請(qǐng)輸入要查找學(xué)生的名字\n");
scanf_s("%s",?name,?10);
SEEK(PEO,?name);
break;
case?4:
printf("請(qǐng)輸入要修改學(xué)生的名字\n");
scanf_s("%s",?name,?10);
REVISE(PEO,?name);
break;
case?5:
SHOW(PEO);
break;
case?6:
FREE_ALL(PEO);
break;
case?7:
SORT(PEO,?i?-?1);
printf("排序結(jié)果:?\n");
SHOW(PEO);
break;
default:
break;
}
}
}
system("pause");
return?0;
}
總結(jié)
以上是生活随笔為你收集整理的c语言手机通讯录退出程序,通讯录小程序(C/C++)C语言练习小程序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux怎么永久保存,Linux系统中
- 下一篇: 微波炉定时c语言程序,微波炉控制系统c语