源代码.docx
- 文档编号:7535828
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:19
- 大小:17.54KB
源代码.docx
《源代码.docx》由会员分享,可在线阅读,更多相关《源代码.docx(19页珍藏版)》请在冰豆网上搜索。
源代码
源代码.txt对的时间遇见对的人是一生幸福;对的时间遇见错的人是一场心伤;错的时间遇见对的人是一段荒唐;错的时间遇见错的人是一声叹息。
#include
#include
#include
#include
structrecord
{
charid[10];
charname[20];
charphone[20];
charadress[40];
charpostcode[10];
chare_mail[30];
charage[20];
}student[500];
intnum=0;//外部变量num为文件中的纪录数
FILE*fp;
voidmainmenu();//主菜单
voidnewrecord();//新添纪录
voidsearchmenu();//查询菜单
voidsearchbyid();//按学号查询
voidsearchbyname();//按姓名查询
voidsearchbyphone();//按电话查询
voiddeletemenu();//删除菜单
voiddeleteone();//删除单个
voidshowall();//显示所有
voidreadfromfile();//读取文件
voidwritetofile();//写入文件
voiddeletebyid();//按学号删除
voiddeletebyname();//按姓名删除
voidlistbyid();//按学号排序
voidlistbyname();//按姓名排序
voidlistmenu();//排序菜单
intmain()
{
//readfromfile();
while
(1)
{
mainmenu();
}
return0;
}
voidreadfromfile()//从文件导入
{
if((fp=fopen("student.bin","rb"))==NULL)
{
printf("\n\t\t通讯录文件不存在");
if((fp=fopen("student.bin","wb"))==NULL)
{
printf("\n\t\t建立失败");
exit(0);
}
else
{
printf("\n\t\t通讯录文件已建立");
printf("\n\t\t按任意键进入主菜单");
getchar();
//return0;
}
exit(0);
}
fseek(fp,0,2);/*文件位置指针移动到文件末尾*/
if(ftell(fp)>0)/*文件不为空*/
{
rewind(fp);/*文件位置指针移动到文件开始位置*/
for(num=0;!
feof(fp)&&fread(&student[num],sizeof(structrecord),1,fp);num++);
printf("\n\t\t文件导入成功");
printf("\n\t\t按任意键返回主菜单");
getch();
//return0;
}
printf("\n\t\t文件导入成功");
printf("\n\t\t通讯录文件中无任何纪录");
printf("\n\t\t按任意键返回主菜单");
getchar();
//return0;
}
voidmainmenu()//主菜单
{
charchoic;
system("cls");
printf("\n\t\t********************主菜单********************");
printf("\n\t\t***********1-新添纪录2-查询菜单************");
printf("\n\t\t***********3-删除菜单4-记录排序************");
printf("\n\t\t***********5-保存退出6-不保存退出***********");
printf("\n\t\t************************************************");
printf("\n\t\t请选择:
");
choic=getch();
switch(choic)
{
case'1':
newrecord();break;
case'2':
searchmenu();break;
case'3':
deletemenu();break;
case'4':
listmenu();break;
case'5':
writetofile();break;
case'6':
exit(0);
default:
mainmenu();
}
}
voidsearchmenu()//查询菜单
{
charchoic;
system("cls");
printf("\n\t\t*******************查询菜单*******************");
printf("\n\t\t**********1-显示所有2-按学号查询************");
printf("\n\t\t**********3-按姓名查询4-按电话查询************");
printf("\n\t\t**********5-返回主菜单************");
printf("\n\t\t************************************************");
printf("\n\t\t请选择:
");
choic=getch();
switch(choic)
{
case'1':
showall();break;
case'2':
searchbyid();break;
case'3':
searchbyname();break;
case'4':
searchbyphone();break;
case'5':
mainmenu();break;
}
}
voiddeletemenu()//删除菜单
{
charchoic;
if(num==0)
{
printf("\n\t\t对不起,文件中无任何纪录");
printf("\n\t\t按任意键返回主菜单");
getch();
return;
}
system("cls");
printf("\n\t\t*******************删除菜单*******************");
printf("\n\t\t***********1-删除***********");
printf("\n\t\t***********2-返回主菜单***********");
printf("\n\t\t************************************************");
printf("\n\t\t请选择:
");
choic=getch();
switch(choic)
{
case'1':
deleteone();break;
case'2':
mainmenu();break;
default:
mainmenu();break;
}
}
voiddeletebyname()//按姓名删除
{
inta=0;
intfindmark=0;
intj;
intdeletemark=0;
inti;
charname[20];
printf("\n\t\t请输入要删除学生姓名:
");
scanf("%s",name);
for(i=a;i { if(strcmp(student[i].name,name)==NULL) { printf("\n\t\t以下是您要删除的学生纪录: "); findmark++; printf("\n\t\t________________________________"); printf("\n\t\t学号: %s",student[i].id); printf("\n\t\t姓名: %s",student[i].name); printf("\n\t\t电话: %s",student[i].phone); printf("\n\t\t地址: %s",student[i].adress); printf("\n\t\te-mail: %s",student[i].e_mail); printf("\n\t\t年龄: %s",student[i].age); printf("\n\t\t________________________________"); printf("\n\t\t是否删除? (y/n)"); if(getch()=='y') { for(j=i;j student[j]=student[j+1]; num--; deletemark++; printf("\n\t\t删除成功"); if((i+1) { printf("\n\t\t是否继续删除相同姓名的同学信息? (y/n)"); if(getch()=='y') { a=i; continue; } } printf("\n\t\t是否继续删除? (y/n)"); if(getch()=='y') deletebyname(); return; } if((i+1) { printf("\n\t\t是否继续删除相同姓名的同学信息? (y/n)"); if(getch()=='y') { a=i; continue; } } } else continue; } if((deletemark==0)&&(findmark==0)) { printf("\n\t\t没有该同学的纪录"); printf("\n\t\t是否继续删除? (y/n)"); if(getch()=='y') deletebyid(); return; return; } elseif(findmark! =0) { printf("\n\t\t没有重名信息"); printf("\n\t\t没有该同学的纪录"); printf("\n\t\t是否继续删除? (y/n)"); if(getch()=='y') deletebyid(); return; return; } } voiddeletebyid()//按学号删除 { inti,j; intdeletemark=0; charid[20]; printf("\n\t\t请输入要删除学生学号: "); scanf("%s",id); if(num==0) { printf("\n\t\t对不起,文件中无任何纪录"); printf("\n\t\t按任意键返回主菜单"); getch(); return; } for(i=0;i { if(strcmp(student[i].id,id)==NULL) { printf("\n\t\t以下是您要删除的学生纪录: "); printf("\n\t\t学号: %s",student[i].id); printf("\n\t\t姓名: %s",student[i].name); printf("\n\t\t电话: %s",student[i].phone); printf("\n\t\t地址: %s",student[i].adress); printf("\n\t\te-mail: %s",student[i].e_mail); printf("\n\t\t年龄: %s",student[i].age); printf("\n\t\t是否删除? (y/n)"); if(getch()=='y') { for(j=i;j student[j]=student[j+1]; num--; deletemark++; printf("\n\t\t删除成功"); printf("\n\t\t是否继续删除? (y/n)"); if(getch()=='y') deletebyid(); return; } else return; } continue; } if(deletemark==0) { printf("\n\t\t没有该同学的纪录"); printf("\n\t\t是否继续删除? (y/n)"); if(getch()=='y') deletebyid(); return; } } voidnewrecord()//添加纪录 { printf("\n\t\t****************请输入学生信息****************\n"); printf("\n\t\t输入学号: "); scanf("%s",&student[num].id); printf("\n\t\t输入姓名: "); scanf("%s",&student[num].name); printf("\n\t\t输入电话号码: "); scanf("%s",&student[num].phone); printf("\n\t\t输入地址: "); scanf("%s",&student[num].adress); printf("\n\t\t输入邮编: "); scanf("%s",&student[num].postcode); printf("\n\t\t输入e-mail: "); scanf("%s",&student[num].e_mail); printf("\n\t\t输入年龄: "); scanf("%s",&student[num].age); num++; printf("\n\t\t是否继续添加? (Y/N): "); if(getch()=='y') newrecord(); return; } voidshowall()//显示所有 { inti; system("cls"); if(num! =0) { printf("\n\t\t***************以下为通讯录所有信息************"); for(i=0;i { printf("\n\t\t学号: %s",student[i].id); printf("\n\t\t姓名: %s",student[i].name); printf("\n\t\t电话: %s",student[i].phone); printf("\n\t\t地址: %s",student[i].adress); printf("\n\t\t邮编: %s",student[i].postcode); printf("\n\t\te-mail: %s",student[i].e_mail); printf("\n\t\t年龄: %s",student[i].age); printf("\t\t"); if(i+1 { printf("\n\t\t__________________________"); system("pause"); } } printf("\n\t\t************************************************"); } else printf("\n\t\t通讯录中无任何纪录"); printf("\n\t\t按任意键返回主菜单: "); getch(); return; } //按电话查询 voidsearchbyphone() { intmark=0; inti; inta=0; printf("\n\t\t******************按电话查找******************"); charphone[10]; printf("\n\t\t请输入学号: "); scanf("%s",phone); for(i=0;i { if(strcmp(student[i].phone,phone)==0) { printf("\n\t\t**************以下是您查找的学生信息**********"); printf("\n\t\t学号: %s",student[i].id); printf("\n\t\t姓名: %s",student[i].name); printf("\n\t\t电话: %s",student[i].phone); printf("\n\t\t地址: %s",student[i].adress); printf("\n\t\te-mail: %s",student[i].e_mail); printf("\n\t\t年龄: %s",student[i].age); printf("\n\t\t************************************************"); printf("\n\t\t按任意键返回主菜单: "); mark++; getch(); return; } } if(mark==0) { printf("\n\t\t没有改学生的信息"); printf("\n\t\t按任意键返回主菜单"); getch(); return; } } voidsearchbyname()//按姓名查询 { intmark=0; inti; inta=0; printf("\n\t\t*****************按姓名查找*******************"); charname[20]; printf("\n\t\t请输入姓名: "); scanf("%s",name); for(i=a;i { if(strcmp(student[i].name,name)==0) { printf("\n\t\t*************以下是您查找的学生信息***********"); printf("\n\t\t学号: %s",student[i].id); printf("\n\t\t姓名: %s",student[i].name); printf("\n\t\t电话: %s",student[i].phone); printf("\n\t\t地址: %s",student[i].adress); printf("\n\t\te-mail: %s",student[i].e_mail); printf("\n\t\t年龄: %s",student[i].age); printf("\n\t\t************************************************"); mark++; if((i+1) { printf("\n\t\t是否继续查找相同名字的学生信息: (y/n)"); if(getch()=='y') { a=i; continue; } else return; } else { printf("\n\t\t按任意键返回主菜单"); getch(); return; } } } if(mark! =0) { printf("\n\t\t没有相同姓名的学生纪录"); printf("\n\t\t按任意键返回主菜单"); getch(); return; } else { printf("\n\t\t没有相同姓名的学生纪录"); printf("\n\t\t按任意键返回主菜单"); getch(); return; } } voidsearchbyid()//按学号查询 { intmark=0; inti; inta=0; printf("\n\t\t******************按学号查找******************\n"); charid[10]; printf("\n\t\t请输入学号: "); scanf("%s",id); for(i=0;i { if(strcmp(student[i].id,id)==0) { printf("\n\t\t**************以下是您查找的学生信息**********"); printf("\n\t\t学号: %s",student[i].id); printf("\n\t\t姓名: %s",student[i].name); printf("\n\t\t电话: %s",student[i].phone); printf("\n\t\t地址: %s",student[i].adress); printf("\n\t\te-mail: %s",student[i].e_mail); printf("\n\t\t年龄: %s",student[i].age); printf("\n\t\t************************************************"); printf("\n\t\t按任意键返回主菜单: "); mark++; getch(); return; } } if(mark==0) { printf("\n\t\t没有改学生的信息"); printf("\n\t\t按任意键返回主菜单"); getch(); return; } } voidwritetofile()//写入文件 { inti; if((fp=fopen("student.bin","wb"))==NULL) { printf("\n\t\t文件打开失败")
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 源代码