教你用C語(yǔ)言/C++編寫一個(gè)電話目錄系統(tǒng)

C語(yǔ)言是面向過(guò)程的望蜡,而C++是面向?qū)ο蟮?/b>

C和C++的區(qū)別:

C是一個(gè)結(jié)構(gòu)化語(yǔ)言,它的重點(diǎn)在于算法和數(shù)據(jù)結(jié)構(gòu)拷恨。C程序的設(shè)計(jì)首要考慮的是如何通過(guò)一個(gè)過(guò)程脖律,對(duì)輸入(或環(huán)境條件)進(jìn)行運(yùn)算處理得到輸出(或?qū)崿F(xiàn)過(guò)程(事務(wù))控制)。

C++腕侄,首要考慮的是如何構(gòu)造一個(gè)對(duì)象模型小泉,讓這個(gè)模型能夠契合與之對(duì)應(yīng)的問(wèn)題域芦疏,這樣就可以通過(guò)獲取對(duì)象的狀態(tài)信息得到輸出或?qū)崿F(xiàn)過(guò)程(事務(wù))控制。 所以C與C++的最大區(qū)別在于它們的用于解決問(wèn)題的思想方法不一樣微姊。之所以說(shuō)C++比C更先進(jìn)酸茴,是因?yàn)椤?設(shè)計(jì)這個(gè)概念已經(jīng)被融入到C++之中 ”。

C與C++的最大區(qū)別:在于它們的用于解決問(wèn)題的思想方法不一樣兢交。之所以說(shuō)C++比C更先進(jìn)薪捍,是因?yàn)椤?設(shè)計(jì)這個(gè)概念已經(jīng)被融入到C++之中 ”,而就語(yǔ)言本身而言配喳,在C中更多的是算法的概念酪穿。那么是不是C就不重要了,錯(cuò)界逛!算法是程序設(shè)計(jì)的基礎(chǔ)昆稿,好的設(shè)計(jì)如果沒(méi)有好的算法,一樣不行息拜。而且溉潭,“C加上好的設(shè)計(jì)”也能寫出非常好的東西。

項(xiàng)目的主要目標(biāo)是開(kāi)發(fā)一個(gè)面向個(gè)人的通訊錄信息管理系統(tǒng)少欺。它能實(shí)現(xiàn)個(gè)人對(duì)通訊錄信息的處理喳瓣,亦即對(duì)聯(lián)系人和聯(lián)系人群組信息的處理,比如顯示赞别、添加畏陕、刪除、查詢仿滔、修改等操作惠毁。項(xiàng)目具體的功能要求是:通訊信息以文本或二進(jìn)制的形式存儲(chǔ)在文件中,聯(lián)系人可根據(jù)用戶需求分為若干群組崎页,每個(gè)群組可以使用不同文件鞠绰,要求能添加、刪除或修改聯(lián)系人記錄(姓名飒焦,手機(jī)蜈膨,家電,郵箱牺荠,群組等)翁巍,在修改或刪除之前需要用戶進(jìn)一步確認(rèn),確認(rèn)無(wú)誤后再進(jìn)行操作休雌,一個(gè)聯(lián)系人僅可以存在一個(gè)群組之中灶壶,刪除聯(lián)系人信息可以僅刪除一項(xiàng)也可刪除整個(gè)聯(lián)系人信息。還可以添加杈曲、刪除聯(lián)系人群組或?qū)θ航M改名例朱,在刪除群組后孝情,該群組中的聯(lián)系人自動(dòng)設(shè)為無(wú)群組的聯(lián)系人,通訊錄按聯(lián)系人姓名排序洒嗤。增加查詢功能,查詢時(shí)只輸入姓名的首字母魁亦,所有符合這一條件的電話資料均在屏幕上顯示渔隶。

小編推薦一個(gè)學(xué)C語(yǔ)言/C++的學(xué)習(xí)裙【 六九九,四七零洁奈,五九六 】间唉,無(wú)論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來(lái)了解一起進(jìn)步一起學(xué)習(xí)利术!裙內(nèi)有開(kāi)發(fā)工具呈野,很多干貨和技術(shù)資料分享!

源碼僅供參考:

// 電話目錄系統(tǒng)

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

class stud

{public:

char name[20];

char address[20];

unsigned int ph_no;

void get(void);

void show(void);

void modify(void);

};

void stud::get(void)

{

int i=0;

cout< <" Enter name -> ";

cin.get(name[i]);

while(name[i]!=' ')

{

i=i+1;

cin.get(name[i]);

}cin.getline(name,20,' ');

cout< <" Enter address-> ";

cin.getline(address,20,' ');

fflush(stdin);

cout< <" Enter ph_no -> ";

cin>>ph_no;

fflush(stdin);

}

void stud::show(void)

{

cout< <" ";

cout<<" NAME :"<<" "<

cout<<" ADDRESS :"<<" "<

cout<<" Ph_No :"<<" "<

}

void main()

{

int gdriver = DETECT, gmode, errorcode;

int x,y;

int midx,midy;

/* 初始化圖形和局部變量 */

initgraph(&gdriver, &gmode, "");

/* 讀取初始化結(jié)果 */

errorcode = graphresult();

if (errorcode != grOk) /* 發(fā)生了一個(gè)錯(cuò)誤 */

{printf("Graphics error: %s ", grapherrormsg(errorcode));

printf("Press any key to halt:");

getch();

exit(1); /* 終止與錯(cuò)誤代碼*/

closegraph();

}

y:

char*pass="RPV";

char*ppass;

gotoxy(25,8);

int size=7;

settextstyle(7,0,size);

setbkcolor(BLUE);

setcolor(WHITE);

outtextxy(180,50,"WELCOME" );

setcolor(WHITE);

outtextxy(250,200,"TO");

settextstyle(8,0,5);

setfillstyle(1,DARKGRAY);

setcolor(WHITE);

outtextxy(60,350," TELEPHONE DIRECTORY");

getch();

clearviewport();

settextstyle(3,0,4);

settextstyle(7,0,4);

getch();

clearviewport();

g:

ppass=getpass("ENTER THE PASSWORD::");

if(strcmpi(pass,ppass)!=0)

{cout<<" Incorrect password";

cout<<" Try again";

getchar();

goto g;

}else

{

stud s;

char name[20];

char name1[20];

int ch;

clrscr();

setbkcolor(BLUE);

setcolor(YELLOW);

closegraph();

z:

cout<<" ";

initgraph(&gdriver, &gmode,"c:\tc\bgi");

setcolor(BLUE);

rectangle(60,10,600,400);

setfillstyle(1,YELLOW);

bar(61,11,599,399);

outtextxy(200,30," HELP -> PRESS ANY KEY 1 TO 6 " );

settextstyle(TRIPLEX_FONT ,HORIZ_DIR,4);

outtextxy(220,50," 1. TO ADD " );

setcolor(BLUE);

settextstyle(TRIPLEX_FONT,HORIZ_DIR,4);

outtextxy(220,100," 2. TO SHOW " );

setcolor(BLUE);

settextstyle(TRIPLEX_FONT,HORIZ_DIR,4);

outtextxy(220,150," 3. TO SEARCH " );

setcolor(BLUE);

settextstyle(TRIPLEX_FONT,HORIZ_DIR,4);

outtextxy(220,200,"4. TO MODIFY " );

setcolor(BLUE);

settextstyle(TRIPLEX_FONT,HORIZ_DIR,4);

outtextxy(220,250," 5. TO DELETE " );

setcolor(BLUE);

settextstyle(TRIPLEX_FONT,HORIZ_DIR,4);

outtextxy(220,300," 6. TO EXIT " );

settextstyle(TRIPLEX_FONT,HORIZ_DIR,3);

outtextxy(220,350," Enter the choice ->");

gotoxy(62,23);

cin>>ch;

switch(ch)

{

case 1: //終止與錯(cuò)誤代碼

{

clrscr();

fstream f;

f.open("rec",ios::in|ios::out|ios::ate|ios::app|ios::binary);

char ans;

s.get();

f.write((char *)&s,sizeof(s));

clrscr();

outtextxy(250,360, " Do you want to continue:- ");

ans=getche();

if(ans=='Y' || ans=='y'){goto z;}

f.close();

break;

}

case 2: // 將顯示該文件的所有內(nèi)容

小編推薦一個(gè)學(xué)C語(yǔ)言/C++的學(xué)習(xí)裙【 六九九印叁,四七零被冒,五九六 】,無(wú)論你是大牛還是小白轮蜕,是想轉(zhuǎn)行還是想入行都可以來(lái)了解一起進(jìn)步一起學(xué)習(xí)昨悼!裙內(nèi)有開(kāi)發(fā)工具,很多干貨和技術(shù)資料分享跃洛!

{

clrscr();

cout< <" ";

fstream f;

f.open("rec",ios::in|ios::out|ios::ate|ios::app|ios::binary);

f.seekg(0);

int ctr=0;

while(f.read((char *)&s,sizeof(s)) )

{

ctr=ctr+1;

if(ctr==8) {getchar(); clrscr();ctr=0;}

s.show();

if(f.eof()==1)

{break;}

}

f.close();

outtextxy(240,350, " Do you want to continue :-");

char ans;

ans=getche();

if(ans=='y'|| ans=='Y'){

closegraph();

goto z;}else{exit(1);}

}

case 3: // 搜索{

gotoxy(60,25);

clearviewport();

rectangle(10,10,630,470);

setbkcolor(DARKGRAY);

textbackground(3);

textcolor(5);

clrscr();

char ans;

ifstream f;

stud s;

char name[20];

char address[20];

unsigned int ph_no;

f.open("rec",ios::in|ios::binary);

cout<<" Enter name whose record to be search :";

cin>>name;

do

{

f.read((char *)&s,sizeof(s));

if(f.eof()==1) {break;}

if(strcmpi(s.name,name)==0)

{

cout< <" Name :"<

cout<<" address :"<

cout<<" phone_no :"<

getchar();}}while(f);

f.close();

settextstyle(7,0,1);

outtextxy(250,410,"Do You Want To Continue:");

ans=getchar();

if(ans=='Y'||ans=='y')

goto z;

else

{

closegraph();

break;

}

case 4: //對(duì)改性

{

clrscr();

char ans;

fstream f; stud s;

char name[20]; char address[20]; unsigned int ph_no;

f.open("rec",ios::in|ios::binary);

cout<<" Enter person ph_no whose record to be changed :";

cin>>ph_no;

do

{

f.read((char *)&s,sizeof(s));

if(f.eof()==1) {break;}

if(s.ph_no==ph_no)

{

cout< <" Current Name :"<

cout<<" Current Address :"<

cout<<" Current Phone No :"<

getchar();

cout<<" Enter the new name :";

cin>>name;

cout< <" Enter the city :";

cin>>address;

cout< <" Enter new ph_no :";

cin>>ph_no;

strcpy(s.name,name);

strcpy(s.address,address);

s.ph_no=ph_no;

int l=f.tellg();

f.close();

f.open("rec",ios::out|ios::binary|ios::ate);

f.seekg(l-sizeof(s));

f.write((char *)&s,sizeof(s));

}

}while(f);

f.close();

outtextxy(290,360, " Do you want to continue :-");

ans=getche();

if(ans=='Y'||ans=='y')

{goto z;}

break;

}

case 5: //負(fù)責(zé)刪除記錄

{

clrscr();

char name[20];

stud s;

ifstream fin;

fstream fout;

fin.open("rec",ios::in|ios::binary);

fout.open("va",ios::app|ios::binary);

cout< <" DELETING :-";

int i;

fflush(stdin);

cout<<" Enter the name :- ";

cin.get(name[i]);

while(name[i]!=' ')

{

i=i+1;

cin.get(name[i]);

}

fflush(stdin);

fflush(stdout);

cin.getline(name,20,' ');

while(fin)

{

fin.read((char *)&s,sizeof (s));

if(strcmp(s.name,name)==0)

{fout.read((char *)&s,sizeof(s));

}

else

{

if(fin.eof()==1) {break;}

fout.write((char *)&s,sizeof(s));

}

}

fin.close();

fout.close();

system("del rec");

system("ren va rec");

cout<<" Enter is get Deleted:-";

getchar();

char ans;

outtextxy(240,340, " Do you want to continue:- ");

ans=getche();

if (ans=='y' || ans=='Y')

{goto z;}

else

if (ans=='n' || ans=='N')

{getchar();

exit(1);

}

}

case 6:

{

clearviewport();

outtextxy(250,360,"THE END OF THE PROJECT:-");

outtextxy(260,390," PLEASE PRESS ENTER");

getchar();

closegraph();

exit(1);

}

default:

goto z;

}

}

}}

小編推薦一個(gè)學(xué)C語(yǔ)言/C++的學(xué)習(xí)裙【 六九九率触,四七零,五九六 】汇竭,無(wú)論你是大牛還是小白葱蝗,是想轉(zhuǎn)行還是想入行都可以來(lái)了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開(kāi)發(fā)工具细燎,很多干貨和技術(shù)資料分享两曼!

這些是C/C++能做的

服務(wù)器開(kāi)發(fā)工程師、人工智能找颓、云計(jì)算工程師合愈、信息安全(黑客反黑客)、大數(shù)據(jù) 击狮、數(shù)據(jù)平臺(tái)佛析、嵌入式工程師、流媒體服務(wù)器彪蓬、數(shù)據(jù)控解寸莫、圖像處理、音頻視頻開(kāi)發(fā)工程師档冬、游戲服務(wù)器膘茎、分布式系統(tǒng)桃纯、游戲輔助等

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市披坏,隨后出現(xiàn)的幾起案子态坦,更是在濱河造成了極大的恐慌,老刑警劉巖棒拂,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件伞梯,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡帚屉,警方通過(guò)查閱死者的電腦和手機(jī)谜诫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)攻旦,“玉大人喻旷,你說(shuō)我怎么就攤上這事±挝荩” “怎么了且预?”我有些...
    開(kāi)封第一講書人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)伟阔。 經(jīng)常有香客問(wèn)我辣之,道長(zhǎng),這世上最難降的妖魔是什么皱炉? 我笑而不...
    開(kāi)封第一講書人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任怀估,我火速辦了婚禮,結(jié)果婚禮上合搅,老公的妹妹穿的比我還像新娘多搀。我一直安慰自己,他們只是感情好灾部,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布康铭。 她就那樣靜靜地躺著,像睡著了一般赌髓。 火紅的嫁衣襯著肌膚如雪从藤。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,541評(píng)論 1 305
  • 那天锁蠕,我揣著相機(jī)與錄音夷野,去河邊找鬼。 笑死荣倾,一個(gè)胖子當(dāng)著我的面吹牛悯搔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播舌仍,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼妒貌,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼通危!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起灌曙,我...
    開(kāi)封第一講書人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤菊碟,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后平匈,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體框沟,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年增炭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拧晕。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡隙姿,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出厂捞,到底是詐尸還是另有隱情输玷,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布靡馁,位于F島的核電站欲鹏,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏臭墨。R本人自食惡果不足惜赔嚎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望胧弛。 院中可真熱鬧尤误,春花似錦、人聲如沸结缚。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)红竭。三九已至尤勋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間茵宪,已是汗流浹背最冰。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留眉厨,地道東北人锌奴。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓檬嘀,卻偏偏與公主長(zhǎng)得像然低,于是被迫代替她去往敵國(guó)和親吨拗。 傳聞我的和親對(duì)象是個(gè)殘疾皇子检柬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容