老師要求要用模板類 我真的一臉懵逼 完全不知道C++怎么搞這玩意兒?希望老司機們講解并幫忙改成規(guī)范符合要求的代碼#include<iostream>#include <stdio.h>#include <fstream>#include <string.h> #include <iomanip>#include <string>#define N 20using namespace std;struct {char name[20]; //人名 20個字符內char job[20]; //工作單位 char tel[11]; //電話號碼 11位char email[20]; //email地址}TelInfo;?void menu();?void addrecord(){? char ch;? ofstream ofile("Result.txt",ios_base::out);? do?? {??? cout<<"請輸入通訊錄信息"<<endl;??? cout<<"請輸入姓名"<<endl;??? cin>>TelInfo.name;??? cout<<"請輸入工作單位"<<endl;?cin>>TelInfo.job;??? cout<<"請輸入電話號碼"<<endl;?cin>>TelInfo.tel;??? cout<<"請輸入郵件地址"<<endl;?cin>>TelInfo.email;??? ofile<<TelInfo.name<<"? "<<TelInfo.job<<"? "<<TelInfo.tel<<"? "<<TelInfo.email<<endl;??? cout<<"您還要輸入他人的通訊錄信息嗎(y/n))?"<<endl;??? std::cin>>ch;?? }while(ch=='y'); //yes情況下循環(huán)? ofile.close();}void? changecord(){?ifstream da("Result.txt", ios_base::in);?string str; ?bool flag = true;?ofstream data("return.txt", ios_base::out);?char a[20];?if (!da)??? {??????? cout<<"找不到文件!!!!"<<endl;??????? return;??? }?cout<<"請輸入你要修改人的姓名"<<endl;?cin>>a;?while ( da>>TelInfo.name)??? {? ??????? getline(da, str);??????? ??????? if (strcmp(TelInfo.name,a)==0)??????? {??????????? cout<<"你想修改的聯(lián)系人:" <<endl;??????????? cout<<TelInfo.name<<"? "<<str<<endl;??????????? flag=false;??????????? break;??????? }??????? ??????????? data<<TelInfo.name??????????? <<" "<<str<<endl;??? }?if(flag)cout<<"沒有該人"<<endl;?else?{??????? while (getline(da, str))??????? {??????????? data<<str <<endl;??????? }??????? da.close();??????? data.close();??????? ifstream in("return.txt", ios::in);??????? ofstream out("Result.txt", ios::out);??????? if (!out || !in)??????? {??????????? cout<<endl<<"對不起不能打開文件!!!"<<endl<<endl;??????????? return;??????? }??????? while (getline(in, str))??????? {??????????? out<<str<<endl;??????? } ??????? ??????? in.close();??????? ofstream change("Result.txt",ios_base::app);??????? cout<<"請輸入正確的姓名"<<endl;??????? cin>>TelInfo.name;??????? cout<<"請輸入正確的工作單位"<<endl;???? cin>>TelInfo.job;??????? cout<<"請輸入正確的電話號碼"<<endl;???? cin>>TelInfo.tel;??????? cout<<"請輸入正確的郵件地址"<<endl;???? cin>>TelInfo.email;??????? out<<TelInfo.name<<"? "<<TelInfo.job<<"? "<<TelInfo.tel<<"? "<<TelInfo.email<<endl;??????? cout<<"這個人的信息已經從你的通迅錄中修改!!!" <<endl;??out.close();?}}void delrecord(){?ifstream da("Result.txt", ios_base::in);?string str;?bool flag = true;?ofstream data("return.txt", ios_base::out);?char a[20];?if (!da)??? {??????? cout<<"找不到文件!!!!"<<endl;??????? return;??? }?cout<<"請輸入你要刪除人的姓名"<<endl;?cin>>a;?while ( da>>TelInfo.name)??? {? ??????? getline(da, str);????? if (strcmp(TelInfo.name,a)==0)??????? {??????????? cout <<endl <<"你想刪除的聯(lián)系人:" <<endl;??????????? cout<<TelInfo.name<<"? "<<str<<endl;??????????? flag=false;??????????? break;??????? }??????? ??????????? data<<TelInfo.name??????????? <<" "<<str<<endl;??? }?if(flag)cout<<"沒有該人"<<endl;?else?{??????? while (getline(da, str))??????? {??????????? data<<str <<endl;??????? }??????? da.close();??????? data.close();??????? ifstream in("return.txt", ios::in);??????? ofstream out("Result.txt", ios::out);??????? if (!out || !in)??????? {??????????? cout<<endl<<"對不起不能打開文件!!!"<<endl<<endl;??????????? return;??????? }??????? while (getline(in, str))??????? {??????????? out<<str<<endl;??????? } ??????? out.close();??????? in.close();??????? cout <<endl <<"這個人的信息已經從你的通迅錄中刪除!!!" <<endl <<endl;?}}void printcord(){?char ch;?ifstream da("Result.txt");??? cout<<"人名 "<<"工作單位 "<<"電話"<<" 郵件"<<endl;?while (da.get(ch))??? cout << ch;??? da.close();}void searchcord(){?char a[20],b[20];?int n; ?ifstream da("Result.txt");?cout<<"請輸入要查找方式:";?cout<<"1.姓名";?cout<<"2.電話號碼"<<endl;?cin>>n;?if(n==1)?{??????? cout<<"請輸入要查詢的姓名"<<endl;??????? cin>>a;? while(da.eof()==0)? {???????? da>>TelInfo.name>>TelInfo.job>>TelInfo.tel>>TelInfo.email;???????? if(strcmp(TelInfo.name,a)==0)?? {??????????????? cout<<"人名 "<<"工作單位 "<<"電話"<<" 郵件"<<endl;??????????????? cout<<TelInfo.name<<"? "<<TelInfo.job<<"? "<<TelInfo.tel<<"? "<<TelInfo.email<<endl;?? }? ? } ? cout<<"沒有該人"<<endl;? da.close();?}?if(n==2)?{??????? cout<<"請輸入要查詢的電話"<<endl;??????? cin>>b;? while(da.eof()==0)? {???????? da>>TelInfo.name>>TelInfo.job>>TelInfo.tel>>TelInfo.email;???????? if(strcmp(TelInfo.tel,b)==0)?? {????????????? cout<<"人名 "<<"工作單位 "<<"電話"<<" 地址"<<endl;????????????? cout<<TelInfo.name<<"? "<<TelInfo.job<<"? "<<TelInfo.tel<<"? "<<TelInfo.email<<endl;?? }? } ? cout<<"沒有該人"<<endl;? da.close();?}??? }void main(){?menu();}void menu(){?? int i;??? for(;;){??????? std::cout<<"?? 歡迎登陸簡易版通訊錄管理系統(tǒng)??? "<<std::endl;??????? std::cout<<"###################################"<<std::endl;??????? std::cout<<"###########您好,歡迎光臨!##########"<<std::endl;??????? std::cout<<"############請選擇操作:############"<<std::endl;??????? std::cout<<"#??????? \t1.添加記錄??????? #"<<std::endl;??????? std::cout<<"#??????? \t2.修改記錄??????? #"<<std::endl;??????? std::cout<<"#??????? \t3.刪除記錄??????? #"<<std::endl;??????? std::cout<<"#??????? \t4.數據顯示??????? #"<<std::endl;??????? std::cout<<"#??????? \t5.查詢記錄??????? #"<<std::endl;??????? std::cout<<"#??????? \t6.退出系統(tǒng)??????? #"<<std::endl;??????? std::cout<<"###################################"<<std::endl;??????? std::cin>>i;??????? if(!std::cin.good()){??????????? std::cout<<"非法輸入!"<<std::endl;??????????? std::cin.clear();??????? }??????? switch(i){??????????? case 1:??????????????? addrecord();??break;??????????? case 2:??????????????? changecord();??????????????? break;??????????? case 3:??????????????? delrecord();??????????????? break;??????????? case 4:??????????????? printcord();??????????????? break;??????????? case 5:??????????????? searchcord();??????????????? break;??????????? case 6:??????????????? return;?????????? default:??????????????? std::cout<<"錯誤的選項!"<<std::endl;??????? }??? }}
添加回答
舉報
0/150
提交
取消