<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了C語言實現通訊錄管理系統的具體程式碼,供大家參考,具體內容如下
設計一個通訊錄管理系統,以實現以下功能:資訊新增、查詢、修改、刪除、排序等功能。
1) 每條資訊至包含 :姓名、電話、工作單位等資訊
2) 作為一個完整的系統,應具有友好的介面和較強的容錯能力
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <windows.h> #define LEN sizeof(struct list) #define DATA a[i].num,a[i].name,a[i].job,a[i].address #define FORMAT "tt || %-12d %-12s %-19s %-20s ||n" void in(); void menu(); void search(); void del(); void show(); void modify(); void insert(); void order(); void total(); struct list { int num; //號碼 char name[15]; //姓名 char job[30]; //工作單位 char address[30]; //地址 }; struct list a[50]; void main() { system("color 5en"); menu(); int n; scanf("%d", &n); while (n) { switch (n) { case 1:in(); break; case 2:search(); break; case 3:del(); break; case 4:modify(); break; case 5:insert(); break; case 6:order(); break; case 7:total(); break; case 8:show(); break; default:break; } getch(); menu();//執行完後顯示選單 scanf("%d", &n); } } void menu() { system("cls"); printf("nnn"); printf("ttttt**************************************n"); printf("ttttt************通訊錄管理系統************n"); printf("ttttt======================================n"); printf("ttttt* 1.錄入聯絡人資訊 *n"); printf("ttttt* 2.查詢聯絡人資訊 *n"); printf("ttttt* 3.刪除聯絡人資訊 *n"); printf("ttttt* 4.修改聯絡人資訊 *n"); printf("ttttt* 5.插入聯絡人資訊 *n"); printf("ttttt* 6.排序 *n"); printf("ttttt* 7.統計聯絡人總數 *n"); printf("ttttt* 8.顯示所有聯絡人 *n"); printf("ttttt* 0.退出系統 *n"); printf("ttttt======================================n"); printf("ttttt**************************************n"); printf("ttttt 請選擇(0-8):"); } void in() { int i, m = 0; char ch[2]; FILE* fp; if ((fp = fopen("data.txt", "a+")) == NULL) { printf("tt 檔案不存在! n"); return; } while (!feof(fp)) { if (fread(&a[m], LEN, 1, fp) == 1) m++; } fclose(fp); if (m == 0) { printf("tt 檔案中沒有記錄!n"); } else { show(); } if ((fp = fopen("data.txt", "a+")) == NULL) { printf("tt 檔案不存在!n"); return; } printf("tt 是否輸入聯絡人資訊(y/n):"); scanf("%s", ch); while (strcmp(ch, "Y") == 0 || strcmp(ch, "y") == 0) { printf("tt 電話:"); scanf("%d", &a[m].num); for (i = 0; i < m; i++) { if (a[i].num == a[m].num) { printf("tt 此使用者已經存在了,按任意鍵繼續!"); getch(); fclose(fp); return; } } printf("tt 姓名:"); scanf("%s", &a[m].name); printf("tt 工作單位:"); scanf("%s", &a[m].job); printf("tt 地址:"); scanf("%s", &a[m].address); if (fwrite(&a[m], LEN, 1, fp) != 1) { printf("tt 不能儲存"); getch(); } else { printf("tt %s 已被儲存!n", a[m].name); m++; } printf("tt 繼續?(y/n):"); scanf("%s", ch); } fclose(fp); printf("tt 結束錄入!n"); } void del() { show(); FILE* fp; int nmb, i, j, m = 0; int t = 1; //判斷是否正常結束 char ch[2]; if ((fp = fopen("data.txt", "r+")) == NULL) { printf("tt n檔案不存在n"); return; } while (!feof(fp)) { if (fread(&a[m], LEN, 1, fp) == 1) m++; } fclose(fp); if (m == 0) { printf("tt n檔案沒有記錄!n"); return; } printf("tt 輸入要刪除的聯絡人的電話號碼:"); scanf("%d", &nmb); for (i = 0; i < m; i++) if (nmb == a[i].num) { printf("tt 找到這條記錄是否刪除(y/n):"); scanf("%s", &ch); if (strcmp(ch, "Y") == 0 || strcmp(ch, "y") == 0) { for (j = i + 1; j < m; j++) a[j - 1] = a[j]; m--; if ((fp = fopen("data.txt", "w+")) == NULL) { printf("tt 檔案不存在n"); return; } for (j = 0; j < m; j++) { if (fwrite(&a[j], LEN, 1, fp) != 1) { printf("tt 無法寫入檔案!刪除失敗!"); getch(); } } fclose(fp); printf("tt 刪除成功"); } else { fclose(fp); printf("tt 找到了記錄選擇不刪除"); } t = 0; //標誌找到該聯絡人 break; } if (t) printf("tt 沒有找到該聯絡人!n"); } void modify() { show(); FILE* fp; int i = 0, j = 0, m = 0, nmb; if ((fp = fopen("data.txt", "r+")) == NULL) { printf("tt 檔案不存在n"); return; } while (!feof(fp)) if (fread(&a[m], LEN, 1, fp) == 1) m++; if (m == 0) { printf("tt 檔案中沒有記錄"); fclose(fp); return; } printf("tt 請輸入要修改的聯絡人的電話號碼:"); scanf("%d", &nmb); for (i = 0; i < m; i++) if (nmb == a[i].num) //檢索是否有要相應的聯絡人 { printf("tt 找到該名聯絡人,將修改他的資訊!n"); printf("tt 電話:"); scanf("%d", &a[i].num); printf("tt 姓名:"); scanf("%s", &a[i].name); printf("tt 工作單位:"); scanf("%s", &a[i].job); printf("tt 住址:"); scanf("%s", &a[i].address); printf("tt 修改成功!"); if ((fp = fopen("data.txt", "w+")) == NULL) { printf("tt 不能開啟"); return; } for (j = 0; j < m; j++) //寫入新的資訊 if (fwrite(&a[j], LEN, 1, fp) != 1) { printf("tt 不能開啟"); getch(); } fclose(fp); break; } if (i == m) printf("tt 沒有找到該名聯絡人"); } void search() { show(); FILE* fp; int nmb, i, m = 0; if ((fp = fopen("data.txt", "r+")) == NULL) { fclose(fp); printf("ntt 檔案不存在!n"); return; } while (!feof(fp)) { if (fread(&a[m], LEN, 1, fp) == 1) m++; } if (m == 0) { fclose(fp); printf("ntt 檔案沒有記錄!n"); return; } printf("ntt 請輸入聯絡人的電話號碼!:"); scanf("%d", &nmb); for (i = 0; i < m; i++) if (nmb == a[i].num) { printf("tt 電話 姓名 工作單位 住址 n"); printf(FORMAT, DATA); break; } if (i == m) printf("tt 沒有找到記錄!n"); fclose(fp); } void show() { FILE* fp; int i, m = 0; if ((fp = fopen("data.txt", "r+")) == NULL) { printf("ntt 檔案不存在n"); return; } while (!feof(fp)) { if (fread(&a[m], LEN, 1, fp) == 1) m++; } fclose(fp); printf("tt ---------------------------------------------------------------------------n"); printf("tt || 電話 姓名 工作單位 住址 ||n"); for (i = 0; i < m; i++) { printf(FORMAT, DATA); } printf("tt ---------------------------------------------------------------------------n"); } void insert() { show(); FILE* fp; int i, j, k, m = 0, nmb; if ((fp = fopen("data.txt", "r+")) == NULL) { printf("tt 檔案不存在! n"); return; } while (!feof(fp)) if (fread(&a[m], LEN, 1, fp) == 1) m++; if (m == 0) { printf("tt 檔案中沒有記錄!n"); fclose(fp); return; } printf("tt 請輸入要插入哪個號碼的位置之後:"); scanf("%d", &nmb); for (i = 0; i < m; i++) if (nmb == a[i].num) break; if (m == i) { printf("tt 沒有找到改電話號碼"); fclose(fp); return; } for (j = m - 1; j > i; j--) a[j + 1] = a[j]; printf("tt 請輸入要插入的通訊錄資訊:n"); printf("tt 電話:"); scanf("%d", &nmb); for (k = 0; k < m; k++) if (a[k].num == nmb) { printf("tt 電話已經存在,請按任意鍵繼續!"); getch(); fclose(fp); return; } a[i + 1].num = nmb; printf("tt 姓名:"); scanf("%s", &a[i + 1].name); printf("tt 工作:"); scanf("%s", &a[i + 1].job); printf("tt 地址:"); scanf("%s", &a[i + 1].address); printf("tt 插入成功,請輸入任意鍵返回主介面!"); if ((fp = fopen("data.txt", "w+")) == NULL) { printf("tt 不能開啟!"); return; } for (k = 0; k <= m; k++) if (fwrite(&a[k], LEN, 1, fp) != 1) { printf("tt 不能儲存!"); getch(); } fclose(fp); } void order() { FILE* fp; struct list b; int i = 0, j = 0, m = 0; printf("n"); if ((fp = fopen("data.txt", "r+")) == NULL) { printf("tt 檔案不存在n"); return; } while (!feof(fp)) if (fread(&a[m], LEN, 1, fp) == 1) m++; fclose(fp); if (m == 0) { printf("tt 檔案中沒有記錄n"); return; } for (i = 0; i < m - 1; i++) for (j = i + 1; j < m; j++) if (a[i].num < a[j].num) { b = a[i]; a[i] = a[j]; a[j] = b; } if ((fp = fopen("data.txt", "w+")) == NULL) { printf("tt 檔案不存在!n"); return; } for (i = 0; i < m; i++) if (fwrite(&a[i], LEN, 1, fp) != 1) { printf("tt 不能儲存檔案!n"); getch(); } fclose(fp); show(); printf("tt 儲存成功n"); } void total() { FILE* fp; int m = 0; if ((fp = fopen("data.txt", "r+")) == NULL) { printf("tt 檔案不存在!n"); return; } while (!feof(fp)) if (fread(&a[m], LEN, 1, fp) == 1) m++; if (m == 0) { printf("ntt 沒有聯絡人!n"); fclose(fp); return; } fclose(fp); show(); printf("tt 您一共擁有 %d 位聯絡人", m); }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45