資源簡(jiǎn)介
本代碼實(shí)現(xiàn)功能為簡(jiǎn)易通訊錄,用了數(shù)組和鏈表兩種方法實(shí)現(xiàn),功能一樣。本人數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)的成果,拿出來(lái)分享下

代碼片段和文件信息
#include?
#include
#include?
#include
#include
typedef?struct?Record?//個(gè)人信息
{
char?name[20];
char?street[20];
char?city[20];
char?eip[10];
char?state[20];
}recordtype;
typedef?struct?node//節(jié)點(diǎn)
{
recordtype?data;
struct?node?*next*prior;
}linklist;
#define?LEN?sizeof(linklist)
FILE?*fp;
int?flag;//flag為0表示無(wú)記錄,否則為1
void?mainmenu(linklist?*head);//主菜單
void?filemenu(linklist?*head);//文件菜單
void?save(linklist?*head);//保存
void?saveexit(linklist?*head);//保存并退出
void?editmenu(linklist?*head);//編輯菜單
void?newrecord(linklist?*head);//新添記錄
void?modif(linklist?*head);//修改
void?deletemenu(linklist?*head);//“刪除”主菜單
void?del(linklist?*p);//刪除某個(gè)確定編號(hào)
void?deleteall(linklist?*head);//刪除所有?
void?deleteone(linklist?*head);//刪除單個(gè)?
void?viewmenu(linklist?*head);//查看菜單
void?displayall(linklist?*head);//顯示所有記錄
void?search(linklist?*head);//按姓名查找
void?helpmenu(linklist?*head);//幫助菜單
int?main(void)????????????//////////////???主函數(shù)???////////////////////
{
system(“color?B0“);
??/////////??導(dǎo)入并建立鏈表?////////
linklist?*head*p*q;
int?x;
head=(struct?node*)malloc(LEN);
head->prior=NULL;
head->next=NULL;
q=head;
????
????printf(“?????????????????????????????簡(jiǎn)易通訊錄管理系統(tǒng)“);
????if((fp=fopen(“txl.bin““rb“))==NULL)?
{?
printf(“\n“);
for(x=1;x<=80;x++)//輸出分隔線
printf(“*“);
????????printf(“\n\t\t\t????歡迎使用通訊錄管理系統(tǒng)!\n\n這是您第一次使用該程序系統(tǒng)將為您建立一個(gè)新的通訊錄文件...“);?
????????if?((fp=fopen(“txl.bin““wb“))==NULL)?
{?
?????????????printf(“\n糟糕!建立失敗!“);?
?????????????exit(1);?
}?
????????else?
{?
flag=0;
????????????printf(“\n系統(tǒng)已為您建立好一個(gè)空的通訊錄!“);????????????
printf(“\n“);
for(x=1;x<=80;x++)//輸出分隔線
??????????? printf(“*“);
????????????printf(“\n按任意鍵進(jìn)入主菜單界面...“);?
????????????getch();?
}?
??? }?
????else
{
fseek(fp02);?//文件位置指針移動(dòng)到文件末尾
????????if?(ftell(fp)>0)?//文件不為空
{?
???flag=1;
???????????rewind(fp);
???printf(“\n“);
???for(x=1;x<=80;x++)//輸出分隔線
??????printf(“*“);
???printf(“\n\t\t\t????歡迎使用通訊錄管理系統(tǒng)!“);
???while(!feof(fp))
???{
???p=(struct?node*)malloc(LEN); ???
???if((fscanf(fp“?%s?%s?%s?%s?%s“p->data.namep->data.statep->data.cityp->data.streetp->data.eip))==NULL)
???{
????????printf(“\n文件讀取出錯(cuò)!\n退出程序...“);
????????getch();
????????exit(1);
???}
???q->next=p;//尾插法
???p->prior=q;
???q=p;
???}???
???q->next=NULL;
???printf(“\n\n文件讀取成功!“);
???printf(“\n“);
???for(?x=1;x<=80;x++)//輸出分隔線
???????printf(“*“);
???????????printf(“\n按任意鍵進(jìn)入主菜單界面...“);?
???????????getch();??
???}?
???????else
???{
???flag=0;
???printf(“\n“);
???for(x=1;x<=80;x++)//輸出分隔線
??????printf(“*“);
???printf(“\n\t\t\t????歡迎使用通訊錄管理系統(tǒng)!\n\n文件已導(dǎo)入成功!“);?
???????????printf(“\n通訊錄文件中無(wú)任何紀(jì)錄!“);
???printf(“\n“);
???for(?x=1;x<=80;x++)//輸出分隔線
??????printf(“*“);
???????????printf(“\n按任意鍵進(jìn)入主菜單界面...“);?
???????????getch();??
???}
?}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件??????23371??2010-01-01?17:24??txl1.cpp
?????文件??????15130??2009-12-27?17:03??txl2.cpp
-----------?---------??----------?-----??----
????????????????38501????????????????????2
評(píng)論
共有 條評(píng)論