2020年度C語(yǔ)言課程設(shè)計(jì)大作業(yè)_第1頁(yè)
2020年度C語(yǔ)言課程設(shè)計(jì)大作業(yè)_第2頁(yè)
2020年度C語(yǔ)言課程設(shè)計(jì)大作業(yè)_第3頁(yè)
2020年度C語(yǔ)言課程設(shè)計(jì)大作業(yè)_第4頁(yè)
2020年度C語(yǔ)言課程設(shè)計(jì)大作業(yè)_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

C語(yǔ)言課程設(shè)計(jì)大

作業(yè)

文檔僅供參考

鄭外I大學(xué)

課程報(bào)告

課程名稱:C語(yǔ)言程序設(shè)計(jì)

專業(yè)班級(jí):(15)班

學(xué)生姓名:謝*

學(xué)號(hào):7611***

任課教師:趙**

學(xué)期:*

課程報(bào)告任務(wù)書(shū)

通訊錄管理系統(tǒng)

文檔僅供參考

開(kāi)發(fā)一個(gè)通訊錄管理系統(tǒng),基本信息包括:編號(hào)、姓名、性別、出生年月、固定電

話、手機(jī)號(hào)、電子郵件等基本信息(也能夠根據(jù)自己情況進(jìn)行擴(kuò)充)。使之能提供

以下基本功能:

(1)通訊錄等信息錄入功能(注:數(shù)據(jù)等要求用文件保存)一一輸入

(2)通訊錄信息的瀏覽功能一一輸出

主要(3)查詢功能(至少一種查詢方式)、排序功能(至少一種排序方式):

①按電話號(hào)碼進(jìn)行查詢②按姓名查詢等③按照年齡排序④按姓名排序等

內(nèi)容

(4)通訊錄條目的刪除與修改等

擴(kuò)展功能:能夠按照自己的程度進(jìn)行擴(kuò)展。比如(1)簡(jiǎn)單的權(quán)限處理(2)報(bào)表打

印功能(3)模糊查詢,如姓張的人員等;或者給定電子郵件的部分進(jìn)行查詢等

(4)給定指定年齡范圍之內(nèi)的查詢等等。

總之,能夠根據(jù)自己需求進(jìn)行分析功能,成績(jī)?cè)u(píng)定按照難度進(jìn)行區(qū)分。

一、提交材料應(yīng)包括:(1)系統(tǒng)源代碼(2)課程報(bào)告

二、整個(gè)設(shè)計(jì)過(guò)程具體要求

(1)需求分析要求學(xué)生對(duì)案例系統(tǒng)進(jìn)行分析,設(shè)計(jì)出需要完成的功能,完善

任務(wù)各個(gè)模塊的調(diào)用關(guān)系;

要求(2)設(shè)計(jì)過(guò)程要求學(xué)生進(jìn)一步明確各模塊調(diào)用關(guān)系,進(jìn)一步完善模塊函數(shù)細(xì)

節(jié)(函數(shù)名、參數(shù)、返回值等)

(3)實(shí)現(xiàn)過(guò)程要求學(xué)生養(yǎng)成良好的編碼習(xí)慣、完成各個(gè)模塊并進(jìn)行測(cè)試,最

終完成系統(tǒng)整體測(cè)試;

(4)總結(jié)階段按照要求完成系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)報(bào)告,并進(jìn)行總結(jié)、答辯。

報(bào)告撰寫(xiě)情況(30分)系統(tǒng)完成情況(30答辯情況(40分)

分)

內(nèi)容規(guī)范程度程序測(cè)試基本功能擴(kuò)展功能自述情況答辯情況

成績(jī)

20分5分5分20分10分10分30分總分

評(píng)定

成績(jī)?cè)u(píng)定教師:

一.需求分析

1,具有數(shù)據(jù)的插入、修改、刪除、顯示和查詢功能的電話簿管理程序。

文檔僅供參考

2,數(shù)據(jù)包括:人名、工作單位、電話號(hào)碼和E-MAIL地址。

3,可對(duì)記錄中的姓名和電話號(hào)碼進(jìn)行修改。

4,可增加和刪除記錄。

5,可顯示所有的保存記錄。

6,可按人名或電話號(hào)碼進(jìn)行查詢。

分析

建議采用結(jié)構(gòu)體數(shù)組和文件系統(tǒng)實(shí)現(xiàn)。結(jié)構(gòu)體成員包括人名、工作單位、

電話號(hào)碼和E-MAIL地址。

根據(jù)題目的要求程序應(yīng)該采用結(jié)構(gòu)體數(shù)組和文件系統(tǒng)實(shí)現(xiàn)。應(yīng)該有文件的操

作功能;在程序中應(yīng)該包括輸入、顯示、刪除、查詢、添加、修改、保存、

加載和退出的功能。

二、概要設(shè)計(jì)

(1).程序的模塊組成及各個(gè)函數(shù)的功能:

程序的模塊組成:

主函數(shù):main();

輸出數(shù)據(jù)函數(shù):printf();

讀取數(shù)據(jù)函數(shù):scanf();

顯示記錄函數(shù):Display();

刪除記錄函數(shù):shanchu。;

查找記錄函數(shù):chaxunQ;

自定義清屏函數(shù):system("ds”);

自定義輸入函數(shù):input。;

文檔僅供參考

字符輸入函數(shù):getchar();

修改數(shù)據(jù)函數(shù):xiugai();

保存數(shù)據(jù)函數(shù):baocun();

排序數(shù)據(jù)函數(shù):paixu();

各函數(shù)的主要功能:

輸出數(shù)據(jù)函數(shù):隨時(shí)輸出數(shù)據(jù);

讀取數(shù)據(jù)函數(shù):讀取輸入的數(shù)據(jù)信息;

顯示菜單函數(shù):顯示可供選擇的主菜單;

顯示記錄函數(shù):顯示通訊錄所有輸入的信息;

刪除記錄函數(shù):顯示要?jiǎng)h除的通訊錄所有輸入的信息;

查找記錄函數(shù):顯示要查詢的通訊錄所有輸入的信息;

自定義清屏函數(shù):清除前面運(yùn)行留下的信息;

自定義輸入函數(shù):輸入通訊錄的成員;;

字符輸入函數(shù):從終端輸入一個(gè)字符,遇回車鍵返回;

修改數(shù)據(jù)函數(shù):修改通訊錄的成員信息;

保存數(shù)據(jù)函數(shù):保存通訊錄的成員信息;

排序數(shù)據(jù)函數(shù):排序通訊錄的成員信息;

(2)程序中的抽象數(shù)據(jù)類型的定義:

用戶的狀態(tài)結(jié)構(gòu)

用戶

(

編號(hào):

姓名:

文檔僅供參考

電話;

年齡;

郵箱:

地址;

⑶總體流程圖

根據(jù)上面的分析,能夠?qū)⒊绦蛳到y(tǒng)的設(shè)計(jì)分為如下幾個(gè)模塊:插入、顯示、

刪除、查詢、修改、保存和退出。

三.詳細(xì)設(shè)計(jì)

(1).主菜單;

主菜單一般設(shè)計(jì)得比較簡(jiǎn)潔,只提供輸入,處理和輸出部分的函數(shù)調(diào)

用。其中各功能模塊用菜單方式選擇。

流程圖

文檔僅供參考

【程序】

Personpe[80];

intmenu_select()

charc;

do{

system(,'cls,');〃清屏

printf(''\t\t\t**********************************************\ii'');〃窗

口初始化

printf(H\t\t\t**********歡迎使用通訊錄管理系統(tǒng)!***********\nn);

printf(''\t\t\t*************|*I***************\n”);

printf(''\t\t\t**************1.添力口記錄***************\n'');

printf(n\t\t\t**************|2.顯示記錄****************'n'')?

printf(H\t\t\t**************|3.刪除記錄****************'n'')?

printf(H\t\t\t**************|4.查詢記錄****************'n'')?

printf("\t\t\t**************|5.修改記錄****************\n'')?

printf(n\t\t\t**************|6.保存記錄*****************3);

文檔僅供參考

printf(H\t\t\t**************|7.排序記錄|*****************\nn)?

printf(''\t\t\t**************|0.退出程序|*****************\n");

printf(''\t\t\t******************************'n'')?

printf(H\t\t請(qǐng)您選擇(0-7):");

c=getchar();

}while(c<,0,||c>,7,);

return(c-'O');

)

(2)顯示模塊

此模塊為顯示所有記錄,流程圖如下:

Inti;

printf(n.......................................................................................................\nn);〃格式

printf("編號(hào)\t姓名\t年齡\t電話號(hào)碼\t通訊地址\t電子郵箱\n");

printf(n.......................................................................................................\n);

for(i=l;i<n+l;i++)

文檔僅供參考

printf(,'%-8d%-8s%-8s%-18s%-18s%-8s\n,',per[i-l].score,per[i-

l].name,per[i-l].age,per[i-l].num,per[i-l].adds,per[i-l].email);

if(i>l&&i%10==0)

{printf(u\t................................................\nH);

printf(n\tn);

system(*'pause*');

printf(u\t................................................\nu);

})

prin(f("................................................................................................\n");

system(,'pausen);

(3)修改模塊

此模塊先調(diào)用查找函數(shù)查找到所要修改的信息,然后用戶根據(jù)需要修改信

息。流程圖如下:

文檔僅供參考

voidxiugai(Personper[],intn)

{

chars[20];

inti=0;

printf("\t請(qǐng)輸入想修改的記錄中的名字:“);

scanfC'%sn,s);〃輸入修改人的名字

while(strcmp(per[i].name,s)!=O&&i<n)i++;

if(i==n)

{

printf(n\t通訊錄中沒(méi)有此人!\n");

return;

)

printf(n\t編號(hào):");

scanf(n\t%dn,&per[i].score);

文檔僅供參考

printf(”\t姓名:");

scanf(*'\t%sn,per[i].name);

printf("\t年齡:");

scanf(n\t%sn,per[i].age);

printf(u\t電話號(hào)碼:“);

scanf(',\t%s'*,per[i].num);

printf("\t通訊住址:");

scanf(n\t%sn,per[i].adds);

printf(u\t電子郵箱:");

scanf(n\t%sn,per[i].email);

printf(u\t*');}

(4)插入模塊

此模塊為插入信息模塊,插入后再調(diào)用保存函數(shù)來(lái)保存所插入的數(shù)據(jù),支

持多條信息的插入。

流程圖

文檔僅供參考

intInput(Personper[],intn)

|

inti=0;

charsign,x[10];

while(sign!='n'&&sign!='N')

{

prmtf(H\t編號(hào):

scanf(u\t%d*',&per[n+i].score);

printf("\t姓名:");

scanf(*'\t%s*',per[n+i].name);

prmtf(H\t年齡:");

scanf(n\t%sn,per[n+i].age);

printf(n\t電話號(hào)碼:");

文檔僅供參考

scanf(,'\t%s,',per[n+i].num);

printf(H\t通訊住址:");

scanf('*\t%s'*,per[n+i].adds);

printf(H\t電子郵箱:");

scanf(**\t%s**,per[n+i].email);

gets(x);

printfC'\n\t是否繼續(xù)添加?(Y/N)”);

scanf(,'\t%c,,,&sign);

i++;

)

return(n+i);

)(5)刪除模塊

此模塊先利用查找模塊找到所要?jiǎng)h除的信息,然后根據(jù)用戶的選擇來(lái)確定是

否刪除信息,此種調(diào)用到Save函數(shù)。其流程圖如下:

文檔僅供參考

intshanchu(Personper[],intn)

chars[20];

inti=O,j;

printf(”\t請(qǐng)輸入想刪除記錄中的名字:");

scanf(,'%s,',s);

while(strcmp(per[i].name,s)!=0&&i<n)i++;

if(i==n)

{

printf(u\t通訊錄中沒(méi)有此人!\n");

return(n);

for(j=i;j<n-l;j++)

文檔僅供參考

strcpy(per[j].num,per[j+l].num);

strcpy(per[j].name,per[j+l].name);

strcpy(per[j].age,per[j+l].age);

strcpy(per[j].adds,per[j+l].adds);

strcpy(per[j].email,per[j+l].email);

)

printf(n\t\t\t已經(jīng)成功刪除!\n");

return(n-l);

}

(6)查詢模塊

voidchaxun(Personper[],intn)

|

intm;

printf(u\t\n請(qǐng)選擇查詢方式:\n");

printf(n\t?---------------------!\nn);

printf(n\t|1.....姓名查詢|\n'*);

prmtf(H\t|2----電話查詢|\n'*);

printf(H\t|3.....地址查詢|\n'*);

printf(n\t|4.....返回|\nn);

printf(n\t1--------------------\n");

printf("請(qǐng)選擇:");

scanf(,'%d,',&m);

while(m!=l&&m!=2&&m!=3&&m!=4)

文檔僅供參考

printf("輸入錯(cuò)誤請(qǐng)重新選擇:");

scanf(,'%d,',&m);

if(m==l)

{

chars[20];

inti=0;

printf(n\t請(qǐng)輸入想查詢的姓名:");

scanf(n\t%sn,s);

while(strcmp(per[i].name,s)!=0&&i<n)i++;

if(i==n)

{

printf(n\t通訊錄中沒(méi)有此人!\n");

return;

printf("\t此人編號(hào):%d\n*',per[i].score);〃輸出查詢結(jié)果

printf(u\t此人年齡:%s\n'*,per[i].age);

printf(u\t電話號(hào)碼:%s\n,',per[i].num);

printf(H\t通訊地址:%s\n*',per[i].adds);

printf(H\t電子郵箱:%s\n*',per[i].email);

);

if(m==2)

文檔僅供參考

chars[20];

inti=0;

printf(H\t請(qǐng)輸入想查詢的電話:");scanf(n\t%sn,s);

while(strcmp(per[i].num,s)!=O&&i<n)i++;

if(i==n)

{

printf(n\t通訊錄中沒(méi)有此人!\n");

return;

)

printf(u\t此人編號(hào):%d\n*',per[i].score);/爆I出查詢結(jié)果

printf(H\t此人姓名:%s\n*',per[i].name);

printfC'Xt此人年齡:%s\n'*,per[i].age);

printf(u\t通訊地址:%s\n*',per[i].adds);

printf(u\t電子郵箱:%s\n*',per[i].email);

);

if(m==3)

{

chars[20];

inti=0;

printf(n\t請(qǐng)輸入想查詢的地址:");

scanf(n\t%sn,s);

while(strcmp(per[i].adds,s)!=0&&i<n)

文檔僅供參考

i++;

if(i==n)

{

printf(n\t通訊錄中沒(méi)有此人!\n");

return;

)

printf(n\t此人編號(hào):%d\n”,per[i].score);/爆I出查詢結(jié)果

printf(H\t此人姓名:%s\n'*,per[i].name);

prmtf(H\t此人年齡:%s\n'*,per[i].age);

printf(*'\t電話號(hào)碼:%s\n'*,per[i].num);

printf(*'\t電子郵箱:%s\n*',per[i].email);

);

}

(7)排序模塊

voidpaixu(Personper[],intn)

{

intij;

//printf("\t\按編號(hào)排序

for(i=l;i<n+l;i++)

{

for(j=l;j<n-l;j++)

if((strcmp(per[j].num,per[j+l].num))>O)

文檔僅供參考

strcpy(per->num,per[j].num);

strcpy(per->name,per[j].name);

strcpy(per->age,per[j].age);

strcpy(per->adds,per[j].adds);

strcpy(per->email,per[j].email);

strcpy(per[j+l].num,per->num);

strcpy(per[j+l].name,per->name);

strcpy(per[j+l].age,per->age);

strcpy(per[j+l].adds,per->adds);

strcpy(per[j+l].email,per->email);

)

)

printf("排序成功!\nn);

)

五.測(cè)試結(jié)果

L主菜單

歡迎使用通訊錄管理系統(tǒng),…

1記

2記

3記

4記

5記

6記

7記

0

請(qǐng)您選擇

2.顯示所有信息

文檔僅供參考

通訊錄記錄表

露*一一通一一藕一一國(guó)與百甫癡癡癥國(guó)有福

iwSSSSSS.T?-'

3.插入信息

歡迎使用通訊錄管理系統(tǒng),…********

1錄

2錄

3記

4胃

5_錄

6錄

^記

7

0^記

_-_

請(qǐng)您選擇(0-7〉:i

1

號(hào)1

訊:l

t碼

w址

s箱

是否繼續(xù)添加?〈Y/N)

4.查找模塊

第一步:

在通訊錄中查找記錄

青選擇查詢方式:

-一

1魯普

2香

北址

3一

4返回

青選擇:

第二步:

文檔僅供參考

貨入

詢的

名1

^編

人i

S-距

號(hào)

此i

電i

郵:

?忌1

續(xù)

%??

第三步:

,青選擇:2

請(qǐng)蒯入想查詢的電話

此人編號(hào):i

此人姓名:1

此人年凝]

福冊(cè)地址:1

國(guó)W箱:1

甯按任盍鍵繼續(xù)..?

第四步:

/的

編1

此人

姓#:

盒1

年1

號(hào)1

子1

s=忌

夕??

5.刪除模塊

—?dú)g迎使用通訊錄管理系統(tǒng)?***********

1記錄

2錄

3記

4記

5^記

6記

7錄

0蓋

請(qǐng)您選擇《0-7):3

叢通迅錄中刪除記錄心入…

請(qǐng)輸入想刪除記錄市的名字:1

已經(jīng)成功刪除,

造將件意鍵繼績(jī)...

6.修改模塊

第一步

文檔僅供參考

歡迎使用通訊錄管理系統(tǒng)?***********

1記錄

2錄

*記

3錄

4罌

H錄

5H

6錄

7錄

0霍

請(qǐng)您選擇《。-7):5

改通訊錄中的記錄

請(qǐng)公想修改的記錄中的名字

號(hào)

姓^

年齡:?

電S

子霹號(hào)

麗箱:?

改請(qǐng)按任意鍵繼續(xù)...

窗雙

中的

訊錄

I錄

T

-

中的

名字

,.

記2

l錄

里.

任?

續(xù)

I目??■

文檔僅供參考

六.課程心得總結(jié)

剛開(kāi)始學(xué)習(xí)c語(yǔ)言,總覺(jué)得很難理解,也很難學(xué)。在這之前,我們已經(jīng)

學(xué)習(xí)了一個(gè)學(xué)期,對(duì)c語(yǔ)言有了一定的了解,可是也僅僅是停留在學(xué)習(xí)了

解的范圍,對(duì)里面的好多東西還是很陌生,并不是很熟練,有著許多欠缺,

更多的在運(yùn)用起來(lái)的時(shí)候還是感到很不好動(dòng)手。

這次的程序設(shè)計(jì)實(shí)驗(yàn)是對(duì)我們進(jìn)入大學(xué)以來(lái)學(xué)習(xí)程序設(shè)計(jì)語(yǔ)言結(jié)果的

一次大檢驗(yàn)。自己動(dòng)手發(fā)現(xiàn)和解決問(wèn)題。經(jīng)過(guò)這,我發(fā)現(xiàn)了自己的許多不

足,平時(shí)沒(méi)有掌握好的知識(shí)在這次實(shí)驗(yàn)中徹底暴露出來(lái),經(jīng)過(guò)不斷思考,不

斷查閱資料和上機(jī)運(yùn)行解決其中大部分問(wèn)題。當(dāng)然,還存在一些問(wèn)題沒(méi)有解

決。我相信在以后的學(xué)習(xí)能夠解決好它們。

課堂上許多關(guān)于C語(yǔ)言的語(yǔ)法規(guī)則,聽(tīng)起來(lái)十分枯燥無(wú)味,也不容易

記住,死記硬背是不可取的。然而要使用C語(yǔ)言這個(gè)工具解決實(shí)際問(wèn)題,

又必須掌握它。經(jīng)過(guò)上機(jī)練習(xí),對(duì)于語(yǔ)法知識(shí)有了感性的認(rèn)識(shí),加深對(duì)它的

理解,在理解的基礎(chǔ)上就會(huì)自然而然地掌握C語(yǔ)言的語(yǔ)法規(guī)定。對(duì)于一些

內(nèi)容自己認(rèn)為在課堂上聽(tīng)懂了,但上機(jī)實(shí)踐中會(huì)發(fā)現(xiàn)原來(lái)理解的偏差,更加

鞏固了學(xué)過(guò)的知識(shí),而且在設(shè)計(jì)的時(shí)候?qū)W要系統(tǒng)的知識(shí),也是一個(gè)較大的挑

戰(zhàn),某一方面知識(shí)的欠缺都將影響到整個(gè)程序的設(shè)計(jì)。

這次的大作業(yè)讓我學(xué)到了很多有用的東西,鞏固了之前的學(xué)習(xí),經(jīng)過(guò)

這個(gè)程序的學(xué)習(xí),使我進(jìn)一步理解和運(yùn)用結(jié)構(gòu)化程序設(shè)計(jì)的思想和方法。相

信對(duì)以后初步掌握開(kāi)發(fā)一個(gè)小型實(shí)用系統(tǒng)的基本方法,學(xué)會(huì)調(diào)試一個(gè)比較長(zhǎng)

程序的基本方法,學(xué)會(huì)利用流程圖表示算法,進(jìn)一步掌握和提高利用C語(yǔ)

言進(jìn)行程序設(shè)計(jì)的能力。

我認(rèn)為,這次實(shí)習(xí)對(duì)于我是非常有意義的,對(duì)我個(gè)人的影響比較

文檔僅供參考

大,對(duì)我的動(dòng)手能力有了很大的提高。經(jīng)過(guò)這次課程設(shè)計(jì),我對(duì)很多的函數(shù)

有了新的認(rèn)識(shí),也學(xué)會(huì)了運(yùn)用多種函數(shù)。最后感謝完成大作業(yè)過(guò)程中幫助過(guò)

我的老師和同學(xué)。

源代碼:

#include<stdlib.h>

#include<stdio.h>

#include<string.h>

typedefstruct

{

charscore;/*編號(hào)*/

charname[10];/*姓名*/

charnum[15];/*號(hào)碼*/

charemail[20];/*郵箱*/

charage[8];/*年齡*/

charadds[20];/*地址*/

JPerson;

文檔僅供參考

Personpe[80];

intmenu_select()

charc;

do{

system,ds");

printf(*'\t\t\t**********************************************\n*');//窗

口初始化

printf('\t\t\t**********歡迎使用通訊錄管理系統(tǒng)!***********\nn);

printf(,\t\t\t*************『]***************\n'');

printf('\t\t\t**************1.添加記錄***************'n'')?

printf(,\t\t\t**************I2.顯示記錄****************'n'')?

printf('\t\t\t**************I3.刪除記錄****************'n'')?

printf(,\t\t\t**************I4.查詢記錄****************\n'')?

printf('\t\t\t**************I5.修改記錄****************'n'')?

printf(,\t\t\t**************I6.保存記錄****************'n'')?

printf('\t\t\t**************I7.排序記錄****************'n'')?

printf(,\t\t\t**************I0.退出程序****************\n'')?

printf('\t\t\t******************************'n'')?

printf(,\t\t請(qǐng)您選擇(0-7):");

c=getchar();

}while(c<,0,||c>,7');

return(c-'O');

文檔僅供參考

voidpaixu(Personper[],intn)

{

intij;

//printf(”\t\按編號(hào)排序:\n”);

for(i=l;i<n+l;i++)

{

for(j=l;j<n-l;j++)

if((strcmp(per[j].num,per[j+l].num))>O)

{

strcpy(per->num,per[j].num);

strcpy(per->name,per[j].name);

strcpy(per->age,per[j].age);

strcpy(per->adds,per[j].adds);

strcpy(per->email,per[j].email);

strcpy(per[j+l].num,per->num);

strcpy(per[j+l].name,per->name);

strcpy(per[j+l].age,per->age);

strcpy(per[j+l].adds,per->adds);

strcpy(per[j+l].email,per->email);

printf("排序成功!\nn);

文檔僅供參考

intInput(Personper[],intn)

{

inti=0;

charsign,x[10];

while(sign!='n'&&sign!='N')

{

printf(H\t編號(hào):");

scanf(*'\t%d*',&per[n+i].score);

printf("\t姓名:");

scanf(*'\t%s*',per[n+i].name);

printf(H\t年齡:");

scanf(n\t%sn,per[n+i].age);

printf(n\t電話號(hào)碼:“);

scanf(*'\t%s*',per[n+i].num);

printf(H\t通訊住址:");

scanf(*'\t%s*',per[n+i].adds);

printf(n\t電子郵箱:");

scanf('*\t%s'*,per[n+i].email);

gets(x);

prmtf(H\n\t是否繼續(xù)添加?(Y/N)”);

scanf(',\t%c',,&sign);

i++;

文檔僅供參考

return(n+i);

voidScan(Personper[],intn)

|

inti;

FILE*fp;

if((fp=fopen(nrecord.txt"Jrb"))==NULL)〃打開(kāi)文件

{

printf("不能打開(kāi)文件!\n");

exit(l);

)

fscanf(fp,n%dn,&n);〃讀入記錄數(shù)

//fseek(fp,O,l);

for(i=0;i<n;i++)fscanf(fp,,'%-5d%-8s%-6s%-13s%-15s%-15s\n,,,per[i-

l].score,per[i-l].name,per[i-l].age,per[i-l].num,per[i-l].adds,per[i-l].email);

fclose(fp);

*********文件數(shù)據(jù)讀入成功!*************\n'');

)

voidDisplay(Personper[],intn)

|

inti;

printf("................................................................................................\n");

文檔僅供參考

/*格式*/

printf("編號(hào)\t姓名\t年齡\t電話號(hào)碼\t通訊地址\t電子郵箱\n");

prin(f("................................................................................................\n");

for(i=l;i<n+l;i++)

{

printf(,'%-8d%-8s%-8s%-18s%-18s%-8s\n,',per[i-l].score,per[i-

l].name,per[i-l].age,per[i-l].num,per[i-l].adds,per[i-l].email);

if(i>l&&i%10==0)

{

printf(u\t...............................................\nn);

printf(n\tn);

system(*'pause*');

printf(u\t................................................\nn);

)

}prin(f("................................................................................................\n");

system(npausen);

}intshanchu(Personper[],intn)

{

chars[20];

inti=O,j;

printf("請(qǐng)輸入想刪除記錄中的名字:");

scanf(n%sn,s);

while(strcmp(per[i].name,s)!=O&&i<n)i++;

文檔僅供參考

if(i==n)

printf(n\t通訊錄中沒(méi)有此人!\n");

return(n);

)

for(j=i;j<n-l;j++)

{

strcpy(per[j].num,per[j+l].num);

strcpy(per[j].name,per[j+l].name);

strcpy(per[j].age,per[j+l].age);

strcpy(per[j].adds,per[j+l].adds);

strcpy(per[j].email,per[j+1].email);

)

printf(u\t\t\t已經(jīng)成功刪除!\n");

return(n-l);

)

voidchaxun(Personper[],intn)

{

intm;

printf(u\t\n請(qǐng)選擇查詢方式八n");

printf(*'\t?-----------------------!\nu);

printf(n\t|1........姓名查詢|\n'*);

文檔僅供參考

printf(H\t|2.......電話查詢|\nH);

printf(n\t|3.......地址查詢|\nH);

printf(n\t|4-----返回|\nu);

printf(n\t1--------------------\n");

printf("請(qǐng)選擇:“);

scanf(,,%d',,&m);

while(m!=l&&m!=2&&m!=3&&m!=4)

(

printf("輸入錯(cuò)誤請(qǐng)重新選擇;

scanf(,,%d,',&m);

)

if(m==l)

(

chars[20];

inti=0;

printf(n\t請(qǐng)輸入想查詢的姓名:");

scanf(,'\t%s,',s);

while(strcmp(per[i].name,s)!=0&&i<n)i++;

if(i==n)

(

printfC'Xt通訊錄中沒(méi)有此人!\n");

return;

)

文檔僅供參考

printfC'Xt此人編號(hào):%d\n'*,per[i].score);

printf(u\t此人年齡:%s\n'*,per[i].age);

printf(u\t電話號(hào)碼:%s\n,',per[i].num);

printf(H\t通訊地址:%s\n*',per[i].adds);

printfC'Xt電子郵箱:%s\n*',per[i].email);

);

if(m==2)

{

chars[20];

inti=0;

printf(u\t請(qǐng)輸入想查詢的電話:");scanf(,'\t%s,',s);

while(strcmp(per[i].num,s)!=O&&i<n)i++;

if(i==n)

{

printf(n\t通訊錄中沒(méi)有此人!\n");

return;

printf(u\t此人編號(hào):%d\n'*,per[i].score);

printf(u\t此人姓名:%s\n*',per[i].name);

printf(H\t此人年齡:%s\n'*,per[i].age);

printf(H\t通訊地址:%s\n*',per[i].adds);

printf(u\t電子郵箱:%s\n'*,per[i].email);

文檔僅供參考

);

if(m==3)

{

chars[20];

inti=0;

printf(n\t請(qǐng)輸入想查詢的地址:");

scanf(u\t%s,',s);

while(strcmp(per[i].adds,s)!=O&&i<n)i++;

if(i==n)

{

printf(n\t通訊錄中沒(méi)有此人!\n");

return;

printf(H\t此人編號(hào):%d\n'*,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論