1、C语言大作业电话号码管理系统设计#include #include #include #include #define N 100 void input();/添加新用户 void amend();/修改用户信息 void delete_client();/删除用户信息 void search_client();/用户信息查询 void collect_telephone();/所有用户信息 void save_client(struct telephone message);/保存 void search_name();/按用户名查询 void search_telephone();/按电话
2、号码查询 void goodbye();/退出提示struct telephone char client_name20; char client_address30; char client_telephone15; ; void main() char choice10=; int len=0; while (choice0!=7) system(cls); printf( ); printf(n ); printf(n =); printf(n =欢迎使用电话管理系统=); printf(n =); printf(n ); printf(n n); printf( ); printf(n
3、 n); printf( | | | n); printf( 1、 | 用户信息查询 | 2、 | 所有用户信息 n); printf( | | | n); printf( =|=|n); printf( | | | n); printf( 3、 | 删除用户信息 | 4、 | 添加用户 n); printf( | | | n); printf( =|=|n); printf( | | | n); printf( 5、 | 修改用户信息 | 6、 | 退出系统 n); printf( | | | n); printf( n); printf(n 请选择(1-6):); scanf(%s,cho
4、ice); len=strlen(choice); if (len1) printf(n 请输入1-6之间的整数n); printf(n 按回车键返回主菜单n); getchar(); getchar(); continue; switch (choice0) case 1:search_client();break; case 2:collect_telephone();break; case 3:delete_client();break; case 4:input();break; case 5:amend();break; case 6:goodbye();break; default
5、:break; /添加新用户void input() struct telephone message; char reply=y; char save=y; while (reply=y) system(cls); printf(n 用户姓名:); scanf(%s,message.client_name); printf(n 家庭住址:); scanf(%s,message.client_address); printf(n 电话号码:); scanf(%s,message.client_telephone); printf(n 要保存吗?(y/n):); scanf( %c,&save)
6、; if (save=y) save_client(message); printf(n 是否继续?(y/n):); scanf( %c,&reply); printf(n 按回车键返回主菜单n); getchar(); getchar(); /保存void save_client(struct telephone message) FILE *fp; fp=fopen(message.dat,a+); if (fp!=NULL) fwrite(&message,sizeof(struct telephone),1,fp); else printf(n 打开文件时出现错误,按回车键返回n);
7、getchar(); return; fclose(fp); /修改用户信息 void amend() struct telephone message; FILE *fp; char amend_name20; char reply=y; char found=y; char save=y; int size=sizeof(struct telephone); while (reply=y) found=n; fp=fopen(message.dat,r+w); if (fp!=NULL) system(cls); printf(n 请输入你要修改的姓名:); scanf(%s,amend_
8、name); while (fread(&message,size,1,fp)=1) if (strcmp(amend_name,message.client_name)=0) found=y; break; if (found=y) printf(n 修改用户信息n); printf(n ); printf(n 用户姓名 %-16s,message.client_name); printf(n ); printf(n 家庭地址 %-16s,message.client_address); printf(n ); printf(n 电话号码 %-16s,message.client_telep
9、hone); printf(n n); printf(n 修改用户信息:n); printf(n 用户姓名:); scanf(%s,message.client_name); printf(n 家庭住址:); scanf(%s,message.client_address); printf(n 电话号码:); scanf(%s,message.client_telephone); printf(n 是否保存?(y/n):); scanf( %c,&save); if(save=y) fseek(fp,-size,1); fwrite(&message,sizeof(struct telepho
10、ne),1,fp); else printf(n 无此信息!n); else printf(n 打开文件时出现错误,按回车键返回n); getchar(); return; fclose(fp); printf(n 是否继续?(y/n):); scanf( %c,&reply); printf(n 按回车键返回主菜单n); getchar(); getchar(); /删除用户信息void delete_client() struct telephone messageN; struct telephone temp_str; struct telephone delete_str; int
11、i=0,j=0; char reply=y; char found=y; char confirm=y; char delete_name20; FILE *fp; while (reply=y) system(cls); fp=fopen(message.dat,r); if (fp!=NULL) i=0; found=n; printf(n 请输入你要删除的姓名:); scanf(%s,delete_name); while (fread(&temp_str,sizeof(struct telephone),1,fp)=1) if(strcmp(delete_name,temp_str.c
12、lient_name)=0) found=y; delete_str=temp_str; else messagei=temp_str; i+; else printf(n 无此信息,按回车键返回n); getchar(); return; fclose(fp); if (found=y) printf(n 用户信息); printf(n ); printf(n 用户姓名 %-16s,delete_str.client_name); printf(n ); printf(n 家庭地址 %-16s,delete_str.client_address); printf(n ); printf(n
13、电话号码 %-16s,delete_str.client_telephone); printf(n n); else printf(n 无此信息,按回车键返回n); getchar(); break; printf(n 确定要删除?(y/n):); scanf( %c,&confirm); if (confirm=y) fp=fopen(message.dat,w); if (fp!=NULL) for(j=0;j3) printf(n 请输入1-3之间的整数 (1-3)n); printf(n 按回车键返回); getchar(); continue; if (choice=1) searc
14、h_name(); else if (choice=2) search_telephone(); /按用户名查询 void search_name() struct telephone message; FILE *fp; char amend_name20; char reply=y; char found=y; while (reply=y) found=n; fp=fopen(message.dat,r+w); if (fp!=NULL) system(cls); printf(n 请输入你要查的姓名:); scanf(%s,amend_name); while (fread(&mess
15、age,sizeof(struct telephone),1,fp)=1) if (strcmp(amend_name,message.client_name)=0) found=y; break; if (found=y) printf(n 用户信息n); printf(n ); printf(n 用户姓名 %-16s,message.client_name); printf(n ); printf(n 家庭地址 %-16s,message.client_address); printf(n ); printf(n 电话号码 %-16s,message.client_telephone);
16、printf(n n); else printf(n 无此信息n); else printf(n 打开文件时出现错误,按回车键返回n); getchar(); return; fclose(fp); printf(n 是否继续?(y/n):); scanf( %c,&reply); printf(n 按回车键返回主菜单n); getchar(); getchar(); /按电话号码查询 void search_telephone() struct telephone message; FILE *fp; char telephone20; char reply=y; char found=y;
17、 while (reply=y) found=n; fp=fopen(message.dat,r+w); if (fp!=NULL) system(cls); printf(n 请输入你要查的电话号码:); scanf(%s,telephone); while (fread(&message,sizeof(struct telephone),1,fp)=1) if (strcmp(telephone,message.client_telephone)=0) found=y; break; if (found=y) printf(n 用户信息n); printf(n ); printf(n 用户
18、姓名 %-16s,message.client_name); printf(n ); printf(n 家庭地址 %-16s,message.client_address); printf(n ); printf(n 电话号码 %-16s,message.client_telephone); printf(n n); else printf(n 无此电话号码信息n); else printf(n 打开文件时出现错误,按回车键返回n); getchar(); return; fclose(fp); printf(n 是否继续?(y/n):); scanf( %c,&reply); printf(
19、n 按回车键返回主菜单n); getchar(); getchar(); /显示所有用户信息函数 void collect_telephone() struct telephone message; FILE *fp; fp=fopen(message.dat,r); if (fp!=NULL) system(cls); printf(n ); printf(n 用户姓名 家庭地址 电话号码 ); printf(n n); while (fread(&message,sizeof(struct telephone),1,fp)=1) printf( %-16s%-16s%-16s,message.client_name,message.client_address,message.client_telephone); printf(n n); else printf(n 打开文件时出现错误,按