个人通讯录管理系统源代码
- 格式: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();//调用菜单选择}。
#include <stdio.h>#include <windows.h>#include <stdlib.h>#include <conio.h>#include <string.h>/********************结构体定义******************************/ struct Contact{char NAME[20];char Phone[12];char QQ[12];};struct Node{Contact person;Node *next;};Node *head=NULL;/**************************函数申明*************************/ void AddPerson(Contact); //添加联系人Contact *FindPerson(char *name); //查找联系人void DelPerson(char *name); //删除联系人void ShowAll(); //显示所有联系人void function_6(); //分类显示联系人void SaveData(); //保存联系人信息void LoadData(); //载入联系人信息void face(); //界面int CheckPhone(char *num); //检验手机号是否合法int JudgePhone(char *num); //判断电话号码的用户类型/**********************主函数部分****************************/ int main(){system("title 迷你通讯录BY 马恒");system("color f2");LoadData();int op;face();while(1){printf("请选择功能:");fflush(stdin);if(0==scanf("%d",&op)){printf("\n输入不合法,请重新输入!\n");continue;}switch(op){case 0:{printf("感谢您的使用,下次再见!\n");getchar();exit(0);}break;case 1:{Contact per;fflush(stdin);printf("姓名:");scanf("%s",);do{printf("联系电话:");scanf("%s",per.Phone);}while(!CheckPhone(per.Phone));printf("QQ:");scanf("%s",per.QQ);AddPerson(per);SaveData();printf("添加联系人成功!\n");}break;case 2:{char name[15];printf("输入查找姓名:");scanf("%s",name);Contact *per=FindPerson(name);if(NULL!=per){printf("%s %s %s",per->NAME,per->Phone,per->QQ);}else{printf("%s联系人不存在,查询失败!",name);}}break;case 3:{char name[15];printf("输入需要修改的联系人:\n");scanf("%s",name);Contact *per=FindPerson(name);if(NULL==per){printf("%s联系人不存在,修改失败!",name);}else{printf("新姓名:");scanf("%s",per->NAME);printf("\n新号码:");scanf("%s",per->Phone);printf("\n新QQ号:");scanf("%s",per->QQ);SaveData();printf("更新联系人成功!\n");}}break;case 4:{char name[20];printf("输入需要删除的联系人:");scanf("%s",name);Contact *per=FindPerson(name);if(per==NULL){printf("%s联系人不存在,删除失败!",name);}else{DelPerson(name);SaveData();printf("\n成功删除联系人!\n");}}break;case 5:{ShowAll();}break;case 6:{system("cls");for(int i=1;i<=80;i++){printf("@");}printf("\t\t\t\t1.显示全部移动用户\n");//2printf("\t\t\t\t2.显示全部联通用户\n");//1printf("\t\t\t\t3.显示全部电信用户\n");//3printf("\t\t\t\t0.返回主菜单\n");for(i=1;i<=80;i++){printf("@");}int m=1,op;while(m){Node *p=head;printf("请输入指令:");fflush(stdin);if(0==scanf("%d",&op)){printf("您输入的指令无效,重新输入:");continue;}switch(op){case 0:{system("cls");face();m=0;}break;case 1:{while(NULL!=p){if(2==JudgePhone(p->person.Phone)){printf("%s %s %s \n",p->,p->person.Phone,p->person.QQ);}p=p->next;}}break;case 2:{while(NULL!=p){if(1==JudgePhone(p->person.Phone)){printf("%s %s %s \n",p->,p->person.Phone,p->person.QQ);}p=p->next;}}break;case 3:{while(NULL!=p){if(3==JudgePhone(p->person.Phone)){printf("%s %s %s \n",p->,p->person.Phone,p->person.QQ);}p=p->next;}}break;default:{printf("输入不合法,重新输入:");}}}}break;default:{printf("您输入的内容不合法,请重新输入!\n");}}}return 0;}void AddPerson(Contact person) //添加联系人Node *pNewNode;pNewNode=(Node*)malloc(sizeof(Node));pNewNode->person=person;pNewNode->next=NULL;if(NULL==head){head=pNewNode;}else{Node *pNode=head;while(NULL!=pNode->next){pNode=pNode->next;}pNode->next=pNewNode;}}void ShowAll() //显示所有联系人{Node *pNode=head;int icnt=0;while(NULL!=pNode){printf("%s %s %s \n",pNode->,pNode->person.Phone,pNode->person.QQ);pNode=pNode->next;icnt++;}printf("一共有%d个联系人\n",icnt);}Contact *FindPerson(char *name) //查找联系人{Node *pNode=head;while(NULL!=pNode){if(strcmp(pNode->,name)==0){break;}elsepNode=pNode->next;}return pNode?(&(pNode->person)):NULL;}void DelPerson(char *name){if(strcmp(head->,name)==0){Node *pNewHead=head->next;free(head);head=pNewHead;return;}Node *p1=head;while(strcmp(p1->next->,name)!=0) {p1=p1->next;}Node *p2=p1->next->next;free(p1->next);p1->next=p2;}void LoadData(){FILE *fp=fopen("data","rb");if(NULL==fp){return;}Contact ct;while(fread(&ct,sizeof(Contact),1,fp)){AddPerson(ct);}fclose(fp);}void SaveData(){FILE *fp=fopen("data","wb"); //以二进制写入Node *pNode=head;while(NULL!=pNode){fwrite(&(pNode->person),sizeof(Contact),1,fp);pNode=pNode->next;}fclose(fp);}void face(){for(int i=1;i<=80;i++)printf("=");for(i=1;i<=30;i++)printf("=");printf("通讯录管理系统v1.0");for(i=0;i<=30;i++)printf("=");for(i=1;i<=80;i++)printf("=");printf("\t\t\t\t1.添加联系人\n");printf("\t\t\t\t2.查找联系人\n");printf("\t\t\t\t3.修改联系人\n");printf("\t\t\t\t4.删除联系人\n");printf("\t\t\t\t5.显示所有联系人\n");printf("\t\t\t\t6.分类显示联系人\n");printf("\t\t\t\t0.退出通讯录\n");for(i=1;i<=80;i++){printf("=");}for(i=1;i<=80;i++){printf("=");}}int CheckPhone(char *num){if(11!=strlen(num)){return 0;}int i;for(i=0;i<11;i++){if(num[i]<'0'||num[i]>'9'){return 0;}}return 1;}int JudgePhone(char *num) //判断电话号码的用户类型{if('1'!=num[0]){return 0;}if('1'==num[0]){if('3'==num[1]){switch(num[2]){case '0':case '1':case '2':return 1;break;case '3':return 3;break;case '4':case '5':case '6':case '7':case '8':case '9':return 2;break;default:return 0;}}else if('5'==num[1]){switch(num[2]){case '0':case '1':case '2':case '7':case '8':case '9':return 2;break;case '5':case '6':return 1;break;case '3':return 3;break;default:return 0;}}else if('8'==num[1]){switch(num[2]){case'5':case'6':return 1;break;case'0':case'1':case'2':case'7':case'8':case'9':return 2;break;case'3':return 3;break;default:return 0;break;}}else{return 0;}}return 0;}。
c语言编写通讯录程序源代码以下是一个简单的 C 语言编写的通讯录程序示例,包含了添加、查找、修改和删除联系人的功能:```c#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX_CONTACTS 100// 联系人结构体struct Contact {char name[50];char number[20];};// 通讯录数组struct Contact contacts[MAX_CONTACTS];// 通讯录大小int size = 0;// 添加联系人void addContact() {if (size >= MAX_CONTACTS) {printf("通讯录已满,无法添加更多联系人。
\n");return;}printf("请输入联系人姓名:");scanf("%s", contacts[size].name);printf("请输入联系人号码:");scanf("%s", contacts[size].number);size++;printf("联系人已添加。
\n");}// 查找联系人void findContact() {char name[50];printf("请输入要查找的联系人姓名:");scanf("%s", name);for (int i = 0; i < size; i++) {if (strcmp(contacts[i].name, name) == 0) {printf("姓名:%s\n", contacts[i].name); printf("号码:%s\n", contacts[i].number); return;}}printf("未找到该联系人。
《JAVA程序设计》课程设计说明书目录1 引言 01.1课程设计选题 01.2课程设计的目的 01.3本选题的设计背景 02 需求分析 02.1 功能需求 02.2 系统的开发运行环境 (1)3 总体设计 (1)3.1 系统体系结构设计 (1)3.2系统功能模块及主要类设计 (2)3.3数据库设计 (4)4 详细设计与实现 (6)4.1 登录模块 (6)4.2 注册新用户模块 (7)4.3 查询模块 (8)4.4 添加模块 (10)4.5 修改模块 (12)4.6删除模块 (15)4.7备份模块 (17)4.8退出模块 (18)5 小结和展望 (19)参考文献 (20)附录 (21)使用说明书 (21)1引言1.1课程设计选题《个人通讯录管理系统》1.2课程设计的目的通过编写并调试一个Java应用软件,熟悉和掌握使用Java开发应用程序的完整过程。
使学生巩固和加深以Java 语言为基础的面向对象编程技术理论知识的理解,提高实际动手编程能力的培养,掌握以Java为核心的应用软件开发方案,达到能独立阅读、编制和调试一定规模的Java程序的水平。
1.3本选题的设计背景一直以来就想做一个比较实用的通讯录管理系统,这样可以方便我对于身边联系人信息的管理,防止遗忘和丢失。
在这样一个信息化的社会里,人们的生活也越来越离不开电脑了,本次通过做个人通讯录管理系统,希望摈弃传统的纸质记录的弊端,发挥电脑软件的优势,方便人们对自己的联系人信息的管理。
2需求分析2.1 功能需求2.1.1个人通讯录功能需求(1)登陆功能。
用户可以直接输入用户名和密码,登陆进入通讯录的主功能界面。
(2)注册功能。
其他用户可以输入自己的用户名和密码及确认密码,来实现注册成为该通讯录的使用者。
(3)查询功能。
在该功能里,用户可以采用模糊查询和精确查询两种查询方式来对自己存储的联系人信息进行查询。
(4)添加功能。
在该功能里,用户可以添加自己的常用联系人和分组信息。
Android个⼈信息管理系统源代码,个⼈信息管理系统源代码(⾃⼰写的).doc这是⼀个个⼈信息管理系统的web应⽤程序,为本⼈学习完JSP后花了⼀天时间写的,虽然很粗糙,但因为所学知识不多,编程经验很少,能做到这样,觉得暂时还不错。
数据库为sqlserver2005开发环境为eclipse以下是源代码。
包括数据库的创建,B.java(JavaBeans放翁数据库),index.jsp(主页)和Jsp0.jsp,Jsp1.jsp, Jsp2.jsp, Jsp3.jsp, Jsp4.jsp, Jsp5.jsp,Jsp6.jsp,创建数据库create database quanon primary(name='quan_db',filename='d:\quan.mdf',size=5mb,maxsize=50mb,filegrowth=10%)create table m(mid char(30) not null primary key,mname char(10) not null,sex char(8),age int,height int,jianshu char(50),aihao char(50))//bean访问数据库//bean访问数据库package b;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement; import java.sql.ResultSet;import java.sql.SQLException; public class B {private String name;private String mid;private String sex;private int age;private int height;private String jianshu;private String aihao;public void B(){name="";mid="";sex="";age=0;height=0;jianshu="";aihao="";}public void setName(String name){ =name;}public String getName(){return name;}public void setMid(String mid){ this.mid=mid;}public String getMid(){return mid;}public void setSex(String sex){this.sex=sex;}public String getSex(){return sex;}public void setAge(int age){this.age=age;}public int getAge(){return age;}public void setHeight(int height){this.height=height;}public float getHeight(){return height;}public void setJianshu(String jianshu){this.jianshu=jianshu;}public String getJianshu(){return jianshu;}public void setAihao(String aihao){this.aihao=aihao;}public String getAihao(){return aihao;}static {try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}}Connection getCon(String user,String pwd){Connection con=null;try {con=DriverManager.getConnection("jdbc:odbc:qdb",user,pwd); } catch (SQLE。
Java个⼈通讯录管理系统(主⽂档)摘要这个基于java编写的个⼈通讯录管理系统含有添加、删除、查找等基本功能。
在程序中完成了与数据库的通信,并同样可以对数据库进⾏添加、查找、删除等功能。
关键词:个⼈通讯录管理系统、添加、删除、查找、数据库⽬录摘要 (1)1 绪论 (3)1.1 设计⽬的 (3)1.2 设计内容 (3)2 程序需求分析 (3)3 算法分析 (4)3.1 程序总体设计思想 (4)3.2 程序设计总体框图 (5)3.3 程序详细设计 (6)4 调试过程 (8)5 体会 (15)6 参考⽂献 (15)7 成员评分......................................................................................................................... 错误!未定义书签。
附录(源程序)见另⼀⽂档《Java个⼈通讯录管理系统附录(源程序)》 . (15)1 绪论1.1 设计⽬的本课程设计是java语⾔学习中很重要的实践性环节之⼀,是在学习完java课程后进⾏的⼀次全⾯的综合练习旨在巩固和加深我们对java语⾔的基本知识的理解和掌握,掌握java语⾔编程和程序调试的基本技能,利⽤java语⾔进⾏基本的软件设计,掌握书写程序设计说明⽂档的能⼒,提⾼运⽤java语⾔解决实际问题的能⼒。
1.2 设计内容在设计⼀个完整的系统中,我从系统的管理员登录界⾯开始做,另外依据相关要求,对系统增加了数据库⽀持(Microsoft Access做的数据库),还有对数据库⾥的数据进⾏增加、删除、显⽰所有记录、查询记录、导出备份数据库⽂件。
另外为了界⾯美观,增加了系统主界⾯背景界⾯图⽚的⽀持。
为了保证数据库的安全,在系统中设⽴了管理员权限,即只有被允许的⽤户才可以进⼊该系统。
2 程序需求分析设计⼀个通讯录管理软件,要求如下:增加记录、删除记录、显⽰所有记录、查询记录、⽂件备份、退出。
#include <iostream>#include <stdlib.h>#include <string>using namespace std;typedef struct //定义个人信息结构体{char name[15]; //存放名字char position[20]; //存放职务char title[20]; //存放职称char number[12]; //存放电话号码char email[20]; //存放电子邮件} Person;Person per[100];/*******************菜单显示函数******************/int Menu(){char str;while(str < '0' || str > '6'){system("cls"); /************清屏**********/cout << "\t\t *****通讯录***** \n";cout << "\t\t┌───────┐\n";cout << "\t\t│1. 添加信息│\n";cout << "\t\t│2. 显示信息│\n";cout << "\t\t│3. 删除信息│\n";cout << "\t\t│4. 查询信息│\n";cout << "\t\t│5. 修改信息│\n";cout << "\t\t│6. 姓名排序│\n";cout << "\t\t│0. 退出程序│\n";cout << "\t\t└───────┘\n";cout << "\t\t请您选择(0-6):";str = getchar();}return (str-'0'); /**********返回数字**********/ }/********************信息添加函数******************/int Input(Person per[], int n){int i=0;char s;while(s != 'n' && s != 'N') //判断是否继续添加信息{cout << "\t姓名:";cin >> per[n+i].name;cout << "\t职务:";cin >> per[n+i].position;cout << "\t职称:";cin >> per[n+i].title;cout << "\t电话:";cin >> per[n+i].number;cout << "\t邮箱:";cin >> per[n+i].email;cout << "\n\t是否继续添加?(Y/N)";cin >> s;i++;}return n; //返回i值到主函数}/*********************显示函数**********************/void Display(Person per[], int n){int i;cout << "\t****************************************************\n";cout << "\t" << "姓名" ;cout << "\t" << "职务" ;cout << "\t" << "职称" ;cout << "\t" << "电话" ;cout << "\t" << "邮箱\n";cout << "\t****************************************************\n";for(i = 0; i <= n; i++) //循环函数,显示个人信息{cout << "\t" << per[i].name ;cout << "\t" << per[i].position ;cout << "\t" << per[i].title ;cout << "\t" << per[i].number ;cout << "\t" << per[i].email <<endl;if(i>1&&i%10==0){printf("\t---------------------------------\n");printf("\t");system("pause");printf("\t---------------------------------\n");}}cout << "\t****************************************************\n";}/****************************删除函数*****************************/int Delete(Person per[], int n){char str[15];int i = 0;int j;cout << "\t请输入想删除记录中的名字: ";cin >> str;while(strcmp(per[i].name, str) != 0 && i < n) /*******字符串比较*******/ i++;if(i == n){cout << "\t通讯录中没有此人!\n";}for(j = i; j < n-1; j++){strcpy(per[j].name, per[j+1].name);strcpy(per[j].position, per[j+1].position); /************将后一条记录拷贝到前一条**********/strcpy(per[j].title, per[j+1].title);strcpy(per[j].number , per[j+1].number);strcpy(per[j].email, per[j+1].email);}cout << "\t已经成功删除!\n";return n-1;}/********************************查询函数*******************************/void Find(Person per[], int n){int m;cout << "\t请选择查询方式:\n";cout << "\t┌──────┐\n";cout << "\t│1------姓名│\n";cout << "\t│2------职务│\n";cout << "\t│3------职称│\n"; //显示查询方式的目录cout << "\t│4------电话│\n";cout << "\t│5------邮箱│\n";cout << "\t│6------返回│\n";cout << "\t└──────┘\n";cout << "\t请选择序号: ";cin >> m;while(m != 1 && m != 2 && m != 3 && m != 4 && m != 5){cout << "\t输入错误,请重新选择: ";cin >> m;}if(m == 1) //按姓名查询{char str[15];int i = 0;cout << "\t请输入想查询的姓名: ";cin >> str;while(strcmp(per[i].name, str) != 0 && i < n)i++;if(i == n){cout << "\t通讯录中没有此人! ";return ;}cout << "\t此人职务:\n" << " \t " << per[i].position <<endl;cout << "\t此人职称:\n" << " \t " << per[i].title <<endl;cout << "\t电话号码:\n" << " \t " << per[i].number <<endl;cout << "\t此人邮箱:\n" << " \t " << per[i].email <<endl;if(m == 2) //按职务查询{char str[20];int i = 0;cout << "\t请输入想查询的职务: ";cin >> str;while(strcmp(per[i].position, str) != 0 && i < n)i++;if(i == n){cout<< "\t通讯录中没有此人! ";return ;}cout << "\t此人姓名:\n" << " \t " << per[i].name <<endl;cout << "\t此人职称:\n" << " \t " << per[i].title <<endl;cout << "\t电话号码:\n" << " \t " << per[i].number <<endl;cout << "\t此人邮箱:\n" << " \t " << per[i].email <<endl; };if(m == 3) //按职称查询{char str[20];int i = 0;cout << "\t请输入想查询的职称: ";cin >> str;while(strcmp(per[i].title, str) != 0 && i < n)i++;if(i == n){cout << "\t通讯录中没有此人! ";return ;}cout << "\t此人姓名:\n" << " \t " << per[i].name <<endl;cout << "\t此人职务:\n" << " \t " << per[i].position <<endl;cout << "\t电话号码:\n" << " \t " << per[i].number <<endl;cout << "\t此人邮箱:\n" << " \t " << per[i].email <<endl;if(m == 4) //按号码查询{char l[12];int i = 0;cout << "\t请输入想查询的电话: ";cin >> l;while((per[i].number, l) != 0 && i < n)i++;if(i == n){cout << "\t通讯录中没有此人! ";return ;}cout << "\t此人姓名:\n" << " \t " << per[i].name <<endl;cout << "\t此人职务:\n" << " \t " << per[i].position <<endl;cout << "\t此人职称:\n" << " \t " << per[i].title <<endl;cout << "\t此人邮箱:\n" << " \t " << per[i].email <<endl; }if(m == 5) //按邮箱查询{char str[20];int i = 0;cout << "\t请输入想查询的邮箱: ";cin >> str;while(strcmp(per[i].email, str) != 0 && i < n)i++;if(i == n){cout << "\t通讯录中没有此人! ";return ;}cout << "\t此人姓名:\n" << " \t " << per[i].name <<endl;cout << "\t此人职务:\n" << " \t " << per[i].position <<endl;cout << "\t此人职称:\n" << " \t " << per[i].title <<endl;cout << "\t电话号码:\n" << " \t " << per[i].number <<endl; };}/**********************修改函数************************/void Modify(Person per[], int n) /*修改函数*/{char str[15];int i=0;cout << "\t想修改的名字:\t ";cin >> str;while(strcmp(per[i].name, str) != 0 && i < n)i++;if(i == n){cout << "\t没有此人!\t";return ;}cout << "\t输入新姓名: ";gets(per[i].name);cout << "\t输入新职务: ";gets(per[i].position);cout << "\t输入新职称: ";gets(per[i].title);cout << "\t输入新号码: ";gets(per[i].number);cout << "\t输入新邮箱: ";gets(per[i].email);cout << "\t修改成功\n\t";}/*****************排序函数***************/void Sort (Person per[], int n){int i;int j;char temp[15];for (i = 0; i < n-1; i++)for (j = i; j < n; j++)if (strcmp(per[i].name , per[j].name) > 0){strcpy(temp, per[i].name );strcpy(per[i].name , per[j].name);strcpy(per[j].name, temp);strcpy(temp, per[i].position );strcpy(per[i].position , per[j].position);strcpy(per[j].position, temp);strcpy(temp, per[i].title );strcpy(per[i].title , per[j].title);strcpy(per[j].title, temp);strcpy(temp, per[i].number );strcpy(per[i].number , per[j].number);strcpy(per[j].number, temp);strcpy(temp, per[i].email );strcpy(per[i].email , per[j].email);strcpy(per[j].email, temp);}Display(per, n);return ;}/******************主函数开始******************/void main(){int n = 0;for(n = 0; n <= 6; n++){switch (Menu()) /*调用主菜单函数,返回值整数作开关语句的条件*/{case 1:cout << "\t添加记录到通讯录\n";n = Input(per, n);cout << "\t";system("pause");break;case 2:cout << "\t通讯录显示\n";Display(per, n);cout << "\t";system("pause");break;case 3:cout << "\t从通讯录中删除记录\n";n = Delete(per, n);cout << "\t";system("pause");break;case 4:cout << "\t通讯录中查找\n";Find(per, n);cout << "\t";system("pause");break;case 5:cout << "\t修改记录\n";Modify(per, n);cout << "\t";system("pause");break;case 6:cout << "\t按姓名排序\n";Sort(per, n);cout << "\t";system("pause");break;case 0: /*如返回值为0则程序结束*/ cout << "\tOVER !\n";default :cout<< "\n\t";exit(0);}}}。
#include "stdio.h"#include "stdlib.h" /*标准库函数*/#include "string.h"/*字符串函数*/#include "ctype.h" /*字符操作函数*/#define M 50 /*定义常数表示记录数*/typedef struct /*定义数据结构*/{char name[20]; /*姓名*/char units[30]; /*单位*/char tele[10]; /*电话*/}ADDRESS;/******以下是函数原型*******/int enter(ADDRESS t[]); /*输入记录*/void list(ADDRESS t[],int n); /*显示记录*/void search(ADDRESS t[],int n); /*按姓名查找显示记录*/int delete(ADDRESS t[],int n); /*删除记录*/int add(ADDRESS t[],int n); /*插入记录*/void save(ADDRESS t[],int n); /*记录保存为文件*/int load(ADDRESS t[]); /*从文件中读记录*/void display(ADDRESS t[]); /*按序号查找显示记录*/void sort(ADDRESS t[],int n); /*按姓名排序*/void qseek(ADDRESS t[],int n); /*快速查找记录*/void copy(); /*文件复制*/void print(ADDRESS temp); /*显示单条记录*/int find(ADDRESS t[],int n,char *s) ; /*查找函数*/int menu_select(); /*主菜单函数*//******主函数开始*******/main(){int i;ADDRESS adr[M]; /*定义结构体数组*/int length; /*保存记录长度*/clrscr(); /*清屏*/for(;;)/*无限循环*/{switch(menu_select()) /*调用主菜单函数,返回值整数作开关语句的条件*/{case 0:length=enter(adr);break;/*输入记录*/case 1:list(adr,length);break; /*显示全部记录*/case 2:search(adr,length);break; /*查找记录*/case 3:length=delete(adr,length);break; /*删除记录*/case 4:length=add(adr,length); break; /*插入记录*/case 5:save(adr,length);break; /*保存文件*/case 6:length=load(adr); break; /*读文件*/case 7:display(adr);break; /*按序号显示记录*/case 8:sort(adr,length);break; /*按姓名排序*/case 9:qseek(adr,length);break; /*快速查找记录*/case 10:copy();break; /*复制文件*/case 11:exit(0); /*如返回值为11则程序结束*/}}}/*菜单函数,函数返回值为整数,代表所选的菜单项*/menu_select(){char s[80];int c;gotoxy(1,25);/*将光标定为在第25行,第1列*/printf("press any key enter menu......\n");/*提示压任意键继续*/ getch(); /*读入任意字符*/clrscr(); /*清屏*/gotoxy(1,1);printf("********************MENU*********************\n\n");printf(" 0. Enter record\n");printf(" 1. List the file\n");printf(" 2. Search record on name\n");printf(" 3. Delete a record\n");printf(" 4. add record \n");printf(" 5. Save the file\n");printf(" 6. Load the file\n");printf(" 7. display record on order\n");printf(" 8. sort to make new file\n");printf(" 9. Quick seek record\n");printf(" 10. copy the file to new file\n");printf(" 11. Quit\n");printf("***********************************************\n");do{printf("\n Enter you choice(0~11):"); /*提示输入选项*/scanf("%s",s); /*输入选择项*/c=atoi(s); /*将输入的字符串转化为整型数*/}while(c<0||c>11); /*选择项不在0~11之间重输*/return c; /*返回选择项,主程序根据该数调用相应的函数*/}/***输入记录,形参为结构体数组,函数值返回类型为整型表示记录长度*/ int enter(ADDRESS t[]){int i,n;char *s;clrscr(); /*清屏*/printf("\nplease input num \n"); /*提示信息*/scanf("%d",&n); /*输入记录数*/printf("please input record \n"); /*提示输入记录*/printf("name unit telephone\n");printf("------------------------------------------------\n");for(i=0;i<n;i++){scanf("%s%s%s",t[i].name,t[i].units,t[i].tele); /*输入记录*/printf("----------------------------------------------\n");}return n; /*返回记录条数*/}/*显示记录,参数为记录数组和记录条数*/void list(ADDRESS t[],int n){int i;clrscr();printf("\n\n*******************ADDRESS******************\n");printf("name unit telephone\n");printf("------------------------------------------------\n");for(i=0;i<n;i++)printf("%-20s%-30s%-10s\n",t[i].name,t[i].units,t[i].tele);if((i+1)%10==0) /*判断输出是否达到10条记录*/{printf("Press any key continue...\n"); /*提示信息*/getch(); /*压任意键继续*/}printf("************************end*******************\n");}/*查找记录*/void search(ADDRESS t[],int n){char s[20]; /*保存待查找姓名字符串*/int i; /*保存查找到结点的序号*/clrscr(); /*清屏*/printf("please search name\n");scanf("%s",s); /*输入待查找姓名*/i=find(t,n,s); /*调用find函数,得到一个整数*/if(i>n-1) /*如果整数i值大于n-1,说明没找到*/printf("not found\n");elseprint(t[i]); /*找到,调用显示函数显示记录*/}/*显示指定的一条记录*/void print(ADDRESS temp){clrscr();printf("\n\n********************************************\n");printf("name unit telephone\n");printf("------------------------------------------------\n");printf("%-20s%-30s%-10s\n",,temp.units,temp.tele);printf("**********************end***********************\n");}/*查找函数,参数为记录数组和记录条数以及姓名s */int find(ADDRESS t[],int n,char *s){int i;for(i=0;i<n;i++)/*从第一条记录开始,直到最后一条*/{if(strcmp(s,t[i].name)==0) /*记录中的姓名和待比较的姓名是否相等*/ return i; /*相等,则返回该记录的下标号,程序提前结结束*/ }return i; /*返回i值*/}/*删除函数,参数为记录数组和记录条数*/int delete(ADDRESS t[],int n){char s[20]; /*要删除记录的姓名*/int ch=0;int i,j;printf("please deleted name\n"); /*提示信息*/scanf("%s",s);/*输入姓名*/i=find(t,n,s); /*调用find函数*/if(i>n-1) /*如果i>n-1超过了数组的长度*/printf("no found not deleted\n"); /*显示没找到要删除的记录*/ else{print(t[i]); /*调用输出函数显示该条记录信息*/printf("Are you sure delete it(1/0)\n"); /*确认是否要删除*/scanf("%d",&ch); /*输入一个整数0或1*/if(ch==1) /*如果确认删除整数为1*/{for(j=i+1;j<n;j++) /*删除该记录,实际后续记录前移*/{strcpy(t[j-1].name,t[j].name); /*将后一条记录的姓名拷贝到前一条*/strcpy(t[j-1].units,t[j].units); /*将后一条记录的单位拷贝到前一条*/strcpy(t[j-1].tele,t[j].tele); /*将后一条记录的电话拷贝到前一条*/}n--; /*记录数减1*/}}return n; /*返回记录数*/}/*插入记录函数,参数为结构体数组和记录数*/int add(ADDRESS t[],int n)/*插入函数,参数为结构体数组和记录数*/{ADDRESS temp; /*新插入记录信息*/int i,j;char s[20]; /*确定插入在哪个记录之前*/printf("please input record\n");printf("************************************************\n");printf("name unit telephone\n");printf("--------------------------------------------------\n");scanf("%s%s%s",,temp.units,temp.tele); /*输入插入信息*/ printf("------------------------------------------------\n");printf("please input locate name \n");scanf("%s",s); /*输入插入位置的姓名*/i=find(t,n,s); /*调用find,确定插入位置*/for(j=n-1;j>=i;j--) /*从最后一个结点开始向后移动一条*/{strcpy(t[j+1].name,t[j].name); /*当前记录的姓名拷贝到后一条*/strcpy(t[j+1].units,t[j].units); /*当前记录的单位拷贝到后一条*/strcpy(t[j+1].tele,t[j].tele); /*当前记录的电话拷贝到后一条*/ }strcpy(t[i].name,); /*将新插入记录的姓名拷贝到第i个位置*/ strcpy(t[i].units,temp.units); /*将新插入记录的单位拷贝到第i个位置*/strcpy(t[i].tele,temp.tele); /*将新插入记录的电话拷贝到第i个位置*/n++; /*记录数加1*/return n; /*返回记录数*/}/*保存函数,参数为结构体数组和记录数*/void save(ADDRESS t[],int n){int i;FILE *fp; /*指向文件的指针*/if((fp=fopen("record.txt","wb"))==NULL) /*打开文件,并判断打开是否正常*/{printf("can not open file\n");/*没打开*/exit(1); /*退出*/}printf("\nSaving file\n"); /*输出提示信息*/fprintf(fp,"%d",n); /*将记录数写入文件*/fprintf(fp,"\r\n"); /*将换行符号写入文件*/for(i=0;i<n;i++){fprintf(fp,"%-20s%-30s%-10s",t[i].name,t[i].units,t[i].tele);/*格式写入记录*/fprintf(fp,"\r\n"); /*将换行符号写入文件*/}fclose(fp);/*关闭文件*/printf("****save success***\n"); /*显示保存成功*/}/*读入函数,参数为结构体数组*/int load(ADDRESS t[]){int i,n;FILE *fp; /*指向文件的指针*/if((fp=fopen("record.txt","rb"))==NULL)/*打开文件*/{printf("can not open file\n"); /*不能打开*/exit(1); /*退出*/}fscanf(fp,"%d",&n); /*读入记录数*/for(i=0;i<n;i++)fscanf(fp,"%20s%30s%10s",t[i].name,t[i].units,t[i].tele); /*按格式读入记录*/fclose(fp); /*关闭文件*/printf("You have success read data from file!!!\n"); /*显示保存成功*/return n; /*返回记录数*/}/*按序号显示记录函数*/void display(ADDRESS t[]){int id,n;FILE *fp; /*指向文件的指针*/if((fp=fopen("record.txt","rb"))==NULL) /*打开文件*/{printf("can not open file\n"); /*不能打开文件*/exit(1); /*退出*/}printf("Enter order number...\n"); /*显示信息*/scanf("%d",&id); /*输入序号*/fscanf(fp,"%d",&n); /*从文件读入记录数*/if(id>=0&&id<n) /*判断序号是否在记录范围内*/{fseek(fp,(id-1)*sizeof(ADDRESS),1); /*移动文件指针到该记录位置*/ print(t[id]); /*调用输出函数显示该记录*/printf("\r\n");}elseprintf("no %d number record!!!\n ",id); /*如果序号不合理显示信息*/ fclose(fp); /*关闭文件*/}/*排序函数,参数为结构体数组和记录数*/void sort(ADDRESS t[],int n){int i,j,flag;ADDRESS temp; /*临时变量做交换数据用*/for(i=0;i<n;i++){flag=0; /*设标志判断是否发生过交换*/for(j=0;j<n-1;j++)if((strcmp(t[j].name,t[j+1].name))>0) /*比较大小*/{flag=1;strcpy(,t[j].name); /*交换记录*/strcpy(temp.units,t[j].units);strcpy(temp.tele,t[j].tele);strcpy(t[j].name,t[j+1].name);strcpy(t[j].units,t[j+1].units);strcpy(t[j].tele,t[j+1].tele);strcpy(t[j+1].name,);strcpy(t[j+1].units,temp.units);strcpy(t[j+1].tele,temp.tele);}if(flag==0)break; /*如果标志为0,说明没有发生过交换循环结束*/ }printf("sort sucess!!!\n"); /*显示排序成功*/}/*快速查找,参数为结构体数组和记录数*/void qseek(ADDRESS t[],int n){char s[20];int l,r,m;printf("\nPlease sort before qseek!\n"); /*提示确认在查找之前,记录是否已排序*/printf("please enter name for qseek\n"); /*提示输入*/scanf("%s",s); /*输入待查找的姓名*/l=0;r=n-1; /*设置左边界与右边界的初值*/while(l<=r) /*当左边界<=右边界时*/{m=(l+r)/2; /*计算中间位置*/if(strcmp(t[m].name,s)==0) /*与中间结点姓名字段做比较判是否相等*/{print(t[m]); /*如果相等,则调用print函数显示记录信息*/return ; /*返回*/}if(strcmp(t[m].name,s)<0) /*如果中间结点小*/l=m+1; /*修改左边界*/elser=m-1; /*否则,中间结点大,修改右边界*/}if(l>r) /*如果左边界大于右边界时*/printf("not found\n"); /*显示没找到*/}/*复制文件*/void copy(){char outfile[20]; /*目标文件名*/int i,n;ADDRESS temp[M]; /*定义临时变量*/FILE *sfp,*tfp; /*定义指向文件的指针*/clrscr();/*清屏*/if((sfp=fopen("record.txt","rb"))==NULL) /*打开记录文件*/{printf("can not open file\n"); /*显示不能打开文件信息*/exit(1); /*退出*/}printf("Enter outfile name,for example c:\\f1\\te.txt:\n"); /*提示信息*/ scanf("%s",outfile); /*输入目标文件名*/if((tfp=fopen(outfile,"wb"))==NULL) /*打开目标文件*/{printf("can not open file\n"); /*显示不能打开文件信息*/exit(1); /*退出*/}fscanf(sfp,"%d",&n); /*读出文件记录数*/fprintf(tfp,"%d",n);/*写入目标文件数*/fprintf(tfp,"\r\n"); /*写入换行符*/for(i=0;i<n;i++){fscanf(sfp,"%20s%30s%10s\n",temp[i].name,temp[i].units, temp[i].tele); /*读入记录*/fprintf(tfp,"%-20s%-30s%-10s\n",temp[i].name,temp[i].units,temp[i].tele); /*写入记录*/fprintf(tfp,"\r\n"); /*写入换行符*/}fclose(sfp); /*关闭源文件*/fclose(tfp); /*关闭目标文件*/printf("you have success copy file!!!\n"); /*显示复制成功*/}。
个人通讯录管理系统 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);