计划完成提醒系统C语言,通信录管理计划系统C语言知识程序设计.doc
#+
C語言程序設計
——通訊錄管理系統
實
習
報
告
組長: 姚士平 組員: 胡恒山 芮青榮
南京郵電大學電氣信息工程B100509班
2011
※實習前論:
實習的目的、要求與內容
一、實習的目的和要求
經過了一個學期對C語言的學習,大家對C語言有了一定的認識。在此基礎上,為了加深對C語言課程所學知識的理解,進一步鞏固C語言算法規則,學會編制結構清晰、風格良好、數據結構適當的C程序,從而具備解決綜合性問題的能力,特設此課程實習內容,通過完成一項具體的程序來檢驗對所學知識的掌握情況。要求能夠完成一項完整并且具有初步實用性,經編寫調試,確保能夠正常運行的小型程序。
二、實習所涉及的內容
實習內容所涉及的均為C語言的基礎知識,包括:數據類型(整型、實型、字符型、指針、數組、結構等);運算類型(算術運算、邏輯運算、自增自減運算、賦值運算等);程序結構(順序結構、判斷選擇結構、循環結構);大程序的功能分解方法(即函數定義與調用)等,以及進一步掌握各種函數的應用以及文件的讀寫操作等。
※實習細述:
通訊錄管理系統
一、程序功能:
1、完成通訊錄信息的管理,包括添加、修改、刪除、查詢功能。盡量豐富聯系人的各項信息。
2、能夠根據聯系人的信息單獨或分類查詢。
3、聯系人的生日提醒功能。
二、設計思路
所有成員的記錄用結構體數組存儲,每個結構體包括姓名、性別、生日、電話號碼、電子郵箱、家庭住址及分類七個字符型數組;上述的各項功能由定義函數分別實現,由主函數控制各個函數的調用;整個程序產生于文本界面,通過一些字符簡單對界面進行裝飾。具體的各個函數設計思路如下:
1、導入通訊錄函數:通過fopen函數打開指定文件,并用fread函數將文件內的數據讀入結構體數組中,這兩個標準庫函數都定義在stdio.h頭文件中。整個函數的返回值為整型i,用來并表示導入的數據成員個數,而后將該值賦給全局變量count用來計數。
2、保存文件函數:通過將文件名字符串作為參數傳入,用fwrite函數將當前結構體數組中的全部數據寫入文件中并關閉文件。該函數無返回值。
3、分類顯示成員信息函數:無參數傳入,無返回值,用戶根據提示輸入指令,用switch語句分析指令并遍歷所有結構體數據,將符合的數據輸出。該函數也沒有返回值。
4、錄入新成員信息函數:該函數沒有參數,通過提示用戶輸入數據;當輸入的姓名或電話號碼重復時,提示用戶重復并重新輸入;被錄入一個完整的新數據后讓全局變量n自增,并將其作為函數的返回值返回。
5、查找記錄函數:將用戶要找的成員姓名作為參數傳入,遍歷所有結構體并找出符合的輸出,若輸出成功則可以繼續查找,用戶所輸姓名不存在則輸出用戶名不存在。
6、刪除記錄函數:將用戶要刪除的成員姓名作為參數傳入,遍歷所有結構體并找出符合的刪除,并將后面的所有數據向前移動一個位置,返回值同查找記錄函數。
7、修改記錄函數:將用戶要修改的成員姓名作為參數傳入,遍歷所有結構體并找出符合的,依次提示修改項目,由用戶輸新數據并保存,返回值同查找記錄函數。
8、撥號功能函數:無參數傳入,顯示已存入的所有成員的姓名,由用戶選擇撥打電話的姓名,依次顯示電話號碼的各個數字,并用Sleep函數設置一定時間的延時以表現號碼依次輸出的效果,該函數包含在windows.h頭文件中。成功撥號則返回整數1,輸入了錯誤的姓名則返回0。
9、主函數:用switch語句來判斷用戶輸入的指令,轉向具體的函數來執行,并根據函數的返回值判斷執行結果并予以提示。主函數中用exit(0);語句結束程序,并在結束前提示用戶保存數據。
整個程序由上述9個函數組成。此外,源程序將結構體數組和計數變量count以及文件指針fp設為全局變量,目的是為了讓所有函數都能正常使用這幾個變量,保證整個程序的正常運行。
三、程序源代碼及注釋
#include
#include
#include
#include
#define count 20
typedef struct Birthday
{
int day;
int month;
int year;
}Birthday;
typedef struct Student
{
char name[10];
char sex[5];
Birthday date;
char phone[10];
char email[10];
char address[10];
char others[10];
}stud;
FILE *fp;
FILE *fp2;
FILE *fp3;
int n=0;
總結
以上是生活随笔為你收集整理的计划完成提醒系统C语言,通信录管理计划系统C语言知识程序设计.doc的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言输入r1 r2垫片的面积,2011
- 下一篇: 腾讯大王卡和联通大王卡有什么区别(腾讯大