课程设计通讯录管理系统

更新时间:2024-06-25 08:31:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

#include #include #include #include #include #define null 0

struct record//定义结构体,记录 {

char name[20]; char phone[20]; char adress[40]; char postcode[10]; char e_mail[30]; }student[500];

int num=0; FILE *fp;

int menu_select(); int adduser(); int list(); int search(); int display(); int add();

int listbyname(); int dele(); int save(); int exit();

int main()//主函数 { system(\ system(\清屏 for(;;) {

switch(menu_select()) {

case 0:adduser();break; case 1:list();break; case 2:search();break; case 3:display();break; case 4:add();break;

case 5:listbyname();break;

case 6:dele();break; case 7:save();break; case 8:exit(0); } }

return 0; }

int menu_select()//目录选择 { char s[80]; int a;

printf(\ getch(); system(\

printf(\ 通讯录管理系统\\n\

printf(\ printf(\ 0. 输入记录\\n\ printf(\ 1. 显示记录 \\n\ printf(\ 2. 按姓名查找\\n\ printf(\ 3. 按电话号码查找\\n\ printf(\ 4. 插入记录 \\n\ printf(\ 5. 按姓名排序\\n\ printf(\ 6. 删除记录\\n\ printf(\ 7. 记录保存文件\\n\ printf(\ 8. Quit\\n\

printf(\ do { printf(\ scanf(\

a=atoi(s);//将字符型转化为整形 }

while(a<0||a>8); return a; }

int adduser()//输入记录 { printf(\请输入用户信息 **************\\n\ printf(\输入姓名:\

scanf(\ printf(\输入电话号码:\

scanf(\ printf(\输入地址:\

scanf(\ printf(\输入邮编:\

scanf(\ printf(\输入e-mail:\

scanf(\ num++;

printf(\是否继续添加?(Y/N):\ if(getch()=='y') adduser(); return 0; }

int list()//显示记录 { int i;

system(\ if(num!=0) { printf(\以下为通讯录所有信息************\ for(i=0;i

printf(\姓名: %s\ printf(\电话: %s\ printf(\地址: %s\ printf(\邮编: %s\ printf(\:%s\ printf(\ if(i+1

printf(\ }

else printf(\通讯录中无任何纪录\ printf(\按任意键返回主菜单:\ getch(); return 0; }

int search()//按姓名查找 {

int mark=0;//用来判断搜索是否有结果 int i; int a=0;

printf(\按姓名查找 *******************\ char name[20];

printf(\请输入姓名:\ scanf(\ for(i=a;i

if(strcmp(student[i].name,name)==0)//比较字符串是否相等 { printf(\以下是您查找的用户信息 ***********\ printf(\姓名: %s\ printf(\电话: %s\ printf(\地址: %s\ printf(\:%s\

printf(\ mark++; if((i+1)

printf(\是否继续查找相同名字的用户信息:(y/n)\ if(getch()=='y') { a=i;

continue; }

else return 0; } else {

printf(\按任意键返回主菜单\ getch(); return 0; } } }

if(mark!=0) { printf(\没有相同姓名的用户纪录\ printf(\按任意键返回主菜单\ getch(); return 0; } else

{

printf(\没有相同姓名的用户纪录\ printf(\按任意键返回主菜单\ getch(); return 0; } }

int display()//按电话号码查找,与按姓名查找相同 { int mark=0; int i; int a=0;

printf(\按电话查找 ******************\ char phone[20];

printf(\请输入电话号码:\ scanf(\ for(i=0;i

printf(\ printf(\按任意键返回主菜单:\ mark++; getch(); return 0; } }

if(mark==0) {

printf(\没有该用户的信息\ printf(\按任意键返回主菜单\ getch(); return 0; }

return 0; }

int add()//插入记录

{ int i;

if((fp=fopen(\打开文件 文件指针名=fopen(文件名,使用文件方式); {

printf(\文件打开失败\ }

for(i=0;i

if(fwrite(&student[i],sizeof(struct record),1,fp)!=1)//将数据写入文件 { printf(\写入文件错误!\\n\ }

printf(\请输入用户信息 ****************\\n\ printf(\输入姓名:\

scanf(\ printf(\输入电话号码:\ scanf(\ printf(\输入地址:\

scanf(\ printf(\输入邮编:\

scanf(\ printf(\输入e-mail:\

scanf(\ num++;

printf(\是否继续添加?(Y/N):\ if(getch()=='y') adduser(); return 0; }

fclose(fp);//关闭打开文件

printf(\通讯录文件已保存\

printf(\按任意键退出程序\\n\\t\\t\ exit(0); return 0; }

int deletebyphone()//按电话号码删除 { int i,j;

int deletemark=0; char phone[20];

printf(\请输入要删除用户电话号码:\ scanf(\ if(num==0)

{

printf(\对不起,文件中无任何纪录\ printf(\按任意键返回主菜单\ getch(); return 0; }

for(i=0;i

printf(\以下是您要删除的用户纪录:\ printf(\姓名: %s\ printf(\电话: %s\ printf(\地址: %s\ printf(\:%s\ printf(\是否删除?(y/n)\ if(getch()=='y') { for(j=i;j

deletemark++;

printf(\删除成功\

printf(\是否继续删除?(y/n)\ if(getch()=='y') deletebyphone(); return 0; }

else return 0; }

continue; }

if(deletemark==0) {

printf(\没有该用户的纪录\ printf(\是否继续删除?(y/n)\ if (getch()=='y') deletebyphone(); return 0; } }

int deletebyname()//按姓名删除,与按电话号码删除相同 { int a=0;

int findmark=0; int j;

int deletemark=0; int i;

char name[20];

printf(\请输入要删除用户姓名:\ scanf(\ for(i=a;i

printf(\

printf(\姓名: %s\ printf(\电话: %s\ printf(\地址: %s\ printf(\:%s\

printf(\ printf(\是否删除?(y/n)\ if(getch()=='y') { for(j=i;j

deletemark++;

printf(\删除成功\ if((i+1)

continue; } }

printf(\是否继续删除?(y/n)\ if(getch()=='y') deletebyname(); return 0; }

if((i+1)

{ a=i;

continue; } } }

else continue; }

if((deletemark==0)&&(findmark==0)) {

printf(\没有该用户的纪录\ printf(\是否继续删除?(y/n)\ if(getch()=='y') deletebyphone(); return 0; }

else if(findmark!=0) {

printf(\没有重名信息\ printf(\没有该用户的纪录\ printf(\是否继续删除?(y/n)\ if(getch()=='y') deletebyphone(); return 0; } }

int dele()//删除记录 { char choic;

printf(\按电话号码删除 2-按姓名删除\ printf(\请选择:\ choic=getch(); switch(choic) { case '1':deletebyphone();break; case '2':deletebyname();break; }

return 0; }

int listbyname()//按姓名升序排序 { int i,j;

struct record tmp;

for (i=1;i

}while((strcmp(tmp.name,student[j].name)<0&&j>=0)); student[j+1]=tmp; } }

printf(\排序成功,是否显示?(y/n)\ if(getch()=='y') list(); return 0; }

int save()//保存文件 { int j; FILE*fp;

fp=fopen(\

if(fp==NULL) printf(\ if(num!=0) { for(j=0;j

printf(\保存成功!\ fclose(fp); return 0; }

本文来源:https://www.bwwdw.com/article/hrx3.html

Top