2、C語言實現通訊錄
阿新 • • 發佈:2019-05-11
scan *** define 初始化 退出 序號 test delete ddr
main函數入口:
//test.c #include<stdio.h> #include<stdlib.h> #include<string.h> #include "address.h" //顯示界面 void Interface_Display() { 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"); printf("\n"); printf("請輸入要操作的序號:\n"); } int main() { Con pcon; int choice=1; Init(&pcon); while (choice) { Interface_Display(); printf("請選擇操作序號:>"); scanf("%d", &choice); switch (choice) { case 1: Insert(&pcon); //插入 system("cls"); //清屏 break; case 2: Delete(&pcon); //刪除 system("cls"); break; case 3: Search(&pcon); //查找 break; case 4: Change(&pcon); //修改 system("cls"); break; case 5: Show(&pcon); //打印 break; case 6: Clear(&pcon); break; //清除 case 7: Sort(&pcon); // 以姓名排序 break; case 8: exit(0); //退出 default: printf("輸入有誤請重新輸入!\n"); break; } printf("\n"); } return 0; }
//address.h #pragma once #include<stdio.h> #include<stdlib.h> #include<string.h> #define MAX_SIZE 1000 typedef struct pCON { char name[20]; //姓名 char sex[2]; //性別 char age[3]; //年齡 char tele[15]; //電話 char address[25] ; //地址 }pCon; typedef struct CONTACT { struct pCON data[MAX_SIZE]; //存儲最大容量 int size; //當前存儲容量 }Con; void Init(Con* pcon); //初始化 void Insert(Con* pcon); //插入 void Delete(Con* pcon); //刪除 void Search(Con* pcon); //查找 void Change(Con* pcon); //更改 void Show(Con* pcon); //打印 void Clear(Con* pcon); //清除 void Sort(Con* pcon); //以姓名排序
//address.c #include"address.h" void Init(Con* pcon) //初始化 { if (pcon == NULL) { printf("非法輸入!\n"); return; } pcon->size = 0; } int find(Con *pcon, char *name) //根據姓名查找位置 { int i = 0; for (i = 0; i < pcon->size; i++) { if (strcmp(name, pcon->data[i].name)==0) { return i; } } return -1; } void Insert(Con *pcon) //插入 { if (pcon->size == MAX_SIZE) { printf("通訊錄已經滿了!\n"); return; } printf("請輸入名字:"); scanf("%s", (pcon->data[pcon->size]).name); printf("請輸入性別:"); scanf("%s", (pcon->data[pcon->size]).sex); printf("請輸入年齡:"); scanf("%s", (pcon->data[pcon->size]).age); printf("請輸入電話:"); scanf("%s", (pcon->data[pcon->size]).tele); printf("請輸入地址:"); scanf("%s", (pcon->data[pcon->size]).address); pcon->size++; } void Delete(Con *pcon) //刪除 { char name[20]; int ret = 0; printf("請輸入要刪除人的名字:"); scanf("%s", name); ret = find(pcon, name); if (ret!=-1) { int i = 0; for (i = ret; i < pcon->size-1; i++) { pcon->data[ret] = pcon->data[ret + 1]; } pcon->size--; printf("已刪除該聯系人\n"); } else { printf("此人不存在,刪除失敗!\n"); } } void Search(Con *pcon) //查找信息 { char name[20]; int ret = 0; printf("請輸入聯系人姓名\n"); scanf("%s", name); ret = find(pcon, name); if (ret!=-1) { printf("姓名:%s 性別: %s 年齡 :%s 電話:%s 地址: %s \n", pcon->data[ret].name, pcon->data[ret].sex, pcon->data[ret].age, pcon->data[ret].tele, pcon->data[ret].address ); } else { printf("沒有找到\n"); } } void Change(Con* pcon) //修改 { char name[20]; int ret = 0; printf("請輸入聯系人姓名:\n"); scanf("%s", name); ret = find(pcon, name); if (ret!=-1) { printf("請輸入修改後名字:"); scanf("%s", (pcon->data[ret]).name); printf("請輸入修改後性別:"); scanf("%s", (pcon->data[ret]).sex); printf("請輸入修改後年齡:"); scanf("%s", (pcon->data[ret]).age); printf("請輸入修改後電話:"); scanf("%s", (pcon->data[ret]).tele); printf("請輸入修改後地址:"); scanf("%s", (pcon->data[ret]).address); printf("已經修改\n"); } } void Show(Con * pcon) //顯示 { if (pcon->size == 0) { printf("通訊錄為空!\n"); } int i = 0; for (i = 0; i < pcon->size; i++) { printf("姓名:%s 性別: %s 年齡 :%s 電話:%s 地址: %s \n", pcon->data[i].name, pcon->data[i].sex, pcon->data[i].age, pcon->data[i].tele, pcon->data[i].address ); } } void Clear(Con *pcon) //清除 { pcon->size = 0; } void Sort(Con *pcon) //以名字排序 { int i = 0; int j = 0; for (i = 0; i < pcon->size-1; i++) { for (j = 0; j < pcon->size - i - 1; j++) { if (strcmp(pcon->data[j].name, pcon->data[j + 1].name)>0) { pCon tmp; tmp = pcon->data[j]; pcon->data[j] = pcon->data[j + 1]; pcon->data[j + 1] = tmp; } } } }
2、C語言實現通訊錄