目錄
代碼詳解
項目特點
學習收穫
代碼測試
未來改進
總結
首頁 後端開發 C++ 練習 C:構建一個簡單的電話簿應用程序

練習 C:構建一個簡單的電話簿應用程序

Apr 03, 2025 pm 08:15 PM
c語言 ai switch c語言程式設計 2025

練習 C:構建一個簡單的電話簿應用程序

學習C語言編程的最佳途徑之一就是動手實踐。本文將帶您逐步完成一個我最近完成的項目:一個簡單的電話簿應用程序。此應用演示了C語言中的文件處理和基本數據管理,允許您添加、查看和刪除聯繫人。


代碼詳解

以下是完整代碼:

 <code class="c">#include <stdio.h> #include <string.h> // 函数声明void addcontact(char name[], char number[]); void viewcontacts(); void deletecontact(char name[]); int main() { int choice; char name[20]; char number[20]; printf("-- 欢迎使用您的电话簿! -- \n"); do { // 显示菜单printf("\n您想执行什么操作?\n"); printf("1. 创建新联系人\t 2. 查看电话簿\t 3. 删除联系人\t 4. 退出\n"); scanf("%d", &choice); switch (choice) { case 1: // 添加新联系人printf("很好,让我们创建一个新联系人:\n"); printf("请输入联系人的姓名:\n"); scanf("%s", name); printf("现在输入电话号码:\n"); scanf("%s", number); addcontact(name, number); break; case 2: // 查看电话簿printf("这是您的电话簿:\n"); viewcontacts(); break; case 3: // 删除联系人printf("请输入要删除的联系人的姓名:\n"); scanf("%s", name); deletecontact(name); break; } } while (choice != 4); // 循环直到用户选择“退出” return 0; } // 向电话簿添加联系人的函数void addcontact(char name[], char number[]) { FILE *pfile; pfile = fopen("phonebook.txt", "a"); if (pfile == NULL) { printf("打开电话簿失败。"); return; } fprintf(pfile, "姓名: %s \t 电话: %s\n", name, number); printf("联系人已创建!\n"); fclose(pfile); } // 查看电话簿中所有联系人的函数void viewcontacts() { char filecontent[200]; FILE *pfile; pfile = fopen("phonebook.txt", "r"); while (fgets(filecontent, sizeof(filecontent), pfile)) { printf("\n%s", filecontent); } fclose(pfile); } // 从电话簿中删除联系人的函数void deletecontact(char name[]) { FILE *pfile, *ptrash; char line[200], contactname[20], contactnumber[20]; pfile = fopen("phonebook.txt", "r"); ptrash = fopen("trash.txt", "w"); if (pfile == NULL || ptrash == NULL) { printf("打开文件失败。"); return; } while (fgets(line, sizeof(line), pfile)) { sscanf(line, "姓名: %s \t 电话: %s\n", contactname, contactnumber); if (strcmp(name, contactname) != 0) { fputs(line, ptrash); } } fclose(pfile); fclose(ptrash); // 将旧电话簿替换为更新后的版本remove("phonebook.txt"); rename("trash.txt", "phonebook.txt"); printf("联系人已删除。"); }</string.h></stdio.h></code>
登入後複製

項目特點

該程序實現了三個核心功能:

  1. 添加聯繫人:
    • 允許用戶輸入姓名和電話號碼。
    • 將聯繫人信息存儲到名為phonebook.txt的文件中。
  2. 查看聯繫人:
    • 讀取並顯示phonebook.txt文件中存儲的所有聯繫人信息。
  3. 刪除聯繫人:
    • 根據用戶輸入的姓名刪除聯繫人。
    • 通過創建臨時文件過濾掉已刪除的聯繫人,然後替換原始文件。

學習收穫

通過這個練習,我鞏固了以下C語言知識:

  1. 文件處理:熟練運用fopenfclose等文件操作函數,並處理文件打開失敗的情況。
  2. 字符串操作:使用strcmpsscanf等函數進行字符串比較和解析。
  3. 基本數據管理:學習如何在簡單的文本文件中存儲和管理數據,以及通過創建臨時文件來更新文件內容。

代碼測試

  1. 將代碼複製到.c文件中(例如phonebook.c ),並使用C編譯器(如GCC)編譯:
 <code class="bash">gcc -o phonebook phonebook.c</code>
登入後複製
  1. 運行編譯後的程序:
 <code class="bash">./phonebook</code>
登入後複製
  1. 按照屏幕提示添加、查看或刪除聯繫人。
  2. 打開phonebook.txt文件驗證數據是否正確存儲。

未來改進

這個程序是一個良好的開端,未來可以考慮以下改進:

  1. 輸入驗證:驗證電話號碼的有效性(例如,只包含數字),防止重複姓名。
  2. 用戶界面改進:提供更清晰的提示信息,允許輸入包含多個單詞的姓名(使用fgets代替scanf )。
  3. 增強文件處理:考慮數據加密以提高安全性,使用更結構化的文件格式(如CSV 或JSON)。
  4. 高級功能:添加搜索功能,按字母順序排序聯繫人。

總結

這個練習幫助我深入理解了C語言的文件處理和基本數據管理。這是一個簡單但實用的程序,可以作為更複雜項目的基礎。如果您是C語言初學者,強烈推薦您嘗試一下!這是一個有趣且有益的學習過程。

以上是練習 C:構建一個簡單的電話簿應用程序的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1422
52
Laravel 教程
1316
25
PHP教程
1268
29
C# 教程
1240
24
量化交易所排行榜2025 數字貨幣量化交易APP前十名推薦 量化交易所排行榜2025 數字貨幣量化交易APP前十名推薦 Apr 30, 2025 pm 07:24 PM

交易所內置量化工具包括:1. Binance(幣安):提供Binance Futures量化模塊,低手續費,支持AI輔助交易。 2. OKX(歐易):支持多賬戶管理和智能訂單路由,提供機構級風控。獨立量化策略平台有:3. 3Commas:拖拽式策略生成器,適用於多平台對沖套利。 4. Quadency:專業級算法策略庫,支持自定義風險閾值。 5. Pionex:內置16 預設策略,低交易手續費。垂直領域工具包括:6. Cryptohopper:雲端量化平台,支持150 技術指標。 7. Bitsgap:

香港數字貨幣交易所app怎麼下載安裝註冊詳細步驟2025 香港數字貨幣交易所app怎麼下載安裝註冊詳細步驟2025 Apr 30, 2025 pm 07:18 PM

香港數字貨幣交易所app的下載安裝和註冊過程非常簡單,用戶可以通過本文提供的官方app下載鏈接,快速獲取並使用這款應用。本文將詳細介紹如何下載、安裝和註冊香港數字貨幣交易所app,確保每位用戶都能順利完成操作。

deepseek官網是如何實現鼠標滾動事件穿透效果的? deepseek官網是如何實現鼠標滾動事件穿透效果的? Apr 30, 2025 pm 03:21 PM

如何實現鼠標滾動事件穿透效果?在我們瀏覽網頁時,經常會遇到一些特別的交互設計。比如在deepseek官網上,�...

輕鬆協議(Easeprotocol.com)將ISO 20022消息標准直接實現為區塊鏈智能合約 輕鬆協議(Easeprotocol.com)將ISO 20022消息標准直接實現為區塊鏈智能合約 Apr 30, 2025 pm 05:06 PM

這種開創性的開發將使金融機構能夠利用全球認可的ISO20022標準來自動化不同區塊鏈生態系統的銀行業務流程。 Ease協議是一個企業級區塊鏈平台,旨在通過易用的方式促進廣泛採用,今日宣布已成功集成ISO20022消息傳遞標準,直接將其納入區塊鏈智能合約。這一開發將使金融機構能夠使用全球認可的ISO20022標準,輕鬆自動化不同區塊鏈生態系統的銀行業務流程,該標準正在取代Swift消息傳遞系統。這些功能將很快在“EaseTestnet”上進行試用。 EaseProtocolArchitectDou

數字貨幣app有前途嗎 蘋果手機數字貨幣交易平台app下載TOP10 數字貨幣app有前途嗎 蘋果手機數字貨幣交易平台app下載TOP10 Apr 30, 2025 pm 07:00 PM

數字貨幣App的前景廣闊,具體體現在:1. 技術創新驅動功能升級,通過DeFi與NFT融合及AI與大數據應用提升用戶體驗;2. 監管合規化趨勢,全球框架完善及AML、KYC要求趨嚴;3. 功能多元化與服務拓展,整合借貸、理財等服務並優化用戶體驗;4. 用戶基數與全球化擴張,預計2025年用戶規模突破10億。

uniswap 鏈上提幣 uniswap 鏈上提幣 Apr 30, 2025 pm 07:03 PM

Uniswap用戶可從流動性池提取代幣到錢包,確保資產安全和流動性,過程需支付gas費,受網絡擁堵影響。

數字虛擬幣交易平台top10 安全可靠的十大數字貨幣交易所 數字虛擬幣交易平台top10 安全可靠的十大數字貨幣交易所 Apr 30, 2025 pm 04:30 PM

數字虛擬幣交易平台top10分別是:1. Binance,2. OKX,3. Coinbase,4. Kraken,5. Huobi Global,6. Bitfinex,7. KuCoin,8. Gemini,9. Bitstamp,10. Bittrex,這些平台均提供高安全性和多種交易選項,適用於不同用戶需求。

幣圈中的三巨頭是哪些?虛擬幣主流交易所APP前十名推薦 幣圈中的三巨頭是哪些?虛擬幣主流交易所APP前十名推薦 Apr 30, 2025 pm 06:27 PM

在幣圈中,所謂的三巨頭通常指的是三種最具影響力和廣泛使用的加密貨幣。這些加密貨幣在市場上佔據了重要的地位,並在交易量和市值方面都表現出色。同時,虛擬幣主流交易所APP也是投資者和交易者進行加密貨幣交易的重要工具。本文將詳細介紹幣圈中的三巨頭以及推薦前十名的虛擬幣主流交易所APP。

See all articles