亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? dianhuaben.cpp

?? 電話本管理程序 1. 添加電話簿記錄 2. 顯示電話簿記錄 3. 根據(jù)姓名查詢電話簿數(shù)據(jù)4. 根據(jù)姓名刪除電話簿數(shù)據(jù) 5. 根據(jù)姓名修改電話簿數(shù)據(jù) 6. 智能查找電話簿數(shù)據(jù) 0. 退出系統(tǒng)
?? CPP
字號:
/*電話簿管理—源代碼及關(guān)鍵源代碼注解如下*/


#include<fstream.h>
#include<conio.h>
#include<iostream.h>
#include<iomanip.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>

class CTelRecord	//定義電話簿記錄類						
{private:
	int nYear,nMonth,nDay,nHour,nMinute;			//時(shí)間單元
	char Name[20];       //電話簿的數(shù)據(jù),姓名
    char Homenum[20];     //電話號碼
	
public:
	CTelRecord();
	CTelRecord(char *name,char *homenum);				//構(gòu)造函數(shù)
	void SetRecord(char * name,char *homenum);			//輸入數(shù)據(jù)函數(shù)
	int Compare(CTelRecord &);						//比較函數(shù),比較姓名
	void Show();									//打印數(shù)據(jù)函數(shù)
	void Modify(char *homenum);					//修改結(jié)點(diǎn)上的數(shù)據(jù)
	int LookChar(char *letter);				//根據(jù)首字母查找匹配的姓名
	char * GetName(){return Name;}			//返回姓名	
};
class CNode                      //定義結(jié)點(diǎn)類
{
private:
	CTelRecord * pData;			//用于指向數(shù)據(jù)類的指針
	CNode * pNext;           //指向鏈表下一結(jié)點(diǎn)的指針
public:
	
	CNode(){ pData=0;pNext=0;}		//結(jié)點(diǎn)構(gòu)造函數(shù)
	CNode(CNode &node)				//用于拷貝的構(gòu)造函數(shù)
	{
		pData=node.pData;
		pNext=node.pNext;
	}
	void InputData(CTelRecord *pdata){ pData=pdata; }		//輸入數(shù)據(jù)
	void ShowNode(){ pData->Show(); }
	CTelRecord * GetData(){ return pData;}
	friend class CList;				//定義鏈表類為友元類

};
class CList					//定義鏈表類
{
private:
	CNode * pHead;			//鏈表頭結(jié)點(diǎn)指針
public:
	CList(){ pHead=0; }			
	~CList(){ DeleteList(); }
	void AddNode(CNode * pnode);		//首部添加結(jié)點(diǎn)
	CNode * DeleteNode(CNode *);			//刪除一個(gè)指定的結(jié)點(diǎn),返回該結(jié)點(diǎn)的指針
	CNode * LookUp(CTelRecord &);	/*查找一個(gè)指定的數(shù)據(jù),返回該數(shù)據(jù)所在結(jié)點(diǎn)在鏈表中的指針,若未找
                                   到返回0  */
	void ShowList();			//打印整個(gè)鏈表
	void DeleteList();			//刪除整個(gè)鏈表
	CNode * GetListHead(){return pHead;}		//返回鏈表首結(jié)點(diǎn)
	CNode * GetListNextNode(CNode *);			//返回鏈表指定結(jié)點(diǎn)的下一個(gè)結(jié)點(diǎn)
	void Insert(CNode * pnode);				//按姓名插入一個(gè)結(jié)點(diǎn)
	
};
inline istream & Flush(istream & stream)		//清空輸入緩沖區(qū)
{
	stream.clear();
	int chars_to_skip=stream.rdbuf()->in_avail();
	return stream.ignore(chars_to_skip);
}
void main()
{
	int choice;
	CList list;
	CTelRecord *p;
	CNode *pn;
	char name[20];			//用于輸入姓名
	char homenum[20];        //用于輸入家庭電話
	char str[20];	
	ifstream infile("FRIENDS.DAT",ios::in|ios::nocreate);		//從文件中讀入鏈表
	if(!infile)
	{
		cout<<"歡迎使用電話簿管理程序.\n"<<flush;
		system("pause");
		system("cls");
		
	}
	else 
	{
		CTelRecord pitem;
		infile.read(reinterpret_cast<char *>(&pitem),sizeof(CTelRecord));
		while(! infile.eof())
		{	
			p=new CTelRecord;
			*p=pitem;
			pn=new CNode;
			pn->InputData(p);
			list.Insert(pn);     //將結(jié)點(diǎn)插入鏈表
			infile.read(reinterpret_cast<char *>(&pitem),sizeof(CTelRecord));
		}
		
		
	}
	infile.close();            //關(guān)閉輸入文件

	do
	{
		cout<<"\n		歡迎進(jìn)入電話簿管理系統(tǒng)    "<<endl<<endl;
		cout<<"   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~";
		cout<<"\n\n		1. 添加電話簿記錄 "
			<<"\n\n		2. 顯示電話簿記錄 "
			<<"\n\n		3. 根據(jù)姓名查詢電話簿數(shù)據(jù)"
			<<"\n\n		4. 根據(jù)姓名刪除電話簿數(shù)據(jù)"
			<<"\n\n		5. 根據(jù)姓名修改電話簿數(shù)據(jù)"
			<<"\n\n		6. 智能查找電話簿數(shù)據(jù) "
			<<"\n\n		0. 退出系統(tǒng) "<<endl<<endl;
		cout<<"   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl<<endl;
		cout<<"                                   0610200256  張佳斌";
		cout<<"\n\n輸入選擇: "<<endl;
		Flush(cin);
		cin.getline(str,20);
		choice=atoi(str);
		switch(choice)
		{
		case 1:           //添加電話簿記錄
			system("cls");
			cout<<"輸入姓名(拼音):";             
			Flush(cin);
			cin.getline(name,20);              //獲取姓名數(shù)據(jù)
			cout<<endl;
			cout<<"輸入家庭電話:";               
			Flush(cin);
			cin.getline(homenum,20);             //獲取家庭電話數(shù)據(jù)
			cout<<endl;
			p=new CTelRecord(name,homenum);             //開辟電話簿記錄類新空間
			pn=new CNode;                         //開辟結(jié)點(diǎn)類新空間
			pn->InputData(p);                // 結(jié)點(diǎn)數(shù)據(jù)輸入函數(shù)
			list.Insert(pn);                //結(jié)點(diǎn)數(shù)據(jù)插入鏈表
			system("cls");
			break;
		case 2:                //顯示電話簿記錄
			system("cls");             //清空屏幕
			pn=list.GetListHead();                   
			if(pn==0)             //結(jié)點(diǎn)數(shù)據(jù)為空時(shí)
			{
				cout<<"無電話簿數(shù)據(jù)."<<endl;
				system("pause");
				system("cls");


			}
			else                //輸出結(jié)點(diǎn)數(shù)據(jù)
			{
				list.ShowList();
				system("pause");
				system("cls");
			}
			
			break;
		case 3:                        //根據(jù)姓名查詢電話簿數(shù)據(jù)
		    system("cls");              //清空屏幕
			cout<<"輸入姓名(拼音):";
			Flush(cin);
			cin.getline(name,20);       //獲取姓名
			p=new CTelRecord(name,homenum);      //開辟電話簿記錄類新空間
			pn=list.LookUp(*p);         //查找數(shù)據(jù)函數(shù)
			if(pn)                   //結(jié)點(diǎn)數(shù)據(jù)不為空則輸出結(jié)點(diǎn)數(shù)據(jù),為空則輸出無電話簿記錄
			{
				pn->GetData()->Show();
				system("pause");
				system("cls");
			}
			else 
			{
					cout<<"\n無電話簿數(shù)據(jù) \n\n"<<flush;                  //結(jié)點(diǎn)數(shù)據(jù)為空輸出無電話簿數(shù)據(jù)
					system("pause");
					system("cls");
			}
			
			delete p;
			break;
		case 4:               //根據(jù)姓名刪除電話簿記錄
			system("cls");
			cout<<"輸入姓名(拼音):";
			Flush(cin);
			cin.getline(name,20);
			cout<<endl;
			p=new CTelRecord(name,homenum);
			pn=list.LookUp(*p);
			if(pn)  
			{
				char YesNo;
				cout<<"找到電話簿數(shù)據(jù),確定刪除(y/n):";             //用戶選擇是否刪除
				cin>>YesNo;
				if(YesNo=='y'||YesNo=='Y')  list.DeleteNode(pn);
				system("cls");           //清空屏幕
			}
			else 
			{
					cout<<"\n無電話簿數(shù)據(jù) \n\n"<<flush;       //若無數(shù)據(jù),則輸出無電話簿數(shù)據(jù)
					system("pause");
					system("cls");
			}
			delete p;
			break;
		case 5:                          //根據(jù)姓名修改電話簿數(shù)據(jù)
			system("cls");
			cout<<"輸入姓名(拼音):";
			Flush(cin);
			cin.getline(name,20);
			p=new CTelRecord(name,homenum);
			pn=list.LookUp(*p);
			if(pn) pn->GetData()->Show();
			else 
			{
					cout<<"\n無電話簿數(shù)據(jù) \n\n"<<flush; 
					system("pause");
					system("cls");
					break;
			}

			cout<<"\n\n1. 只修改電話號碼";                    //選擇只修改電話號碼
			cout<<"\n\n2. 修改電話號碼和姓名 ";              //選擇電話號碼和姓名均更改
			cout<<"\n\n輸入選擇: ";
			cin>>choice;
			switch(choice)
			{case  1:
				cout<<"輸入電話號碼:";
				Flush(cin);
				cin.getline(homenum,20);
			    cout<<endl;
				pn->GetData()->Modify(homenum);    //修改結(jié)點(diǎn)數(shù)據(jù)
				break;
			                  
			 case  2:              //可修改結(jié)點(diǎn)上的所有數(shù)據(jù)
				list.DeleteNode(pn);                
				cout<<"輸入姓名(拼音):";               
				Flush(cin);
				cin.getline(name,20);          //修改姓名
				cout<<endl;
				cout<<"輸入電話號碼:";
				Flush(cin);
				cin.getline(homenum,20);             //修改家庭電話
			    cout<<endl;
				p=new CTelRecord(name,homenum);//新的電話簿記錄類
				pn=new CNode;                //新結(jié)點(diǎn)類
				pn->InputData(p);
				list.Insert(pn);
				break;
			 default:
				 cout<<"輸入錯(cuò)誤\n";
				 break;
			}
			delete p;
			system("cls");
			break;
		case 6:                       //智能查找
			system("cls");
		
			Flush(cin);
			cout<<"輸入姓的首字母:";
			cin.getline(name,20);
			
			pn=list.GetListHead();                 //提取鏈表首結(jié)點(diǎn)
			while(pn)
			{
				
				p=pn->GetData();                   
				if(p->LookChar(name)==1)			
					p->Show();
				pn=list.GetListNextNode(pn);
			}
			system("pause");
			system("cls");
			break;
		case 0:
			break;
		default:
			cout<<"選擇錯(cuò)誤!\n"<<flush;
			system("pause");
			system("cls");
		}
	}while(choice!=0);
	ofstream outfile("FRIENDS.DAT");			//從鏈表中寫入文件
	if(!outfile)
	{
	cout<<"錯(cuò)誤,不能打開文件";
	getch();
	exit(1);
	}
	pn=list.GetListHead();
	while(pn)
	{
	p=pn->GetData();
	outfile.write(reinterpret_cast<const char *>(p),sizeof(CTelRecord));
	pn=list.GetListNextNode(pn);
	}
	outfile.close();

}

CTelRecord::CTelRecord()						//數(shù)據(jù)初始化
{
	strcpy(Name,"\0");
	strcpy(Homenum,"\0");
	time_t time_date;                          //時(shí)間轉(zhuǎn)換
	tm CurrentTime;
	time_date=time(NULL);
	CurrentTime=*localtime(& time_date);
	nYear=CurrentTime.tm_year+1900;
	nMonth=CurrentTime.tm_mon+1;
	nDay=CurrentTime.tm_mday;
	nHour=CurrentTime.tm_hour;
	nMinute=CurrentTime.tm_min;
}

CTelRecord::CTelRecord(char * name,char * homenum)         //結(jié)點(diǎn)數(shù)據(jù)賦值
{
	strcpy(Name,name);
	strcpy(Homenum,homenum);
	time_t time_date;
	tm CurrentTime;
	time_date=time(NULL);                            //寫入時(shí)間
	CurrentTime=*localtime(& time_date);
	nYear=CurrentTime.tm_year+1900;
	nMonth=CurrentTime.tm_mon+1;
	nDay=CurrentTime.tm_mday;
	nHour=CurrentTime.tm_hour;
	nMinute=CurrentTime.tm_min;

}

void CTelRecord::SetRecord(char * name,char * homenum)	       //修改結(jié)點(diǎn)數(shù)據(jù)
{
	strcpy(Name,name);
	strcpy(Homenum,homenum);
}

int CTelRecord::Compare(CTelRecord & pitem)              //比較函數(shù),比較姓名,
{
	int n;
	n=strcmp(Name,pitem.Name);
	if(n!=0)  return 0;
	else return 1;
}

void CTelRecord::Show()             //輸出數(shù)據(jù)
{
	
	cout<<"姓名:   "<<Name<<endl;			//輸出姓名
	cout <<"家庭電話:  "<<Homenum<<endl;          //輸出電話號碼	      
	cout<<"時(shí)間:"<<nYear<<"-"<<nMonth<<"-"<<nDay<<" "
		<<nHour<<":"<<nMinute<<endl; //存儲時(shí)間的輸出
	cout<<endl;			
}
 
void CTelRecord::Modify(char * homenum) //修改結(jié)點(diǎn)上的電話號碼
{
	strcpy(Homenum,homenum);       //修改電話號碼	
}

int CTelRecord::LookChar(char  * letter)			//首字母匹配返回1,否則返回0
{
	if(Name[0]==letter[0])         
		return 1;
	return 0;
}




void CList::AddNode(CNode *pnode)				//添加結(jié)點(diǎn)
{
	if(pHead==0)
	{
		pHead=pnode;
		pnode->pNext=0;
	}
	else 
	{
		pnode->pNext=pHead;
		pHead=pnode;
	}
}


CNode * CList::DeleteNode(CNode *pnode)				//刪除一個(gè)指定的結(jié)點(diǎn),返回該結(jié)點(diǎn)的指針
{
	if(pnode==pHead)
	{
		pHead=pnode->pNext;
		pnode->pNext=0;
	}
	else
	{	
		CNode *p=pHead;
		while(p->pNext!=pnode)
			p=p->pNext;
		p->pNext=pnode->pNext;
		pnode->pNext=0;
	}
	return(pnode);
}

CNode * CList::LookUp(CTelRecord &pitem)/*查找一個(gè)指定的數(shù)據(jù),返回該數(shù)據(jù)所在結(jié)點(diǎn)
										在鏈表中的指針,若未找到返回0 */
{
	CNode * pn=pHead;
	while(pn)
	{
		if(pn->pData->Compare(pitem))  return pn;
		pn=pn->pNext;
	}

	return 0;
}

void CList::ShowList()				//打印整個(gè)鏈表
{
	CNode * p=pHead;
	while(p)
	{
		p->pData->Show();
		p=p->pNext;
	}
}

void CList::DeleteList()		//刪除整個(gè)鏈表
{
	CNode * p,* q;
	p=pHead;
	while(p)
	{
		delete p->pData;
		q=p;
		p=p->pNext;
		delete q;
	}
}
CNode * CList::GetListNextNode(CNode *pnode)                   //返回鏈表指定結(jié)點(diǎn)的下一個(gè)結(jié)點(diǎn)
{
	return pnode->pNext;
}

void CList::Insert(CNode * pnode)				//根據(jù)姓名的順序插入鏈表
{
	CNode * p1,* p2;
	if(pHead==0)
	{
		pHead=pnode;
		pnode->pNext=0;
		return;
	}
	if(strcmp(pHead->pData->GetName(),pnode->pData->GetName())>=0)
	{	
		pnode->pNext=pHead;
		pHead=pnode;
		return;
	}	
		 
	p2=p1=pHead;
	while(p2->pNext&&strcmp(p2->pData->GetName(),pnode->pData->GetName())<0)
	{
		p1=p2;
		p2=p2->pNext;
	}
	if(strcmp(p2->pData->GetName(),pnode->pData->GetName())<0)
	{
		p2->pNext=pnode;
		pnode->pNext=0;
	}
	else
	{
		pnode->pNext=p2;
		p1->pNext=pnode;
	}
	
}




?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久三| 亚洲超碰精品一区二区| 欧美综合视频在线观看| 麻豆传媒一区二区三区| 日韩理论片中文av| 精品处破学生在线二十三| 欧美色手机在线观看| 粉嫩嫩av羞羞动漫久久久| 日韩电影一区二区三区四区| 日韩理论片一区二区| 2023国产精品| 日韩免费高清视频| 91高清视频在线| 成人精品小蝌蚪| 黑人巨大精品欧美黑白配亚洲| 亚洲国产精品自拍| 综合网在线视频| 亚洲国产高清在线| 精品三级av在线| 91精品国产欧美一区二区成人| 日本丶国产丶欧美色综合| 成人晚上爱看视频| 韩国午夜理伦三级不卡影院| 视频一区视频二区在线观看| 一区二区免费在线播放| 亚洲女人****多毛耸耸8| 国产欧美一区二区精品久导航| 欧美成人官网二区| 欧美mv日韩mv国产网站app| 在线综合视频播放| 5858s免费视频成人| 欧美亚洲一区三区| 91福利资源站| 欧美日韩免费一区二区三区| 欧美午夜免费电影| 欧美性受xxxx黑人xyx| 色94色欧美sute亚洲线路一ni | 国产伦精品一区二区三区视频青涩 | 色婷婷综合五月| 97超碰欧美中文字幕| 成人午夜在线播放| 国产99一区视频免费| 国产精品系列在线观看| 高清成人在线观看| 成人av片在线观看| 色综合中文字幕国产| 丁香亚洲综合激情啪啪综合| 国产精品综合av一区二区国产馆| 狠狠色丁香久久婷婷综| 国产大陆亚洲精品国产| 国产盗摄视频一区二区三区| 成人性生交大合| 不卡视频在线观看| 99在线精品视频| 一本大道av伊人久久综合| 成人av第一页| 欧洲中文字幕精品| 777色狠狠一区二区三区| 91精品在线免费| 久久久久久免费网| 亚洲欧美激情视频在线观看一区二区三区 | 蜜臀av一区二区在线免费观看 | 亚洲在线观看免费| 天堂一区二区在线免费观看| 蜜臀av一区二区| 国产成人在线视频播放| 成人av网站免费| 欧美久久免费观看| 日韩精品中午字幕| 国产精品高潮呻吟| 午夜伦欧美伦电影理论片| 精品一区二区三区日韩| 国产成人av电影在线观看| 91在线视频免费91| 欧美日本在线播放| 久久精品免视看| 亚洲综合激情小说| 久久99国产精品免费| 成人av在线资源网| 91精品一区二区三区久久久久久| 亚洲精品在线网站| 亚洲免费观看高清完整版在线观看| 日韩成人免费电影| 成人av影视在线观看| 欧美一区二区三区系列电影| 欧美国产一区在线| 日韩中文字幕一区二区三区| 国产91清纯白嫩初高中在线观看 | 性做久久久久久免费观看欧美| 韩国v欧美v日本v亚洲v| av福利精品导航| 日韩视频国产视频| 亚洲欧美激情一区二区| 黄色日韩网站视频| 91麻豆精品国产| 亚洲人成亚洲人成在线观看图片 | 国产福利一区在线观看| 911精品国产一区二区在线| 国产精品欧美一级免费| 精品在线视频一区| 欧美日韩高清不卡| 亚洲精品国产a久久久久久| 韩国视频一区二区| 欧美一级生活片| 伊人色综合久久天天| 成人av手机在线观看| 精品第一国产综合精品aⅴ| 视频一区在线视频| 在线精品亚洲一区二区不卡| 亚洲国产精华液网站w| 久久99精品国产.久久久久久| 欧美精品丝袜久久久中文字幕| 亚洲日本成人在线观看| 国产成人高清视频| 久久综合丝袜日本网| 麻豆极品一区二区三区| 欧美日韩一区二区三区视频 | 亚洲福利一区二区三区| 色哟哟精品一区| 国产精品久久久久久久裸模| 国产传媒欧美日韩成人| 日韩精品中文字幕在线一区| 日韩主播视频在线| 678五月天丁香亚洲综合网| 亚洲高清免费观看| 欧美日韩一区二区三区免费看 | 国产精品99久| 久久日一线二线三线suv| 另类人妖一区二区av| 欧美日韩一区二区在线视频| 亚洲综合一区二区精品导航| 日本韩国一区二区三区| 玉足女爽爽91| 欧美午夜精品久久久久久超碰| 亚洲综合男人的天堂| 欧美三区在线观看| 香蕉久久夜色精品国产使用方法| 色女孩综合影院| 亚洲激情综合网| 欧美午夜精品一区二区三区| 亚洲h动漫在线| 91精品国产免费久久综合| 毛片av中文字幕一区二区| 日韩精品一区二区在线观看| 精彩视频一区二区| 久久久精品中文字幕麻豆发布| 丁香激情综合国产| 亚洲欧洲色图综合| 欧美午夜一区二区三区 | 一本大道久久a久久精二百| 一区二区日韩av| 欧美一区二区三区在线看| 韩国v欧美v亚洲v日本v| 国产精品乱人伦一区二区| 91视频一区二区三区| 亚洲va国产va欧美va观看| 日韩亚洲欧美综合| 国产白丝精品91爽爽久久| 亚洲欧美影音先锋| 欧美日韩高清一区二区| 国内外成人在线视频| 中文字幕av一区二区三区高| 91国偷自产一区二区三区观看| 天堂蜜桃91精品| 精品99999| 91免费国产在线| 日韩电影在线免费观看| 久久久精品国产免大香伊| 99精品欧美一区二区三区小说| 国产酒店精品激情| 亚洲人成7777| 91精品国模一区二区三区| 国产成人免费网站| 亚洲在线一区二区三区| 精品国产精品网麻豆系列| jizzjizzjizz欧美| 日韩二区三区四区| 国产精品网站导航| 3d动漫精品啪啪1区2区免费| 国产成人99久久亚洲综合精品| 一区二区三国产精华液| 国产午夜亚洲精品理论片色戒| 色国产综合视频| 国产精品1区二区.| 国产精品一区二区91| 一二三四社区欧美黄| 久久久久国产精品免费免费搜索| 欧洲国内综合视频| 国产大陆亚洲精品国产| 日韩国产一区二| 亚洲色图都市小说| 久久久久久久精| 8x8x8国产精品| a美女胸又www黄视频久久| 久久国产人妖系列| 亚洲国产精品自拍| 中文字幕亚洲视频| 久久精品亚洲麻豆av一区二区| 欧美丰满嫩嫩电影| 99re亚洲国产精品|