Linux編譯安裝LNMP+redis+mongodb
阿新 • • 發佈:2021-07-07
題目要求:
通訊錄
電話、姓名、級別
char tel[100][12];
char name[100][10];
char level[100];
1.新增聯絡人
2.刪除聯絡人
3.查詢聯絡人
4.修改聯絡人
5.列出聯絡人
#include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <string.h> #include <getch.h> char name[100][10]; char tel[100][12]; char level[100]; void anykey_continue(void) { stdin->_IO_read_ptr = stdin->_IO_read_end; puts("按任意鍵繼續..."); getch(); stdin->_IO_read_ptr = stdin->_IO_read_end; } char* get_str(char* str,size_t size) { // 限制輸入的字元度 fgets(str,size,stdin); // 計算實際輸入的字元數量 size_t len = strlen(str); // 判斷最一個字元是否是'\n' if('\n' == str[len-1]) { // 刪除'\n' str[len-1] = '\0'; } else { // 清理輸入緩衝區 stdin->_IO_read_ptr = stdin->_IO_read_end; } return str; } void add(void) { int i = 0; while(level[i])i++; printf("請輸入姓名:"); get_str(name[i],10); printf("請輸入電話:"); get_str(tel[i],12); printf("請輸入級別:"); scanf("%c",&level[i]); printf("姓名:%s 電話:%s 級別:%c 新增聯絡人成功!\n", name[i],tel[i],level[i]); sleep(1); } void del(void) { char key[10]; printf("請輸入要刪除的聯絡人姓名:"); get_str(key,10); for(int i=0; i<100; i++) { if(level[i] && !strcmp(key,name[i])) { printf("姓名:%s 電話:%s 級別:%c 刪除聯絡人成功!\n",name[i],tel[i],level[i]); level[i] = 0; sleep(1); return; } } printf("未找到聯絡人,刪除失敗!\n"); sleep(1); } void mod(void) { char key[10]; printf("請輸入要修改的聯絡人姓名:"); get_str(key,10); for(int i=0; i<100; i++) { if(level[i] && !strcmp(key,name[i])) { puts("請重新輸入聯絡人資訊!"); printf("請輸入姓名:"); get_str(name[i],10); printf("請輸入電話:"); get_str(tel[i],12); printf("請輸入級別:"); scanf("%c",&level[i]); printf("姓名:%s 電話:%s 級別:%c 修改聯絡人成功!\n",name[i],tel[i],level[i]); sleep(1); return; } } printf("未找到聯絡人,無法修改!\n"); sleep(1); } void find(void) { char key[12]; printf("請輸入要查詢的關鍵字:"); get_str(key,12); for(int i=0; i<100; i++) { if(level[i] && (strstr(name[i],key) || strstr(tel[i],key))) { printf("%s %s %c\n",name[i],tel[i],level[i]); } } anykey_continue(); } void list(void) { for(int i=0; i<100; i++) { if(level[i]) { printf("%s %s %c\n",name[i],tel[i],level[i]); } } anykey_continue(); } int get_cmd(char start,char end) { puts("------------------"); printf("請輸入指令:"); for(;;) { char cmd = getch(); if(start <= cmd && cmd <= end) { printf("%c\n",cmd); return cmd; } } } void menu(void) { system("clear"); puts("*****歡迎使用通訊錄*****"); puts("1、新增聯絡人"); puts("2、刪除聯絡人"); puts("3、修改聯絡人"); puts("4、查詢聯絡人"); puts("5、顯示聯絡人"); puts("6、退出"); } int main() { for(;;) { menu(); switch(get_cmd('1','6')) { case '1': add(); break; case '2': del(); break; case '3': mod(); break; case '4': find(); break; case '5': list(); break; case '6': return 0; } } }