个人通讯录管理系统源代码
- 格式:doc
- 大小:70.50 KB
- 文档页数:11
#include<iostream>#include<cstring>#include<string>#include<fstream>#include<iomanip>#include<stdlib.h>#include<ctime>#include<cmath>void seek();void listpart();void listall();void statistics();void rank();void revise();void cancel();void seekbirthday();using namespace std;class person{public:person(char n[10],int y,int m,int d,char p[15],char e[20]){if(n)strcpy_s(name,10,n);if(p)strcpy_s(phone,15,p);if(e)strcpy_s(email,20,e);year=y,month=m,day=d;}char name[10];int year,month,day;char phone[20];char email[20];};class classmate:public person{public:classmate(char n[10],int y,int m,int d,char p[20],char e[20],char s[20]):person(n,y,m,d,p,e){if(s)strcpy_s(school,20,s);}char school[10];};class teammate:public person{public:teammate(char n[10],int y,int m,int d,char p[20],char e[20],char u[20]):person(n,y,m,d,p,e){if(u)strcpy_s(unit,20,u);}char unit[20];};class Friend:public person{public:Friend(char n[10],int y,int m,int d,char p[20],char e[20],charpl[20]):person(n,y,m,d,p,e){if(pl)strcpy_s(place,20,pl);}char place[20];};class relative:public person{public:relative(char n[10],int y,int m,int d,char p[20],char e[20],char c[20]):person(n,y,m,d,p,e){if(c)strcpy_s(call,10,c);}char call[10];};void classmate1(){int z;cout<<"若要添加同学信息,请输入,若不添加,请输入:";cin>>z;while(z){fstream AddressBook1;int t=1;while(t){char n[10];int y,m,d;char p[20];char e[20];char s[10];cout<<"姓名:";cin>>n;cout<<"出生日期:年:";cin>>y;cout<<"月:";cin>>m;cout<<"日:";cin>>d;cout<<"联系方式:";cin>>p;cout<<"邮箱地址:";cin>>e;cout<<"学校:";cin>>s;classmate one(n,y,m,d,p,e,s);AddressBook1.open("d:\\AddressBook1.txt",ios::out|ios::app);AddressBook1<<"姓名:"<<<<'\n'<<"出生日期:年:"<<one.year<<' '<<"月:"<<one.month<<' '<<"日:"<<one.day<<'\n'<<"联系方式:"<<one.phone<<'\n'<<"邮箱地址:"<<one.email<<'\n'<<"学校:"<<one.school<<'\n'<<'\n'; AddressBook1.close();cout<<"若继续录入,请输入,若不再录入,请输入输入:";cin>>t;}cout<<"若要添加同学信息,请输入,若不添加,请输入:";cin>>z;}int k;cout<<"若要进行其它的选择功能,请输入,若想直接跳出同学栏,进入其它人员栏,请输入:";cin>>k; while(k){system("cls");cout<<"选择菜单"<<'\n'<<"1--修改个人信息"<<'\n'<<"2--删除个人信息"<<'\n'<<"3--按姓名查询个人信息"<<'\n'<<"4--查找日内过生日的人员的信息,以便发贺电"<<'\n'<<"5--按照姓名或出生日期排序,显示输出"<<'\n'<<"6--统计在给定月份出生的人数,并显示输出"<<'\n'<<"7--能列出全体人员的姓名、出生日期、电话和email地址"<<'\n'<<"8--能分别列出同学、同事、朋友、亲戚的所有信息"<<endl;int p=1;while(p){int w;cout<<"请选择:";cin>>w;switch(w){case 1:revise();break;case 2:cancel();break;case 3:seek();break;case 4:seekbirthday();break;case 5:rank();break;case 6:statistics();break;case 7:listpart();break;case 8:listall();break;}cout<<"按任意键继续选择--->"<<endl;system("pause");system("cls");cout<<"选择菜单"<<'\n'<<"1--修改个人信息"<<'\n'<<"2--删除个人信息"<<'\n'<<"3--按姓名查询个人信息"<<'\n'<<"4--查找日内过生日的人员的信息,以便发贺电"<<'\n'<<"5--按照姓名或出生日期排序,显示输出"<<'\n'<<"6--统计在给定月份出生的人数,并显示输出"<<'\n'<<"7--能列出全体人员的姓名、出生日期、电话和email地址"<<'\n'<<"8--能分别列出同学、同事、朋友、亲戚的所有信息"<<endl;cout<<"若继续选择,请输入,若不再选择,请输入:";cin>>p;}k=0;}}void teammate1(){int z;cout<<"若要添加同事信息,请输入,若不添加,请输入:";cin>>z;while(z){fstream AddressBook2;int t=1;while(t){char n[10];int y,m,d;char p[20];char e[20];char u[10];cout<<"姓名:";cin>>n;cout<<"出生日期:年:";cin>>y;cout<<"月:";cin>>m;cout<<"日:";cin>>d;cout<<"联系方式:";cin>>p;cout<<"邮箱地址:";cin>>e;cout<<"单位:";cin>>u;teammate one(n,y,m,d,p,e,u);AddressBook2.open("d:\\AddressBook2.txt",ios::out|ios::app);AddressBook2<<"姓名:"<<<<'\n'<<"出生日期:年:"<<one.year<<' '<<"月:"<<one.month<<' '<<"日:"<<one.day<<'\n'<<"联系方式:"<<one.phone<<'\n'<<"邮箱地址:"<<one.email<<'\n'<<"单位:"<<one.unit<<'\n'<<'\n'; AddressBook2.close();cout<<"若继续录入,请输入,若不再录入,请输入输入:";cin>>t;}cout<<"若要添加同事信息,请输入,若不添加,请输入:";cin>>z;}int k;cout<<"若要进行其它的选择功能,请输入,若想直接跳出同事栏,进入其它人员栏,请输入:";cin>>k; while(k){system("cls");cout<<"选择菜单"<<'\n'<<"1--修改个人信息"<<'\n'<<"2--删除个人信息"<<'\n'<<"3--按姓名查询个人信息"<<'\n'<<"4--查找日内过生日的人员的信息,以便发贺电"<<'\n'<<"5--按照姓名或出生日期排序,显示输出"<<'\n'<<"6--统计在给定月份出生的人数,并显示输出"<<'\n'<<"7--能列出全体人员的姓名、出生日期、电话和email地址"<<'\n' <<"8--能分别列出同学、同事、朋友、亲戚的所有信息"<<endl;int p=1;while(p){int w;cout<<"请选择:";cin>>w;switch(w){case 1:revise();break;case 2:cancel();break;case 3:seek();break;case 4:seekbirthday();break;case 5:rank();break;case 6:statistics();break;case 7:listpart();break;case 8:listall();break;}cout<<"按任意键继续选择--->"<<endl;system("pause");system("cls");cout<<"选择菜单"<<'\n'<<"1--修改个人信息"<<'\n'<<"2--删除个人信息"<<'\n'<<"3--按姓名查询个人信息"<<'\n'<<"4--查找日内过生日的人员的信息,以便发贺电"<<'\n'<<"5--按照姓名或出生日期排序,显示输出"<<'\n'<<"6--统计在给定月份出生的人数,并显示输出"<<'\n'<<"7--能列出全体人员的姓名、出生日期、电话和email地址"<<'\n' <<"8--能分别列出同学、同事、朋友、亲戚的所有信息"<<endl; cout<<"若继续选择,请输入,若不再选择,请输入:";cin>>p;}k=0;}}void Friend1(){int z;cout<<"若要添加朋友信息,请输入,若不添加,请输入:";cin>>z; while(z){fstream AddressBook3;int t=1;while(t){char n[10];int y,m,d;char p[20];char e[20];char pl[10];cout<<"姓名:";cin>>n;cout<<"出生日期:年:";cin>>y;cout<<"月:";cin>>m;cout<<"日:";cin>>d;cout<<"联系方式:";cin>>p;cout<<"邮箱地址:";cin>>e;cout<<"地方:";cin>>pl;Friend one(n,y,m,d,p,e,pl);AddressBook3.open("d:\\AddressBook3.txt",ios::out|ios::app);AddressBook3<<"姓名:"<<<<'\n'<<"出生日期:年:"<<one.year<<' '<<"月:"<<one.month<<' '<<"日:"<<one.day<<'\n'<<"联系方式:"<<one.phone<<'\n'<<"邮箱地址:"<<one.email<<'\n'<<"地方:"<<one.place<<'\n'<<'\n'; AddressBook3.close();cout<<"若继续录入,请输入,若不再,请输入:";cin>>t;}cout<<"若要添加同事信息,请输入,若不添加,请输入:";cin>>z;}int k;cout<<"若要进行其它的选择功能,请输入,若想直接跳出朋友栏,进入其它人员栏,请输入:";cin>>k; while(k){system("cls");cout<<"选择菜单"<<'\n'<<"1--修改个人信息"<<'\n'<<"2--删除个人信息"<<'\n'<<"3--按姓名查询个人信息"<<'\n'<<"4--查找日内过生日的人员的信息,以便发贺电"<<'\n'<<"5--按照姓名或出生日期排序,显示输出"<<'\n'<<"6--统计在给定月份出生的人数,并显示输出"<<'\n'<<"7--能列出全体人员的姓名、出生日期、电话和email地址"<<'\n'<<"8--能分别列出同学、同事、朋友、亲戚的所有信息"<<endl;int p=1;while(p){int w;cout<<"请选择:";cin>>w;switch(w){case 1:revise();break;case 2:cancel();break;case 3:seek();break;case 4:seekbirthday();break;case 5:rank();break;case 6:statistics();break;case 7:listpart();break;case 8:listall();break;}cout<<"按任意键继续选择--->"<<endl;system("pause");system("cls");cout<<"选择菜单"<<'\n'<<"1--修改个人信息"<<'\n'<<"2--删除个人信息"<<'\n'<<"3--按姓名查询个人信息"<<'\n'<<"4--查找日内过生日的人员的信息,以便发贺电"<<'\n'<<"5--按照姓名或出生日期排序,显示输出"<<'\n'<<"6--统计在给定月份出生的人数,并显示输出"<<'\n'<<"7--能列出全体人员的姓名、出生日期、电话和email地址"<<'\n'<<"8--能分别列出同学、同事、朋友、亲戚的所有信息"<<endl;cout<<"若继续选择,请输入,若不再选择,请输入:";cin>>p;}k=0;}}void relative1(){int z;cout<<"若要添加亲戚信息,请输入,若不添加,请输入:";cin>>z;while(z){fstream AddressBook4;int t=1;while(t){char n[10];int y,m,d;char p[20];char e[20];char c[10];cout<<"姓名:";cin>>n;cout<<"出生日期:年:";cin>>y;cout<<"月:";cin>>m;cout<<"日:";cin>>d;cout<<"联系方式:";cin>>p;cout<<"邮箱地址:";cin>>e;cout<<"称呼:";cin>>c;relative one(n,y,m,d,p,e,c);AddressBook4.open("d:\\AddressBook4.txt",ios::out|ios::app);AddressBook4<<"姓名:"<<<<'\n'<<"出生日期:年:"<<one.year<<' '<<"月:"<<one.month<<' '<<"日:"<<one.day<<'\n'<<"联系方式:"<<one.phone<<'\n'<<"邮箱地址:"<<one.email<<'\n'<<"称呼:"<<one.call<<'\n'<<'\n'; AddressBook4.close();cout<<"若继续录入,请输入,若不再录入,请输入:";cin>>t;}cout<<"若要添加同事信息,请输入,若不添加,请输入:";cin>>z;}int k;cout<<"若要进行其它的选择功能,请输入,若想直接跳出亲戚栏,进入其它人员栏,请输入:";cin>>k; while(k){system("cls");cout<<"选择菜单"<<'\n'<<"1--修改个人信息"<<'\n'<<"2--删除个人信息"<<'\n'<<"3--按姓名查询个人信息"<<'\n'<<"4--查找日内过生日的人员的信息,以便发贺电"<<'\n'<<"5--按照姓名或出生日期排序,显示输出"<<'\n'<<"6--统计在给定月份出生的人数,并显示输出"<<'\n'<<"7--能列出全体人员的姓名、出生日期、电话和email地址"<<'\n'<<"8--能分别列出同学、同事、朋友、亲戚的所有信息"<<endl;int p=1;while(p){int w;cout<<"请选择:";cin>>w;switch(w){case 1:revise();break;case 2:cancel();break;case 3:seek();break;case 4:seekbirthday();break;case 5:rank();break;case 6:statistics();break;case 7:listpart();break;case 8:listall();break;}cout<<"按任意键继续选择--->"<<endl;system("pause");system("cls");cout<<"选择菜单"<<'\n'<<"1--修改个人信息"<<'\n'<<"2--删除个人信息"<<'\n'<<"3--按姓名查询个人信息"<<'\n'<<"4--查找日内过生日的人员的信息,以便发贺电"<<'\n'<<"5--按照姓名或出生日期排序,显示输出"<<'\n'<<"6--统计在给定月份出生的人数,并显示输出"<<'\n'<<"7--能列出全体人员的姓名、出生日期、电话和email地址"<<'\n'<<"8--能分别列出同学、同事、朋友、亲戚的所有信息"<<endl;cout<<"若继续选择,请输入,若不再选择,请输入:";cin>>p;}k=0;}}void listall(){cout<<"-----------------------------------------------------"<<endl; cout<<"同学所有信息如下:"<<endl;fstream obj1;obj1.open("d:\\AddressBook1.txt",ios::in);char a[30];while(!obj1.eof()){obj1.getline(a,30);cout<<a<<endl;}obj1.close();cout<<"-----------------------------------------------------"<<endl; cout<<"同事所有信息如下:"<<endl;fstream obj2;obj2.open("d:\\AddressBook2.txt",ios::in);char b[30];while(!obj2.eof()){obj2.getline(b,30);cout<<b<<endl;}obj2.close();cout<<"-----------------------------------------------------"<<endl; cout<<"朋友所有信息如下:"<<endl;fstream obj3;obj3.open("d:\\AddressBook3.txt",ios::in);char c[30];while(!obj3.eof()){obj3.getline(c,30);cout<<c<<endl;}obj3.close();cout<<"-----------------------------------------------------"<<endl; cout<<"亲戚所有信息如下:"<<endl;fstream obj4;obj4.open("d:\\AddressBook4.txt",ios::in);char f[30];while(!obj4.eof()){obj4.getline(f,30);cout<<f<<endl;}obj4.close();cout<<"-----------------------------------------------------"<<endl;}void listpart(){string s1,s2,s3,s4,s5,s6,s7;cout<<"同学基本信息如下:"<<endl;cout<<"————————————————————————————"<<endl; fstream obj1;obj1.open("d:\\AddressBook1.txt",ios::in);while(obj1>>s1>>s2>>s3>>s4>>s5>>s6>>s7){cout<<s1<<'\n'<<s2<<' '<<s3<<' '<<s4<<'\n'<<s5<<'\n'<<s6<<'\n';cout<<"————————————————————————————"<<endl;}obj1.close();cout<<"同事基本信息如下:"<<endl;cout<<"————————————————————————————"<<endl; fstream obj2;obj2.open("d:\\AddressBook2.txt",ios::in);while(obj2>>s1>>s2>>s3>>s4>>s5>>s6>>s7){cout<<s1<<'\n'<<s2<<' '<<s3<<' '<<s4<<'\n'<<s5<<'\n'<<s6<<'\n';cout<<"————————————————————————————"<<endl;}obj2.close();cout<<"朋友基本信息如下:"<<endl;cout<<"————————————————————————————"<<endl; fstream obj3;obj3.open("d:\\AddressBook3.txt",ios::in);while(obj3>>s1>>s2>>s3>>s4>>s5>>s6>>s7){cout<<s1<<'\n'<<s2<<' '<<s3<<' '<<s4<<'\n'<<s5<<'\n'<<s6<<'\n';cout<<"————————————————————————————"<<endl;}obj3.close();cout<<"亲戚基本信息如下:"<<endl;cout<<"————————————————————————————"<<endl; fstream obj4;obj4.open("d:\\AddressBook4.txt",ios::in);while(obj4>>s1>>s2>>s3>>s4>>s5>>s6>>s7){cout<<s1<<'\n'<<s2<<' '<<s3<<' '<<s4<<'\n'<<s5<<'\n'<<s6<<'\n';cout<<"————————————————————————————"<<endl;}obj4.close();}void seek(){int w=1;while(w){string s9,s0="姓名:";int t=0;cout<<"请输入要查询人的姓名:";cin>>s9;string s1,s2,s3,s4,s5,s6,s7,s8;s8=s0;s8+=s9;fstream obj1;obj1.open("d:\\AddressBook1.txt",ios::in);while(obj1>>s1>>s2>>s3>>s4>>s5>>s6>>s7){if(s8==s1){t=1;cout<<"输入的人是同学,他/她的个人信息如下:"<<endl;cout<<s1<<'\n'<<s2<<' '<<s3<<' '<<s4<<'\n'<<s5<<'\n'<<s6<<'\n'<<s7<<'\n';} }if(!t)cout<<"同学中没有这个人的信息"<<endl;t=0;obj1.close();fstream obj2;obj2.open("d:\\AddressBook2.txt",ios::in);while(obj2>>s1>>s2>>s3>>s4>>s5>>s6>>s7){if(s8==s1){t=1;cout<<"输入的人是同事,他/她的个人信息如下:"<<endl;cout<<s1<<'\n'<<s2<<' '<<s3<<' '<<s4<<'\n'<<s5<<'\n'<<s6<<'\n'<<s7<<'\n';} }if(!t)cout<<"同事中没有这个人的信息"<<endl;t=0;obj2.close();fstream obj3;obj3.open("d:\\AddressBook3.txt",ios::in);while(obj3>>s1>>s2>>s3>>s4>>s5>>s6>>s7){if(s8==s1){t=1;cout<<"输入的人是朋友,他/她的个人信息如下:"<<endl;cout<<s1<<'\n'<<s2<<' '<<s3<<' '<<s4<<'\n'<<s5<<'\n'<<s6<<'\n'<<s7<<'\n';} }if(!t)cout<<"朋友中没有这个人的信息"<<endl;t=0;obj3.close();fstream obj4;obj4.open("d:\\AddressBook4.txt",ios::in);while(obj4>>s1>>s2>>s3>>s4>>s5>>s6>>s7){if(s8==s1){t=1;cout<<"输入的人是亲戚,他/她的个人信息如下:"<<endl;cout<<s1<<'\n'<<s2<<' '<<s3<<' '<<s4<<'\n'<<s5<<'\n'<<s6<<'\n'<<s7<<'\n';} }if(!t)cout<<"亲戚中没有这个人的信息"<<endl;t=0;obj4.close();cout<<"若要继续查找某人,请输入,若不再查找,请输入:";cin>>w;system("cls");}}void statistics(){cout<<"<<请输入你要选的月份,程序将把该月份的各种关系的人员的信息输出,并会统计在该月份出生的人数>>"<<endl;string s0="月:",s9;int t=0,w=0,total=0,k=1;string s1,s2,s3,s4,s5,s6,s7,s8;while(k){cout<<"所选月份是:";cin>>s9;s8=s0;s8+=s9;fstream obj1;obj1.open("d:\\AddressBook1.txt",ios::in);while(obj1>>s1>>s2>>s3>>s4>>s5>>s6>>s7){if(s8==s3){t=1,total++;if(!w){cout<<"该月份出生的同学的信息如下:"<<endl;cout<<"————————————————————————————"<<endl;}w=1;cout<<s1<<'\n'<<s2<<' '<<s3<<' '<<s4<<'\n'<<s5<<'\n'<<s6<<'\n'<<s7<<'\n';cout<<"————————————————————————————"<<endl;}}w=0;if(!t){cout<<"没有在该月份出生的同学"<<endl;cout<<"————————————————————————————"<<endl;}t=0;obj1.close();fstream obj2;obj2.open("d:\\AddressBook2.txt",ios::in);while(obj2>>s1>>s2>>s3>>s4>>s5>>s6>>s7){if(s8==s3){t=1,total++;if(!w){cout<<"该月份出生的同事的信息如下:"<<endl;cout<<"————————————————————————————"<<endl;}w=1;cout<<s1<<'\n'<<s2<<' '<<s3<<' '<<s4<<'\n'<<s5<<'\n'<<s6<<'\n'<<s7<<'\n';cout<<"————————————————————————————"<<endl;}}w=0;if(!t){cout<<"没有在该月份出生的同事"<<endl;cout<<"————————————————————————————"<<endl;}t=0;obj2.close();fstream obj3;obj3.open("d:\\AddressBook3.txt",ios::in);while(obj3>>s1>>s2>>s3>>s4>>s5>>s6>>s7){if(s8==s3){t=1,total++;if(!w){cout<<"该月份出生的朋友的信息如下:"<<endl;cout<<"————————————————————————————"<<endl; }w=1;cout<<s1<<'\n'<<s2<<' '<<s3<<' '<<s4<<'\n'<<s5<<'\n'<<s6<<'\n'<<s7<<'\n'; cout<<"————————————————————————————"<<endl; }}w=0;if(!t){cout<<"没有在该月份出生的朋友"<<endl;cout<<"————————————————————————————"<<endl; }t=0;obj3.close();fstream obj4;obj4.open("d:\\AddressBook4.txt",ios::in);while(obj4>>s1>>s2>>s3>>s4>>s5>>s6>>s7){if(s8==s3){t=1,total++;if(!w){cout<<"该月份出生的亲戚的信息如下:"<<endl;cout<<"————————————————————————————"<<endl; }w=1;cout<<s1<<'\n'<<s2<<' '<<s3<<' '<<s4<<'\n'<<s5<<'\n'<<s6<<'\n'<<s7<<'\n'; cout<<"————————————————————————————"<<endl; }}w=0;if(!t){cout<<"没有在该月份出生的亲戚"<<endl;cout<<"————————————————————————————"<<endl; }t=0;obj4.close();cout<<"在该月份出生的总人数为:"<<total<<endl;cout<<"若要继续查找其它月份的人员,请输入,若不要,请输入:";cin>>k; system("cls");}}void rank(){string s1,s2,s3,s4,s5,s6,s7,s0,s8,s9;int m[2000];string n[2000];int a,b,c,x=1,i=0;int j,k,t,min;cout<<"选择菜单"<<'\n'<<"1--按出生日期排序"<<'\n'<<"2--按姓名排序(依据姓名首字母的先后)"<<endl;int s=1;while(s){cout<<"请选择:";cin>>choice;switch(choice){case 1:{fstream obj1;obj1.open("d:\\AddressBook1.txt",ios::in);while(obj1>>s1>>s2>>s3>>s4>>s5>>s6>>s7){s2.erase(0,12);s3.erase(0,3);s4.erase(0,3);a=s2.length();b=s3.length();c=s4.length();char *p=new char[a+1],*q=new char[b+1],*r=new char[c+1];strcpy_s(p,a+1,s2.data());strcpy_s(q,b+1,s3.data());strcpy_s(r,c+1,s4.data());if(b==1&&c==1){m[i]=(((p[0]-48)*1000+(p[1]-48)*100+(p[2]-48)*10+p[3]-48)*382+(q[0]-48)*31+r[0]-48);for(j=0;j<=9,x!=0;j++){int w=m[i]%10;if(w==j)m[i]=m[i]+11-j,x=0;}i++;}x=1;if(b==1&&c==2){m[i]=(((p[0]-48)*1000+(p[1]-48)*100+(p[2]-48)*10+p[3]-48)*382+(q[0]-48)*31+(r[0]-48)*10+r[1]-48 );for(j=0;j<=9,x!=0;j++){int w=m[i]%10;if(w==j)m[i]=m[i]+11-j,x=0;}i++;}x=1;if(b==2&&c==1){m[i]=(((p[0]-48)*1000+(p[1]-48)*100+(p[2]-48)*10+p[3]-48)*382+(q[0]-48)*10*31+(q[1]-48)*31+r[0] -48);for(j=0;j<=9,x!=0;j++){int w=m[i]%10;if(w==j)m[i]=m[i]+11-j,x=0;}i++;}x=1;if(b==2&&c==2){m[i]=(((p[0]-48)*1000+(p[1]-48)*100+(p[2]-48)*10+p[3]-48)*382+(q[0]-48)*10*31+(q[1]-48)*31+(r[0 ]-48)*10+r[1]-48);for(j=0;j<=9,x!=0;j++){int w=m[i]%10;m[i]=m[i]+11-j,x=0;}i++;}x=1;}obj1.close();fstream obj2;obj2.open("d:\\AddressBook2.txt",ios::in);while(obj2>>s1>>s2>>s3>>s4>>s5>>s6>>s7){s2.erase(0,12);s3.erase(0,3);s4.erase(0,3);a=s2.length();b=s3.length();c=s4.length();char *p=new char[a+1],*q=new char[b+1],*r=new char[c+1];strcpy_s(p,a+1,s2.data());strcpy_s(q,b+1,s3.data());strcpy_s(r,c+1,s4.data());if(b==1&&c==1){m[i]=(((p[0]-48)*1000+(p[1]-48)*100+(p[2]-48)*10+p[3]-48)*382+(q[0]-48)*31+r[0]-48);for(j=0;j<=9,x!=0;j++){int w=m[i]%10;if(w==j)m[i]=m[i]+12-j,x=0;}i++;}x=1;if(b==1&&c==2){m[i]=(((p[0]-48)*1000+(p[1]-48)*100+(p[2]-48)*10+p[3]-48)*382+(q[0]-48)*31+(r[0]-48)*10+r[1]-48 );for(j=0;j<=9,x!=0;j++){int w=m[i]%10;if(w==j)m[i]=m[i]+12-j,x=0;}i++;}x=1;if(b==2&&c==1){m[i]=(((p[0]-48)*1000+(p[1]-48)*100+(p[2]-48)*10+p[3]-48)*382+(q[0]-48)*10*31+(q[1]-48)*31+r[0] -48);for(j=0;j<=9,x!=0;j++){int w=m[i]%10;if(w==j)m[i]=m[i]+12-j,x=0;}i++;}x=1;if(b==2&&c==2){m[i]=(((p[0]-48)*1000+(p[1]-48)*100+(p[2]-48)*10+p[3]-48)*382+(q[0]-48)*10*31+(q[1]-48)*31+(r[0]-48)*10+r[1]-48);for(j=0;j<=9,x!=0;j++){int w=m[i]%10;if(w==j)m[i]=m[i]+12-j,x=0;}i++;}x=1;}obj2.close();fstream obj3;obj3.open("d:\\AddressBook3.txt",ios::in);while(obj3>>s1>>s2>>s3>>s4>>s5>>s6>>s7){s2.erase(0,12);s3.erase(0,3);s4.erase(0,3);a=s2.length();b=s3.length();c=s4.length();char *p=new char[a+1],*q=new char[b+1],*r=new char[c+1];strcpy_s(p,a+1,s2.data());strcpy_s(q,b+1,s3.data());strcpy_s(r,c+1,s4.data());if(b==1&&c==1){m[i]=(((p[0]-48)*1000+(p[1]-48)*100+(p[2]-48)*10+p[3]-48)*382+(q[0]-48)*31+r[0]-48);for(j=0;j<=9,x!=0;j++){int w=m[i]%10;if(w==j)m[i]=m[i]+13-j,x=0;}i++;}x=1;if(b==1&&c==2){m[i]=(((p[0]-48)*1000+(p[1]-48)*100+(p[2]-48)*10+p[3]-48)*382+(q[0]-48)*31+(r[0]-48)*10+r[1]-48 );for(j=0;j<=9,x!=0;j++){int w=m[i]%10;if(w==j)m[i]=m[i]+13-j,x=0;}i++;}x=1;if(b==2&&c==1){m[i]=(((p[0]-48)*1000+(p[1]-48)*100+(p[2]-48)*10+p[3]-48)*382+(q[0]-48)*10*31+(q[1]-48)*31+r[0] -48);for(j=0;j<=9,x!=0;j++){int w=m[i]%10;if(w==j)m[i]=m[i]+13-j,x=0;}i++;}if(b==2&&c==2){m[i]=(((p[0]-48)*1000+(p[1]-48)*100+(p[2]-48)*10+p[3]-48)*382+(q[0]-48)*10*31+(q[1]-48)*31+(r[0 ]-48)*10+r[1]-48);for(j=0;j<=9,x!=0;j++){int w=m[i]%10;if(w==j)m[i]=m[i]+13-j,x=0;}i++;}x=1;}obj3.close();fstream obj4;obj4.open("d:\\AddressBook4.txt",ios::in);while(obj4>>s1>>s2>>s3>>s4>>s5>>s6>>s7){s2.erase(0,12);s3.erase(0,3);s4.erase(0,3);a=s2.length();b=s3.length();c=s4.length();char *p=new char[a+1],*q=new char[b+1],*r=new char[c+1];strcpy_s(p,a+1,s2.data());strcpy_s(q,b+1,s3.data());strcpy_s(r,c+1,s4.data());if(b==1&&c==1){m[i]=(((p[0]-48)*1000+(p[1]-48)*100+(p[2]-48)*10+p[3]-48)*382+(q[0]-48)*31+r[0]-48);for(j=0;j<=9,x!=0;j++){int w=m[i]%10;if(w==j)m[i]=m[i]+14-j,x=0;}i++;}x=1;if(b==1&&c==2){m[i]=(((p[0]-48)*1000+(p[1]-48)*100+(p[2]-48)*10+p[3]-48)*382+(q[0]-48)*31+(r[0]-48)*10+r[1]-48 );for(j=0;j<=9,x!=0;j++){int w=m[i]%10;if(w==j)m[i]=m[i]+14-j,x=0;}i++;}x=1;if(b==2&&c==1){m[i]=(((p[0]-48)*1000+(p[1]-48)*100+(p[2]-48)*10+p[3]-48)*382+(q[0]-48)*10*31+(q[1]-48)*31+r[0] -48);for(j=0;j<=9,x!=0;j++){int w=m[i]%10;if(w==j)m[i]=m[i]+14-j,x=0;。
C语言课程设计——通讯录软件源代码(完美版)通讯录完美版操作说明书编译环境:Visual C++ 6.0初始密码为:111111主菜单:选择编号进行相应的操作:选择“1”:输入编号:如“001”。
通讯录数据结构如下,只要输入的数据不超过允许的范围即可:struct callmember //定义数据结构{char code[8]; // 编号char name[20]; // 姓名char callnumber[16]; // 电话号码char address[30]; // 地址};输入完后“Enter”结束。
然后又回到“main menu”。
选择“2”显示通讯录信息,但此时刚输入的信息还没保存,选择“3”就可以将联系人信息保存在“通讯录.txt”文件中了,这个文件是自动生成的不需自己建立。
除此外还有查询、修改、删除功能。
当然功能有限,望有能之士加以修改,完善内容~本软件是一个值得收藏的软件,可以用于管理自己的通讯录~源程序:/***************************C语言课程设计*****************************//******************************************************************* **//******************************************************************* **//******************************************************************* **//***** 项目名称: 通讯录管理系统 *****/ /***** 作者: *****/ /*****专业: ***** *****/ /***** 班级: ***** *****/ /***** 学号: ********* *****//***** 指导老师: *****/ /***** 完成时间: 2010.7.12 *****/ /***** 联系电话: 150*******3 *****/ /***** 初始密码: 111111 *****//*********************************************************************/ /******************************************************************* **//******************************************************************* **//************************预处理***************************************/ #include<string.h> #include<stdio.h>#include<stdlib.h>#include<windows.h>#include<conio.h>#define N 301 //修改N的值,就可以改变记录个数,实际容纳人数为N-1 struct callmember //定义数据结构{char code[8]; // 编号char name[20]; // 姓名char callnumber[16]; // 电话号码char address[30]; // 地址};/***********************定义全局变量**********************************/FILE * fp; //文件指针struct callmember person[N]; //记录信息,N为通信录容量,有用信息为后N-1条int counter; //统计记录个数(联系人个数)/***********************函数声明*************************************/void creat(); //创建通讯录 OKvoid load(); //加载数据 OKvoid menu(); //界面菜单显示 OKvoid choose_1(int ); //选择功能 OKvoid insert(); //1、通讯信息的录入 OKvoid output(); //2、通讯信息的显示 OKvoid save(); //3、通讯信息的保存 OKvoid del(); //4、记录的删除 OKvoid modify(); //5、记录的修改 OKvoid found(); //6、记录的查找,三种方式 OKvoid choose_2(int ); //选择查询方式 OKvoid found_code(); //6.1、按编号查询 OK void found_name(); //6.2、按姓名查询 OK void found_callnumber(); //6.3、按电话号码查询 OK voidquit(); //7、退出系统 OK /********************** MAIN 函数***********************************/int main(){char m;char mima[10];char jiema[10];/*************密码文件的创建*****************/if((fp=fopen("mi_ma.dat","rb"))==NULL) //rb 只读(打开){fp=fopen("mi_ma.dat","wb");//wb 为读写建立一个新的文件(如果文件不存在,建立新文件)fprintf(fp,"%s","111111");fclose(fp);}/*************密码的读入*********************/fp=fopen("mi_ma.dat","rb");fscanf(fp,"%s",jiema);fclose(fp);/*************界面设置***********************/system("color 2f"); //设置界面颜色system("cls"); //清屏printf("\n\n\n\n\n\n\n\n\n\n\t\t\t请输入您的密码: "); //输入九位以内的密码gets(mima);if(!strcmp(mima,jiema)){printf("\n\n\t\t\t是否想修改您的密码 (Y/N) : "); scanf("%c",&m);if(m=='y'||m=='Y'){fp=fopen("mi_ma.dat","wb");printf("\n\t\t\t请输入您的新密码: ");scanf("%s",jiema);fprintf(fp,"%s",jiema);fclose(fp);printf("\n\t\t\t密码修改成功!");getchar();getchar();}system("cls"); //清屏system("color 2f"); //设置界面颜色creat(); //为程序创建文件(如果文件不存在)fp=fopen("counter.txt","r"); //r 只读(打开文件)fscanf(fp,"%d",&counter); //将磁盘中的数据赋给counter fclose(fp); //关闭打开的文件load(); //数据装载到内存中menu();return 0;}else{printf("\n\n\t\t\t输入密码错误!");getchar();printf("\t\t\t");return 0;}}/************************创建通讯录函数****************************/ void creat(){if((fp=fopen("通讯录.txt","r"))==NULL)//r 只读(打开){fp=fopen("通讯录.txt","w");//w 为读写建立一个新的文件(如果文件不存在,建立新文件)fprintf(fp,"%-10s%-20s%-20s%-30s\n","编号","姓名","电话号码","地址"); //写入基本信息person[0]fclose(fp);}if((fp=fopen("counter.txt","r"))==NULL) //r 只读(打开){fp=fopen("counter.txt","w"); //w 为只写建立一个新的文件fprintf(fp,"%d",0); //写入初值(自有文件新建时才有)fclose(fp);}}void load(){int i;if((fp=fopen("通讯录.txt","r"))!=NULL) //r 只读(打开),打开文件成功for(i=0;i<=counter;i++)fscanf(fp,"%s%s%s%s",person[i].code,person[i].name,person[i].callnum ber,person[i].address);//将文件中的信息加载到内存中,供操作使用elseprintf("打开文件失败!\n");fclose(fp);}/************************界面菜单显示函数**************************/ void menu(){int k;printf("\n");printf("\n");printf("\t ********************************************\n");printf("\t ********** 设计者: ***********\n");printf("\t ********** 设计时间: 2010.7.13 ***********\n");printf("\t ********************************************\n\n");printf("\t ********************************************\n");printf("\t **************** MENU ********************\n");printf("\t ********************************************\n");printf("\t ********* 1、通讯信息的录入: *************\n");printf("\t ********* 2、通讯信息的显示: *************\n");printf("\t ********* 3、通讯信息的保存: *************\n");printf("\t ********* 4、通信记录的删除: *************\n");printf("\t ********* 5、通信记录的修改: *************\n");printf("\t ********* 6、通信记录的查找: *************\n");printf("\t ********* 0、退出系统: *************\n");printf("\t ********************************************\n");printf("\t Now Please Enter your choose(0-6): ");scanf("%d",&k);choose_1(k);}/************************函数功能选择函数************************/ void choose_1(int k){switch(k){case 1 : insert();break;case 2 : output();break;case 3 : save();system("cls");printf("\n\n\n\n\n\n\n\n\n\n\t\t\t\t 保存成功!");getchar();getchar();system("cls");menu();break;case 4 : del();break;case 5 : modify();break;case 6 : found();break;case 0 : quit();break;default: ;break;}}/****************************OK***********************************/ /************************通讯信息录入函数*************************/ /***************将数据写入内存中,由person[N]数组保存着***********/ void insert(){struct callmember * p;system("cls");p=(struct callmember *)malloc(sizeof(struct callmember ));//将动态分配的内存首地址赋给pprintf("\n\n\n\n\n\n");printf("\t *********************************\n\n");printf("\t 编号: ");scanf("%s",p->code);strcpy(person[counter+1].code,p->code);printf("\t 姓名: ");scanf("%s",p->name);strcpy(person[counter+1].name,p->name);printf("\t 电话: ");scanf("%s",p->callnumber);strcpy(person[counter+1].callnumber,p->callnumber);printf("\t 地址: ");scanf("%s",p->address);strcpy(person[counter+1].address,p->address);printf("\n\t *********************************");counter++;free(p); //释放空间getchar();getchar();system("cls");menu();}/************************通讯信息显示函数************************/ /************从内存中将数据显示在屏幕上,不用打开文件************/ void output(){int i=1;system("cls");if(counter){for(i=0;i<=counter;i++)printf("\t%-8s%-20s%-16s%-30s",person[i].code,person[i].name,person[i].callnumber,person[i].address);printf("\t");}elseprintf("\n\n\n\n\n\t\t记录为空,请输入联系人信息!");getchar();getchar();system("cls");menu();}/*************保存、修改、删除只针对内存中的数组进行操作*********/ /************************通讯信息保存函数************************/ void save() {int i;system("cls");if((fp=fopen("counter.txt","w"))==NULL) //w 只写覆盖原来的数据{printf("\n\n\n\t\t\t操作失败.");exit(1);}fprintf(fp,"%d",counter); //往磁盘写入现在的值,即保存fclose(fp);if((fp=fopen("通讯录.txt","w"))!=NULL)fprintf(fp,"%s","\0");fclose(fp);if((fp=fopen("通讯录.txt","a"))!=NULL)for(i=0;i<=counter;i++)fprintf(fp,"%-10s%-20s%-20s%-30s\n",person[i].code,person[i].name,person[i].callnumber,p erson[i].address);fclose(fp);system("cls");}/************************信息删除函数****************************/ void del() //根据姓名删除,根据显示选择要删的内容 {int k=1;int c=0;char m;char namekey[20];system("cls");printf("\n\n\n\n\n\n\t\t\t请输入要删除的姓名:");scanf("%s",namekey);while(k<=counter){if(!strcmp(namekey,person[k++].name)){c=k-1;break;}}if(c){printf("\t\t\t已查到,记录为:\n\n\n");printf("\t%-10s%-20s%-20s%-30s\n",person[0].code,person[0].name,person[0].callnumber,p erson[0].address);printf("\t%-10s%-20s%-20s%-30s\n",person[c].code,person[c].name,person[c].callnumber,pe rson[c].address);printf("\n\n\t\t\t确定要删除吗? (Y/N) : ");scanf("%s",&m);if(m=='y'||m=='Y'){if(c==counter){strcpy(person[counter].code,"\0");strcpy(person[counter].name,"\0");strcpy(person[counter].callnumber,"\0");strcpy(person[counter].address,"\0");counter--;}else{for(k=c;k<=counter;k++) //后面的信息将前面的信息覆盖掉{strcpy(person[k].code,person[k+1].code);strcpy(person[k].name,person[k+1].name);strcpy(person[k].callnumber,person[k+1].callnumber); strcpy(person[k].address,person[k+1].address);}strcpy(person[counter].code,"\0"); //最后面的信息为空strcpy(person[counter].name,"\0");strcpy(person[counter].callnumber,"\0");strcpy(person[counter].address,"\0");counter--;}printf("\t\t\t删除成功!");getchar();getchar();system("cls");save(); //用save()函数将删除后的信息从新保存menu();}else{system("cls");menu();}}else{printf("\n\t\t\t对不起,没有此人记录!");getchar();getchar();system("cls");menu();}}/************************信息修改函数****************************/ //可以设定编号唯一,通过查找编号来确定记录位置,进而进行修改 void modify(){int k=1;char m;char codekey[20];system("cls");printf("\n\n\t\t\t 请输入要修改的编号: ");scanf("%s",codekey);while(k<=counter){if(!strcmp(codekey,person[k].code))break;k++;}if(k<=counter){printf("\n\t\t\t 已查到,记录为:\n");printf("\n\t\t%-10s%-20s%-20s%-30s\n","编号","姓名","电话号码","地址");printf("\t\t%-10s%-20s%-20s%-30s\n",person[k].code,person[k].name,person[k].callnumber, person[k].address);printf("\t\t\t 确定要修改吗? (Y/N) : ");scanf("%s",&m);if(m=='y'||m=='Y'){printf("\n\t\t\t 请输入新的信息:\n\n");printf("\t *********************************\n\n");printf("\t 编号: ");scanf("%s",person[k].code);printf("\t 姓名: ");scanf("%s",person[k].name);printf("\t 电话: ");scanf("%s",person[k].callnumber);printf("\t 地址: ");scanf("%s",person[k].address);printf("\n\t *********************************"); printf("\n\n\t\t\t 修改成功!");getchar();getchar();system("cls");save(); //修改完后立马保存menu();}else{system("cls");menu();}}else{printf("\n\n\t\t\t对不起,没有此人记录!");getchar();getchar();system("cls");menu();}}/************************信息查询函数****************************/ void found() //调试合适{int k;system("cls");printf("\n");printf("\n");printf("\n\t\t******************************************\n"); printf("\n\t\t 1、按编号查询:\n");printf("\n\t\t 2、按姓名查询:\n");printf("\n\t\t 3、按电话号码查询:\n");printf("\n\t\t 0、返回:\n");printf("\n\t\t******************************************\n\n"); printf("\t\tPlease Enter Your Choose now: ");scanf("%d",&k);choose_2(k);}void choose_2(int k){switch(k){case 1 : found_code(); break;case 2 : found_name(); break;case 3 : found_callnumber(); break;case 0 : system("cls");menu(); break;default : system("cls");menu();break;}system("cls");menu();}//按编号查询void found_code(){int k=0;char codekey[8];struct callmember * p;p=(struct callmember *)malloc(sizeof(struct callmember)); printf("\n\t\t请输入要查询的编号:");scanf("%s",codekey);if((fp=fopen("通讯录.txt","r"))==NULL){printf("\n不能打开通讯录!\n");exit(0);}while(!feof(fp)) //当文件结束时,feof()返回值为1{fscanf(fp,"%s%s%s%s\n",p->code,p->name,p->callnumber,p->address);if(!strcmp(codekey,p->code)){k=1;break; //k=1,说明已经查到}}if(k){printf("\n\t\t%-10s%-20s%-20s%-30s\n","编号","姓名","电话号码","地址");printf("\t\t%-10s%-20s%-20s%-30s",p->code,p->name,p->callnumber,p->address);}elseprintf("\n\t\t您查询的编号不存在!");fclose(fp);getchar();getchar();system("cls");}//按姓名查询void found_name(){int k=0;char namekey[8];struct callmember * p;p=(struct callmember *)malloc(sizeof(struct callmember));printf("\n\t\t请输入要查询的姓名:");scanf("%s",namekey);if((fp=fopen("通讯录.txt","r"))==NULL){printf("\n不能打开通讯录!\n");exit(0);}while(!feof(fp)) //当文件结束时,feof()返回值为1.{fscanf(fp,"%s%s%s%s\n",p->code,p->name,p->callnumber,p->address); if(!strcmp(namekey,p->name)){k=1;break; //k=1,说明已经查到}}if(k){printf("\n\t\t%-10s%-20s%-20s%-30s\n","编号","姓名","电话号码","地址");printf("\t\t%-10s%-20s%-20s%-30s",p->code,p->name,p->callnumber,p->address);}elseprintf("\n\t\t您查询的姓名不存在!");fclose(fp);getchar();getchar();system("cls");}//按电话号码查询void found_callnumber(){int k=0;char callnumberkey[8];struct callmember * p;p=(struct callmember *)malloc(sizeof(struct callmember));printf("\n\t\t请输入要查询的电话号:");scanf("%s",callnumberkey);if((fp=fopen("通讯录.txt","r"))==NULL){printf("\n不能打开通讯录!\n");exit(0);}while(!feof(fp)) //当文件结束时,feof()返回值为1.{fscanf(fp,"%s%s%s%s\n",p->code,p->name,p->callnumber,p->address);if(!strcmp(callnumberkey,p->callnumber)){k=1;break; //k=1,说明已经查到}}if(k){printf("\n\t\t%-10s%-20s%-20s%-30s\n","编号","姓名","电话号码","地址");printf("\t\t%-10s%-20s%-20s%-30s",p->code,p->name,p->callnumber,p->address);}elseprintf("\n\t\t您查询的号码不存在!");fclose(fp);getchar();getchar();system("cls"); }/************************退出系统函数******************************/void quit() //调试合适 { printf("\t\t");exit(0);}。
手机通讯录源代码手机通讯录源代码#include#include#include#include#define N 15 //最大容量为15typedef struct //定义一个结构{char name[10];char haoma[15];char leibie[10];char dizhi[20];}ren;//菜单void menu() //目录{system("cls"); //清屏printf(" #########欢迎使用手机通讯录#########\n");printf("\n");printf("================================= ========================================= ====\n");printf("1.~~号码查询~~ \n");printf("2.~~号码添加~~ \n");printf("3.~~号码拨号~~ \n");printf("4.~~号码修改~~ \n");printf("5.~~号码删除~~ \n");printf("0. ~~退出~~ \n");printf("================================= ========================================= ====\n");printf("\n");printf("个人通讯录\n");printf("\n");printf(" ~~请选择相应的功能~~:");}void input() //查询{int help=0; //帮助指令,如果查找所找的类别中没有数据,显示ren ry;FILE *fp;char leibie[10];system("cls");printf("\n 输入要查人员的类别:");scanf("%s",leibie);//要查询的类别查找失败if((fp=fopen("ren.dat","rb"))==NULL){printf("can't open file!\n");exit(0);}fread(&ry,sizeof(ren),1,fp);if(!feof(fp)){ printf(" 人员的信息如下:\n");printf("说明:(A办公类B个人类C商务类)");printf("\n%10s %15s %10s %20s \n","姓名","号码","类别","邮箱");while(!feof(fp)){if(strcmp(ry.leibie,leibie)==0) //若为该类别则输出{ help++;printf("%10s %15s %10s %20s\n",/doc/8f1229847.html,,ry.haoma,ry. leibie,ry.dizhi);}fread(&ry,sizeof(ren),1,fp);}if(help==0){printf(" 查找失败");}。
#include"stdio.h"#include <stdlib.h>#include"string.h"#define header1 "|--------------簿------------------|\n"#define header2 "| name | phonenum | adress | \n" #define header3 "|----------|----------------|----------|\n" #define end "|-----------------结束------------------|"typedef struct _CStudent{char szName[20]; /* 学生 */double number; /**/char adress[100]; /*地址*/}CStudent;void menu();int duqu(int *len);int zengjia(int *k,int *len);int chaxun(int *len);int xiugai(int *len);int shanchu(int *len);int input(CStudent* p); /* 从键盘输入 */int output(int *len); /* 向屏幕输出 */int search(CStudent p,int *j,CStudent c[3],int *len);int sname(CStudent p,int *len); /*查询*/int snumber(CStudent p,int *len); /*查询*/void xname(CStudent q[100],int i); /*修改*/void xnumber(CStudent q[100],int i); /*修改*/void xadress(CStudent q[100],int i); /*地址修改*/int sput(int *len,CStudent q[100]);/*删除的处理模块*/main( ){static int len=1;int i,j=0,k=0;while(j==0){menu();do{printf("请选择你需要的服务:\n");scanf("%d",&i);}while(i<0||i>5);//system("cls");switch(i){case 1:{j=zengjia(&k,&len);break;}/*增加*/case 2:{j=duqu(&len);break;} /*读取*/case 3:{j=chaxun(&len);break;} /*查找*/case 4:{j=xiugai(&len);break;} /*修改*/case 5:{j=shanchu(&len);break;}/*删除*/default:{printf(" |**欢迎下次使用薄管理系统!**|\n");j=1;break;}}}}int duqu(int *len){CStudent p[100];int i;FILE *fp;system("cls");printf("\n\t\t|* **** 欢迎进入读取联系人界面! **** *|\n\n");if((fp=fopen("e://file3","r"))==NULL){printf("error!\n");return -1;}printf("%s%s%s",header1,header2,header3);for(i=0;i<*len;i++){fscanf(fp,"%s%lf%s ",p[i].szName,&p[i].number,p[i].adress);printf("| %s | %.0lf | %s |\n",p[i].szName,p[i].number,p[i].adress);}printf("%s\n",end);system("pause");return 0;}void menu(){system("cls");system("color 1F");printf("\n\n\n"); /*输出主菜单*/printf("\t\t|* **** 欢迎进入通讯录管理系统! **** *|\n");printf("\t\t|********************menu********************|\n");printf("\t\t| |\n");printf("\t\t| 1 增加 2 读取 |\n");printf("\t\t| |\n");printf("\t\t| 3 查找 4 修改 |\n");printf("\t\t| |\n");printf("\t\t| 5 删除 0 退出 |\n");printf("\t\t| |\n");printf("\t\t|********************************************|\n");}int zengjia(int *k,int *len){CStudent p[100];int i,j;FILE *fp;system("cls");printf("\n\t\t|* **** 欢迎进入增加联系人界面! **** *|\n\n");printf("请输入增加的个数:\n");scanf("%d",&j);k=&j;(*len)+=j;//system("cls");if((fp=fopen("e://file3","a+"))==NULL){printf("error!\n");return -1;}for(i=0;i<j;i++){printf(":");scanf("%s",&p[i].szName);printf(":");scanf("%lf",&p[i].number);printf("地址:");scanf("%s",p[i].adress);}for(i=0;i<j;i++)fprintf(fp,"\n%s %lf %s ",p[i].szName,p[i].number,p[i].adress);fclose(fp);output(len);return 0;}int chaxun(int *len){int i;CStudent aa,cc;system("cls");printf("\n\t\t|* **** 欢迎进入查询联系人界面! **** *|\n\n");do{printf(" |-------查找功能------|\n");printf(" | |\n");printf(" | 1 按查找 |\n");printf(" | |\n");printf(" | 2 按查找 |\n");printf(" | |\n");printf(" | 0 退出 |\n");printf(" | |\n");printf("请输入:\n");scanf("%d",&i);}while(i>2||i<0);if(i==2){printf("请输入:\n");scanf("%s",&aa.szName);sname(aa,len);}else if(i==1){printf("请输入:\n");scanf("%lf",&cc.number);snumber(cc,len);}elseprintf("欢迎下次使用薄管理系统!\n");return 0;}int xiugai(int *len){CStudent p[100],q[100],a;int i,j,b;FILE *fp;system("cls");printf("\n\t\t|* **** 欢迎进入修改联系人界面! **** *|\n\n");printf("请输入修改人的:\n");scanf("%s",a.szName);if((fp=fopen("e://file3","r+"))==NULL){printf("error!\n");return -1;}for(i=0;i<*len;i++)fscanf(fp,"%s%lf%s",p[i].szName,&p[i].number,p[i].adress);for(i=0;i<*len;i++){strcpy(q[i].szName,p[i].szName);strcpy(q[i].adress,p[i].adress);q[i].number=p[i].number;}for(i=0;i<*len;i++){if(strcmp(p[i].szName,a.szName)==0){j=1;break;}}if(j==1){printf(" |-------修改功能------|\n");printf(" | |\n");printf(" | 1 修改 |\n");printf(" | |\n");printf(" | 2 修改 |\n");printf(" | |\n");printf(" | 3 修改地址 |\n");printf(" | |\n");do{printf("请选择修改容:\n");scanf("%d",&b);if(b==1)xname(q,i);if(b==2)xnumber(q,i);if(b==3)xadress(q,i);}while(b>3||b<1);printf("修改的联系人重新保存!\n");sput(len,q);}else{printf(" |*****通讯录中没有该人的信息!******|\n");system("pause");}fclose(fp);output(len);return 0;}void xname(CStudent q[100],int i){printf("重置:");scanf("%s",q[i].szName);}void xnumber(CStudent q[100],int i) /*修改*/{printf("重置:");scanf("%lf",&q[i].number);}void xadress(CStudent q[100],int i) /*地址修改*/{printf("地址重置:");scanf("%s",q[i].adress);}int shanchu(int *len){CStudent p[100],q[100],a;int i,j;FILE *fp;system("cls");printf("\n\t\t|* **** 欢迎进入删除联系人界面! **** *|\n\n");printf("请输入删除人的:\n");scanf("%s",a.szName);if((fp=fopen("e://file3","r+"))==NULL){printf("error!\n");return -1;}for(i=0;i<*len;i++)fscanf(fp,"%s%lf%s",p[i].szName,&p[i].number,p[i].adress);for(i=0;i<*len;i++){strcpy(q[i].szName,p[i].szName);strcpy(q[i].adress,p[i].adress);q[i].number=p[i].number;}for(i=0;i<*len;i++){if(strcmp(p[i].szName,a.szName)==0){j=1;break;}}if(j==1){for(;i<*len-1;i++){strcpy(q[i].szName,q[i+1].szName);strcpy(q[i].adress,p[i].adress);q[i].number=q[i+1].number;}printf("删除成功!\n");(*len)--;sput(len,q);for(i=0;i<*len;i++)fscanf(fp,"%s%lf%s",q[i].szName,&q[i].number,q[i].adress);output(len);}elseprintf(" |*****通讯录中没有该人的信息!******|\n");fclose(fp);return 0;}int sput(int *len,CStudent q[100]){int i;FILE *fp;if((fp=fopen("e://file3","w"))==NULL){printf("error!\n");return -1;}for(i=0;i<*len;i++)fprintf(fp,"%s %lf %s ",q[i].szName,q[i].number,q[i].adress);fclose(fp);return 0;}search(CStudent p,int *j,CStudent c[100],int *len) /*查询*/{FILE *fp;int i,flag=0;if((fp=fopen("e:\\file3","r"))==NULL){printf("cannot write file\n");return -1;}for(i=0;i<*len;i++){fscanf(fp,"%s%lf%s",c[i].szName,&c[i].number,c[i].adress);if(strcmp(c[i].szName,p.szName)==0){flag=1;break;}if(c[i].number==p.number){flag=2;break;}}*j=i;fclose(fp);return flag;}int sname(CStudent p,int *len){CStudent c[100];int i,flag;flag=search(p,&i,c,len);if (flag==1){printf("%s%s%s",header1,header2,header3);printf("| %s | %.0lf | %s |\n",c[i].szName,c[i].number,c[i].adress);printf("%s",end);printf("\n");}elseprintf("Not Found\n");system("pause");return 0;}int snumber(CStudent p,int *len){CStudent c[100];int i,flag;flag=search(p,&i,c,len);if (flag==2){printf("%s%s%s",header1,header2,header3);printf("| %s | %.0lf | %s |\n",c[i].szName,c[i].number,c[i].adress);printf("%s",end);printf("\n");}elseprintf("Not Found\n");system("pause");return 0;}int output(int *len) /*向屏幕输出*/{CStudent p[100];int i;FILE *fp;if((fp=fopen("e://file3","r"))==NULL){printf("error!\n");return -1;}printf("%s%s%s",header1,header2,header3);for(i=0;i<*len;i++){fscanf(fp,"%s%lf%s",p[i].szName,&p[i].number,p[i].adress);printf("| %s | %.0lf | %s |\n",p[i].szName,p[i].number,p[i].adress);}printf("%s",end);printf("\n");system("pause");return 0;}。
import java.awt.Choice;import java.awt.Container;import java.awt.GridLayout;import java.awt.MenuItem;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.print.Printable;import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.PrintWriter;import java.text.Collator;import java.util.Arrays;import parator;import java.util.Scanner;import javax.swing.JButton;import javax.swing.JDialog;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JMenuBar;import javax.swing.JMenu;import javax.swing.JMenuItem;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextArea;import javax.swing.JTextField;import javax.swing.WindowConstants;public class MyAddBook {public static JFrame frame;public MyAddBook(){frame=new JFrame("个人通讯录");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);JMenuBar menubar=new JMenuBar();JMenu edit=new JMenu("编辑");JMenuItem edit1=new JMenuItem("录入");JMenuItem edit2=new JMenuItem("查询");JMenuItem edit3=new JMenuItem("删除");JMenuItem edit4=new JMenuItem("修改");JMenuItem edit5=new JMenuItem("排序");edit1.addActionListener(new Typein());JMenu show=new JMenu("显示信息");JMenuItem show1=new JMenuItem("同学");JMenuItem show2=new JMenuItem("同事");JMenuItem show3=new JMenuItem("朋友");JMenuItem show4=new JMenuItem("亲戚");JMenuItem show5=new JMenuItem("全体人员");Container c=frame.getContentPane();JPanel pane=new JPanel();c.add(pane);pane.add(menubar);menubar.add(edit);edit.add(edit1);edit.add(edit2);edit.add(edit3);edit.add(edit4);edit.add(edit5);menubar.add(show);show.add(show1);show.add(show2);show.add(show3);show.add(show4);show.add(show5);frame.setSize(300,100);//frame.pack();//查询修改删除class Search{JDialog dialog=new JDialog(frame,"查询对话框",true);public Search(String str,int n){dialog.setSize(250,200);Container c=dialog.getContentPane();dialog.setLayout(new GridLayout(2,1,5,5));JLabel Lsearch=new JLabel("请输入要"+str+"人员的名字:");final JTextField Tname=new JTextField(10);JButton certain=new JButton("确定");JButton cancel=new JButton("取消");//final String in=Tname.getText();JPanel pane1=new JPanel();JPanel pane2=new JPanel();c.add(pane1);c.add(pane2);pane1.add(Lsearch);pane1.add(Tname);pane2.add(certain);pane2.add(cancel);dialog.setDefaultCloseOperation(dialog.DISPOSE_ON_CLOSE);//dialog.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);if(n==2){certain.addActionListener(new ActionListener() //查询{public void actionPerformed(ActionEvent e){try {FileReader file=new FileReader("D:\\AddressBook.txt");Scanner find=new Scanner(file);while(find.hasNext()){if(find.next().equals(Tname.getText())){dialog.dispose();Typein fd=new Typein();fd.frame=new JFrame("查询结果如下");fd.Tname.setText(Tname.getText());fd.Cgroup.select(find.next());fd.Cbirthyear.select(find.next());fd.Cbirthmonth.select(find.next());fd.Cbirthday.select(find.next());fd.Tphone.setText(find.next());fd.Temail.setText(find.next());fd.Tother.setText(find.next());fd.typein();}}file.close();find.close();} catch (FileNotFoundException e1) {// TODO Auto-generated catch block//e1.printStackTrace();System.out.print("未找到文件");} catch (IOException e2) {// TODO Auto-generated catch block//e2.printStackTrace();System.out.print("未找到该人员");}}});}if(n==3){certain.addActionListener(new ActionListener() //删除{public void actionPerformed(ActionEvent e){try {File file=new File("D:\\AddressBook.txt");Scanner find=new Scanner(file);FileWriter file1=new FileWriter("D:\\AddressBook1.txt",true);PrintWriter write=new PrintWriter(file1);while(find.hasNext()){String s=find.next();if(!(s.equals(Tname.getText()))){write.print(s+'\t');write.print(find.next()+'\t');write.print(find.next()+' ');write.print(find.next()+' ');write.print(find.next()+'\t');write.print(find.next()+'\t');write.print(find.next()+'\t');write.println(find.next());}else {find.next();find.next();find.next();find.next();find.next();find.next();find.next();}}//file.close();find.close();file.delete();write.close();file1.close();File file2=new File("D:\\AddressBook1.txt");file2.renameTo(new File( "D:\\AddressBook.txt"));JOptionPane.showMessageDialog(null,"删除成功","删除结果",RMATION_MESSAGE);} catch (FileNotFoundException e1) {// TODO Auto-generated catch block//e1.printStackTrace();JOptionPane.showMessageDialog(null, "未找到文件");} catch (IOException e2) {// TODO Auto-generated catch block//e2.printStackTrace();System.out.print("未找到该人员");}}});}if(n==4){certain.addActionListener(new ActionListener() //修改{public void actionPerformed(ActionEvent e){try {File file=new File("D:\\AddressBook.txt");Scanner find=new Scanner(file);FileWriter file1=new FileWriter("D:\\AddressBook1.txt",true);PrintWriter write=new PrintWriter(file1);while(find.hasNext()){String s=find.next();if(!(s.equals(Tname.getText()))){write.print(s+'\t');write.print(find.next()+'\t');write.print(find.next()+' ');write.print(find.next()+' ');write.print(find.next()+'\t');write.print(find.next()+'\t');write.print(find.next()+'\t');write.println(find.next());}else{dialog.dispose();Typein fd=new Typein();Typein.y=1;fd.frame=new JFrame("查询结果如下");fd.Tname.setText(Tname.getText());String s1=find.next();fd.Cgroup.select(s1);String s2=find.next();fd.Cbirthyear.select(s2);String s3=find.next();fd.Cbirthmonth.select(s3);String s4=find.next();fd.Cbirthday.select(s4);String s5=find.next();fd.Tphone.setText(s5);String s6=find.next();fd.Temail.setText(s6);String s7=find.next();fd.Tother.setText(s7);fd.typein();if(Typein.z==1){write.print(Tname.getText()+'\t');write.print(s1+'\t');write.print(s2+' ');write.print(s3+' ');write.print(s4+'\t');write.print(s5+'\t');write.print(s6+'\t');write.println(s7);Typein.z=2;}}}//file.close();find.close();file.delete();write.close();file1.close();File file2=new File("D:\\AddressBook1.txt");file2.renameTo(new File( "D:\\AddressBook.txt"));} catch (FileNotFoundException e1) {// TODO Auto-generated catch block//e1.printStackTrace();System.out.print("未找到文件");} catch (IOException e2) {// TODO Auto-generated catch block//e2.printStackTrace();System.out.print("未找到该人员");}}});}cancel.addActionListener(new ActionListener()//取消{public void actionPerformed(ActionEvent e){System.out.println("fdas");//dialog.dispose();}});}}edit2.addActionListener(new ActionListener() //监听查询{public void actionPerformed(ActionEvent e){new Search("查询",2).dialog.setVisible(true);}});edit3.addActionListener(new ActionListener() //监听删除{public void actionPerformed(ActionEvent e){new Search("删除",3).dialog.setVisible(true);}});edit4.addActionListener(new ActionListener() //监听修改{public void actionPerformed(ActionEvent e){new Search("修改",4).dialog.setVisible(true);}});//输出类class Print{public JTextArea area;public Print(String st,int n){JFrame frame = new JFrame(st+"信息如下");frame.setSize(800, 400);//frame.setLocation(350, 150);area = new JTextArea();frame.add(area);frame.setVisible(true);if(n==2)try//排序{int i,j,k;String []all;all=new String[1000];BufferedReader read=new BufferedReader(new FileReader("D:\\AddressBook.txt"));area.append("姓名"+'\t'+"组别"+'\t'+"生日"+'\t'+"电话"+'\t'+"Email"+'\t'+"其他"+'\n');int z=1,count=0;while(z==1){for(i=0;i<1000;i++){String str=read.readLine();if(str!=null){all[i]=str;count++;}else z=0;}}String[] bll;bll=new String[count];for(i=0;i<count;i++)bll[i]=all[i];getSortOfChinese(bll);for (i = 0; i < count; i++)area.append(bll[i]+'\n');read.close();}catch (FileNotFoundException e1) {e1.printStackTrace();}catch (IOException e2){e2.printStackTrace();}if(n==1)try//各类人员{FileReader file=new FileReader("D:\\AddressBook.txt");Scanner find=new Scanner(file);area.append("姓名"+'\t'+"组别"+'\t'+"生日"+'\t'+"电话"+'\t'+"Email"+'\t'+"其他"+'\n');while(find.hasNext()){String str1=find.next();String str2=find.next();if(str2.equals(st)){area.append(str1+'\t');area.append(str2+'\t');area.append(find.next()+' ');area.append(find.next()+' ');area.append(find.next()+'\t');area.append(find.next()+'\t');area.append(find.next()+'\t');area.append(find.next()+'\n');}else{find.next();find.next();find.next();find.next();find.next();find.next();}}file.close();find.close();}catch (FileNotFoundException e1) {e1.printStackTrace();}catch (IOException e2){e2.printStackTrace();}if(n==0)try//全体人员信息{BufferedReader read=new BufferedReader(new FileReader("D:\\AddressBook.txt"));area.append("姓名"+'\t'+"组别"+'\t'+"生日"+'\t'+"电话"+'\t'+"Email"+'\t'+"其他"+'\n');int z=1;while(z==1){String str=read.readLine();if(str!=null)area.append(str+'\n');else z=0;}read.close();}catch (FileNotFoundException e1) {e1.printStackTrace();}catch (IOException e2){e2.printStackTrace();}}}edit5.addActionListener(new ActionListener() //监听排序{public void actionPerformed(ActionEvent e){new Print("按姓名排序后",2);}});show1.addActionListener(new ActionListener() //监听同学{public void actionPerformed(ActionEvent e){new Print("同学",1);}});show2.addActionListener(new ActionListener() //监听同事{public void actionPerformed(ActionEvent e){new Print("同事",1);}});show3.addActionListener(new ActionListener() //监听朋友{public void actionPerformed(ActionEvent e){new Print("朋友",1);}});show4.addActionListener(new ActionListener() //监听亲戚{public void actionPerformed(ActionEvent e){new Print("亲戚",1);}});show5.addActionListener(new ActionListener() //监听全体人员{public void actionPerformed(ActionEvent e){new Print("全体人员",0);}});}public static void main(String []args){new MyAddBook();}public static String[] getSortOfChinese(String[] a) {// Collator 类是用来执行区分语言环境这里使用CHINAComparator cmp = Collator.getInstance(java.util.Locale.CHINA);// JDKz自带对数组进行排序。
个人通讯录java代码完整版importjava.awt.choice;importjava.awt.container;importjava.awt.gridlayout;impor tjava.awt.menuitem;importjava.awt.event.actionevent;importjava.awt.event.actionlistener;importjav a.awt.print.printable;importjava.io.bufferedreader;importjava.io.file;importjava.io.filenotfoundexception;importjava.io.filereader;importjava.io.fil ewriter;importjava.io.ioexception;importjava.io.printwriter;importjava.text.co llator;importjava.util.arrays;importjavax.swing.jbutton;importjavax.swing.jdialog;importjavax.swing.jframe;i mportjavax.swing.jlabel;importjavax.swing.jmenubar;importjavax.swing.jmenu;imp ortjavax.swing.jmenuitem;importjavax.swing.joptionpane;importjavax.swing.jpane l;importjavax.swing.jtextarea;importjavax.swing.jtextfield;importjavax.swing.windowconstants;publicclassmyaddbook{publicstaticjframeframe ;publicmyaddbook(){frame=newjframe(\个人通讯录\frame.setdefaultcloseoperation(jframe.exit_on_close);frame.setvisible(true);j menubarmenubar=newjmenubar();jmenuedit=newjmenu(\编辑\jmenuitemedit1=newjmenuitem(\打印\jmenuitemedit2=newjmenuitem(\查阅\jmenuitemedit3=newjmenuitem(\删掉\jmenuitemedit4=newjmenuitem(\修正\jmenuitemedit5=newjmenuitem(\排序\edit1.addactionlistener(newtypein());jmenushow=newjmenu(\显示信息\jmenuitemshow1=newjmenuitem(\同学\jmenuitemshow2=newjmenuitem(\同事\jmenuitemshow3=newjmenuitem(\朋友\jmenuitemshow4=newjmenuitem(\亲戚\jmenuitemshow5=newjmenuitem(\全体人员\containerc=frame.getcontentpane();jpanelpane=newjpanel();c.add(pane);pane.add(menubar);menubar.add(edit);edit.add(edit1);edit.add(edit2);edit.add(e dit3);edit.add(edit4);edit.add(edit5);menubar.add(show);show.add(show1);show.add(show2);show.add(show3);show.add(sho w4);show.add(show5);frame.setsize(300,100);//frame.pack();//查阅修正删掉classsearch{jdialogdialog=newjdialog(frame,\查询对话框\publicsearch(stringstr,intn){dialog.setsize(250,200);containerc=dialog.getcon tentpane();dialog.setlayout(newgridlayout(2,1,5,5));jlabellsearch=newjlabel(\恳请输出必须\人员的名字:\finaljtextfieldtname=newjtextfield(10);jbuttoncertain=newjbutton(\确认\jbuttoncancel=newjbutton(\中止\//finalstringin=tname.gettext();jpanelpane1=newjpanel();jpanelpane2=newjpanel ();c.add(pane1);c.add(pane2);pane1.add(lsearch);pane1.add(tname);pane2.add(certain);pane2.add(cancel);dialog.setdefaultcloseoperation(dialog.dispose_on_close);//dialog.setdefaultcloseoperation(windowconstants.dispose_on_close);if(n==2){certain.addactionlistener(newactionlistener(){//查询publicvoidactionperformed(actionevente){}});}if(n==3){try{filereaderfile=newfilereader(\scannerfind=newscanner(file);while(find.hasn ext()){if(find.next().equals(tname.gettext())){dialog.dispose();typeinfd=newty pein();fd.frame=newjframe(\查询结果如下\fd.tname.settext(tname.gettext());fd.cgroup.select(find.next());fd.cbirthyear. select(find.next());fd.cbirthmonth.select(find.next());fd.cbirthday.select(fin d.next());fd.tphone.settext(find.next());fd.temail.settext(find.next());fd.tot her.settext(find.next());fd.typein();}}file.close();find.close();}catch(filenotfoundexceptione1){//todoauto-generatedcatchblock//e1.printstacktrace();system.out.print(\未找到文件\}catch(ioexceptione2){//todoauto-generatedcatchblock//e2.printstacktrace();system.out.print(\未找到该人员\}certain.addactionlistener(newactionlistener()//删除{publicvoidactionperformed(actionevente){try{filefile=newfile(\scannerfind=new scanner(file);filewriterfile1=newfilewriter(\printwriterwrite=newprintwriter(f ile1);while(find.hasnext()){strings=find.next();if(!(s.equals(tname.gettext()) )){write.print(s+'\\t');write.print(find.next()+'\\t');write.print(find.next() +'');write.print(find.next()+'');write.print(find.next()+'\\t');write.print(fi nd.next()+'\\t');write.print(find.next()+'\\t');write.println(find.next());}el se{find.next();find.next();find.next();find.next();find.next();find.next();fin d.next();}}//file.close();find.close();file.delete();write.close();file1.close ();filefile2=newfile(\file2.renameto(newfile(\joptionpane.showmessagedialog(nu ll,\删除成功\\删除结果\}catch(filenotfoundexceptione1){//todoauto-generatedcatchblock//e1.printstacktrace();joptionpane.showmessagedialog(null,\未找到文件\}catch(ioexceptione2){//todoauto-generatedcatchblock//e2.printstacktrace();system.out.print(\未找到该人员\}}});}if(n==4){certain.addactionlistener(newactionlistener()//修改{publicvoidactionperformed(actionevente){try{filefile=newfile(\scannerfind=new scanner(file);filewriterfile1=newfilewriter(\printwriterwrite=newprintwriter(f ile1);while(find.hasnext()){strings=find.next();if(!(s.equals(tname.gettext()) )){write.print(s+'\\t');write.print(find.next()+'\\t');write.print(find.next() +'');write.print(find.next()+'');write.print(find.next()+'\\t');write.print(fi nd.next()+'\\t');write.print(find.next()+'\\t');write.println(find.next());}el se{dialog.dispose();typeinfd=newtypein();typein.y=1;fd.frame=newjframe(\查询结果如下\fd.tname.settext(tname.gettext());strings1=find.next();fd.cgroup.select(s1);s trings2=find.next();fd.cbirthyear.select(s2);strings3=find.next();fd.cbirthmon th.select(s3);。
手机通讯录开发源代码设计开发源代码1.AddContactsActivity类package .demo.pr3;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.widget.EditText;import android.widget.Toast;import .demo.pr3.datax.ContactsTable;import/doc/10ce63b27ed184254b35eefdc8d376 eeafaa17c4.html er;/*增加记录操作界面*/public class AddContactsActivity extends Activity { private EditText nameEditT ext; //输入框private EditText mobileEditText; //手机输入框private EditText qqEditText; //qqprivate EditText danweiEditText; //单位private EditText addressEditText; //地址Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(/doc/10ce63b27ed18 4254b35eefdc8d376eeafaa17c4.html yout.edit);setTitle("添加联系人");//从已设置的页面布局查找对应的控件nameEditText=(EditText)findViewById(/doc/10ce63b27ed184254b35eefdc8d376eeafaa17c4.html );mobileEditText=(EditText)findViewById(R.id.mobile); danweiEditText=(EditText)findViewById(R.id.danwei); qqEditText=(EditText)findViewById(R.id.qq);addressEditText=(EditText)findViewById(R.id.address); }/*创建菜单 */public boolean onCreateOptionsMenu(Menu menu) {menu.add(Menu.NONE,1, Menu.NONE, "保存");menu.add(Menu.NONE,2, Menu.NONE, "返回");return super.onCreateOptionsMenu(menu);}/* 菜单事件*/public boolean onOptionsItemSelected(MenuItem item){ // TODO Auto-generated method stubswitch (item.getItemId()) {case 1://保存if(!nameEditText.getText().toString().equals("")){User user=new User();user.setName(nameEditText.getText().toString());user.setMoblie(mobileEditText.getText().toString());user.setDanwei(danweiEditText.getT ext().toString());user.setQq(qqEditT ext.getText().toString());user.setAddress(addressEditText.getText().toString());ContactsTable ct=new ContactsTable(AddContactsActivity.this);if(ct.addData(user)){Toast.makeText(AddContactsActivity.this, "添加成功!",Toast.LENGTH_SHORT).show();finish();}else{Toast.makeText(AddContactsActivity.this, "添加失败!", Toast.LENGTH_SHORT).show();}}else{Toast.makeText(AddContactsActivity.this, "请先输入数据!", Toast.LENGTH_SHORT).show();}break;case 2://返回finish();break;default:break;}return super.onOptionsItemSelected(item);}}2. ContactsMessageActivity类package .demo.pr3;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.widget.TextView;import .demo.pr3.datax.ContactsTable;import/doc/10ce63b27ed184254b35eefdc8d376 eeafaa17c4.html er;/*显示联系人界面 */public class ContactsMessageActivity extends Activity { private TextView nameTextView; //输入框private TextView mobileTextView; //手机输入框private TextView qqTextView; //qqprivate TextView danweiTextView; //单位private TextView addressTextView; //地址private User user; //修改的联系人Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(/doc/10ce63b27ed18 4254b35eefdc8d376eeafaa17c4.html yout.message);setTitle("联系人信息");//从已设置的页面布局查找对应的控件nameTextView=(TextView)findViewById(http://www.doczj.co m/doc/10ce63b27ed184254b35eefdc8d376eeafaa17c4.html );mobileTextView=(T extView)findViewById(R.id.mobile); danweiTextView=(TextView)findViewById(R.id.danwei); qqTextView=(TextView)findViewById(R.id.qq);addressTextView=(TextView)findViewById(R.id.address);//将要修改的联系人数据付值到用户界面显示Bundle localBundle = getIntent().getExtras();int id=localBundle.getInt("user_ID");ContactsTable ct=new ContactsTable(this);user =ct.getUserByID(id);nameTextView.setT ext(":"+user.getName());mobileTextView.setText(":"+user.getMoblie());qqTextView.setText("QQ:"+user.getQq()); danweiTextView.setText("单位:"+user.getDanwei()); addressTextView.setText("地址:"+user.getAddress());}/*创建菜单*/public boolean onCreateOptionsMenu(Menu menu) { menu.add(Menu.NONE, 1, Menu.NONE, "返回");return super.onCreateOptionsMenu(menu);}/* 菜单事件 */public boolean onOptionsItemSelected(MenuItem item){ // TODO Auto-generated method stubswitch (item.getItemId()) {case 1://返回finish();break;default:break;}return super.onOptionsItemSelected(item);}}3. MyContactsActivity类package .demo.pr3;import android.app.Activity;import android.app.AlertDialog;import android.app.Dialog;import android.app.AlertDialog.Builder;import android.content.ContentUris;import android.content.ContentValues;import android.content.Context;import android.content.DialogInterface;import android.content.Intent;import android.graphics.Color;import/doc/10ce63b27ed184254b35eefdc8d376 eeafaa17c4.html .Uri;import android.os.Bundle;import android.provider.ContactsContract.RawContacts;import/doc/10ce63b27ed184254b35eefdc8d376 eeafaa17c4.html monDataKinds.Phone;import/doc/10ce63b27ed184254b35eefdc8d376 eeafaa17c4.html monDataKinds.StructuredName; import android.provider.ContactsContract.Contacts.Data;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.BaseAdapter;import android.widget.Button;import android.widget.EditText;import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;import android.widget.AdapterView.OnItemClickListener;import .demo.pr3.datax.ContactsTable;import/doc/10ce63b27ed184254b35eefdc8d376 eeafaa17c4.html er;/*主界面*/public class MyContactsActivity extends Activity {private ListView listView; //结果列表private BaseAdapter listViewAdapter; //ListView 列表适配器private User users[];//通讯录用户private int selecteItem=0; //当前选择Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(/doc/10ce63b27ed18 4254b35eefdc8d376eeafaa17c4.html yout.main);setTitle("通讯录");listView = (ListView) findViewById(R.id.listView);loadContacts();}/*加载联系人列表*/private void loadContacts(){//获取所以通讯录联系人ContactsTable ct=new ContactsTable(this);users=ct.getAllUser();//listView列表现实适配器listViewAdapter=new BaseAdapter() {Overridepublic View getView(int position,View convertView, ViewGroup parent) {if(convertView==null){TextView textView =new TextView(MyContactsActivity.this); textView.setTextSize(22);convertView=textView;}String moblie=users[position].getMoblie()==null?"" :users[position].getMoblie();((TextView)convertView).setText(users[position].getName()+"---"+moblie);if(position==selecteItem){convertView.setBackgroundColor(Color.YELLOW); }else{convertView.setBackgroundColor(0);}return convertView;}Overridepublic long getItemId(int position) {return position;}Overridepublic Object getItem(int position) {return users[position];}Overridepublic int getCount() {return users.length;}};//设置listView控件的适配器listView.setAdapter(listViewAdapter);listView.setOnItemClickListener(new OnItemClickListener() { Overridepublic void onItemClick(AdapterView arg0, View arg1, int arg2,long arg3) {// TODO Auto-generated method stub//记录点击列selecteItem=arg2;//刷新列表listViewAdapter.notifyDataSetChanged();}});}/*创建菜单*/public boolean onCreateOptionsMenu(Menu menu) {menu.add(Menu.NONE, 1, Menu.NONE, "添加");menu.add(Menu.NONE, 2, Menu.NONE, "编辑");menu.add(Menu.NONE, 3, Menu.NONE, "查看信息");menu.add(Menu.NONE, 4, Menu.NONE, "删除");menu.add(Menu.NONE, 5, Menu.NONE, "查询");menu.add(Menu.NONE, 6, Menu.NONE, "导入到手机薄");menu.add(Menu.NONE, 7, Menu.NONE, "退出");return super.onCreateOptionsMenu(menu);}/*菜单事件*/public boolean onOptionsItemSelected(MenuItem item){// TODO Auto-generated method stubswitch (item.getItemId()) {case 1://添加Intent intent = new Intent(MyContactsActivity.this,AddContactsActivity.class);startActivity(intent);break;case 2://编辑if(users[selecteItem].getId_DB()>0)//根据数据库ID判断当前记录是否可以操作{intent = new Intent(MyContactsActivity.this,UpdateContactsActivity.class);intent.putExtra("user_ID", users[selecteItem].getId_DB());startActivity(intent);}else{Toast.makeText(this, "无结果记录,无法操作!",Toast.LENGTH_SHORT).show();}break;case 3://查看信息if(users[selecteItem].getId_DB()>0){intent = new Intent(MyContactsActivity.this,ContactsMessageActivity.class);intent.putExtra("user_ID", users[selecteItem].getId_DB());startActivity(intent);}else{Toast.makeText(this, "无结果记录,无法操作!",Toast.LENGTH_SHORT).show();}break;case 4://删除if(users[selecteItem].getId_DB()>0){delete();}else{Toast.makeText(this, "无结果记录,无法操。
#include <>#include <>#include <>#include <>#define N 15 ~号码查询~~ \n");printf(" 2.~~号码添加~~ \n");printf(" 3.~~号码拨号~~ \n");printf(" 4.~~号码修改~~ \n");printf(" 5.~~号码删除~~ \n");printf(" 0. ~~退出~~ \n");printf("======================================================================= =======\n");printf("\n");printf(" 个人通讯录\n");printf("\n");printf(" ~~请选择相应的功能~~:");}void input() n");break;}n");break;} }if(feof(fp)) ame,name)==0) k=i;i++;}fclose(fp);//以下是删除后重新写文件len=i;if(k>=0){ if((fp=fopen("","wb+"))==NULL) {printf("can't open file!\n");exit(0);} for(i=0;i<len;i++){ if(i==k) continue;fwrite(&ry[i],sizeof(ren),1,fp);}fclose(fp);printf("\n\n 删除成功!!!\n");}else printf(" \n\n 删除失败!!!\n");getch();}//菜单选择void choice(){char ch;while(1){menu();// 显示菜单ch=getch();//选择菜单if(ch=='0') break;switch(ch)//判断功能项{case '1': input();break;case '2':search();break;case '3':modi();break;case '4':dele();break;case '5':bohao();break; }}printf("\n欢迎使用!!!\n"); }//主函数int main(){choice();//调用菜单选择}。
个人通讯录管理系统 import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*;
public class TongXunLu { public static void main(String[] args) { new menu(); } } class menu implements ActionListener{ JMenuItem zengjia,suoyou,beifen,quit,select,del; JFrame f; Container con; JMenuBar bar; String str1,str2,str3; JFileChooser fc1 = new JFileChooser(); File fc2=new File("D://test.txt"); menu(){ f=new JFrame("通讯录管理系统"); f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); f.setSize(500, 400); f.setLocation(130, 150); con=f.getContentPane(); Color c=Color.YELLOW ; Font fo=new Font("黑体",Font.BOLD,40); JPanel pan=new JPanel(); JLabel lab=new JLabel("通讯录管理系统"); lab.setForeground(c); lab.setFont(fo); pan.add(lab); con.add(pan);
bar=new JMenuBar(); f.setJMenuBar(bar);
JMenu menu1=new JMenu("文件"); JMenu menu2 =new JMenu("查询"); JMenu menu3 =new JMenu("删除"); zengjia=new JMenuItem("增加记录"); suoyou=new JMenuItem("所有记录"); beifen=new JMenuItem("文件备份"); quit=new JMenuItem("退出"); select=new JMenuItem("查询"); del=new JMenuItem("删除");
menu1.add(zengjia); menu1.add(suoyou); menu1.add(beifen); menu1.addSeparator(); menu1.add(quit); menu2.add(select); menu3.add(del);
zengjia.addActionListener(this); suoyou.addActionListener(this); beifen.addActionListener(this); quit.addActionListener(this); select.addActionListener(this); del.addActionListener(this);
bar.add(menu1); bar.add(menu2); bar.add(menu3);
f.setVisible(true); } public File getFile() { int ret = fc1.showSaveDialog(null);
if (ret == JFileChooser.APPROVE_OPTION) { return fc1.getSelectedFile(); } return null; } public void actionPerformed(ActionEvent evt) { if(evt.getSource()==quit) System.exit(0); if(evt.getSource()==zengjia){ f.dispose(); new xinjian(); } if(evt.getSource()==suoyou){ f.dispose(); new suoyou();} if(evt.getSource()==beifen){ char[] ss=new char[1]; try{ FileReader input=new FileReader("D://test.txt"); FileWriter output=new FileWriter("D://un.txt",true); while(input.read(ss,0,1)!=-1) output.write(ss); input.close(); output.close(); }catch (IOException e) { e.printStackTrace(); } JOptionPane.showMessageDialog(null, "你确定要备份么?"); } if(evt.getSource()==select){ f.dispose(); new select();} if(evt.getSource()==del){ f.dispose(); new del();} } } class xinjian extends menu implements ActionListener{ JTextField tf1,tf2,tf3,tf4; JButton bt; xinjian(){ bt=new JButton("确认"); BorderLayout l1=new BorderLayout(); JPanel pan=new JPanel(); JPanel pan2=new JPanel(); JPanel pan3=new JPanel(); JPanel pan4=new JPanel(); JPanel pan5=new JPanel(); JPanel pan6=new JPanel(); con.setLayout(l1); GridLayout g = new GridLayout(5,1);
Color c=Color.yellow ; Font fo=new Font("黑体",Font.BOLD,40); JPanel panl=new JPanel(); JLabel lab1=new JLabel("通讯录管理系统"); lab1.setForeground(c); lab1.setFont(fo); pan.add(lab1); JLabel lab2=new JLabel("姓名"); tf1=new JTextField(10); JLabel lab3=new JLabel("电话"); tf2=new JTextField(10); JLabel lab4=new JLabel("e-mile"); tf3=new JTextField(10); JLabel lab5=new JLabel("qq"); tf4 = new JTextField(10); panl.add(lab1); pan.setLayout(g); pan2.add(lab2);pan2.add(tf1); pan3.add(lab3);pan3.add(tf2); pan4.add(lab4);pan4.add(tf3); pan5.add(lab5);pan5.add(tf4); pan6.add(bt); tf1.addActionListener(this); tf2.addActionListener(this); tf3.addActionListener(this); tf4.addActionListener(this); bt.addActionListener(this); pan.add(pan2);pan.add(pan3); pan.add(pan4);pan.add(pan5); pan.add(pan6); con.add(BorderLayout.NORTH,panl); con.add(BorderLayout.CENTER,pan);
} public void actionPerformed(ActionEvent evt){ if(evt.getSource()==quit) System.exit(0); if(evt.getSource()==zengjia){ f.dispose(); new xinjian();} if(evt.getSource()==suoyou){ f.dispose(); new suoyou();} if(evt.getSource()==beifen){ char[] ss=new char[1]; try{ FileReader input=new FileReader("D://test.txt"); FileWriter output=new FileWriter("D://un.txt",true); while(input.read(ss,0,1)!=-1) output.write(ss);