C语言程序设计通讯录管理系统.docx
- 文档编号:11344786
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:19
- 大小:17.02KB
C语言程序设计通讯录管理系统.docx
《C语言程序设计通讯录管理系统.docx》由会员分享,可在线阅读,更多相关《C语言程序设计通讯录管理系统.docx(19页珍藏版)》请在冰点文库上搜索。
C语言程序设计通讯录管理系统
#include
#include
#include
#definePT"学号:
%ld姓名:
%s性别:
%s\nQQ:
%s手机号码:
%s宿舍:
%s邮箱:
%s",p->number,p->name,p->sex,p->QQ,p->phone,p->address,p->E_mail
#defineLENsizeof(structstudent)
#include
intn;
typedefstructstudent
{
longnumber;
charname[16];
charsex[6];
charQQ[14];
charphone[16];
charaddress[6];
charE_mail[20];
structstudent*next;
}information,*Pointer;
voidInsert(Pointer*Head);
voidSearch(PointerHead);
voidUpdate(PointerHead);
voidDelete(Pointer*Head);
voidShow(PointerHead);
intmain()
{
charhu[10],m[7],M[7];
inti;
longsum;
printf("请输入年的帐号(即你的学号):
");
gets(hu);
for(i=4;i<10;i++)
m[i-4]=hu[i];
m[6]='\0';
for(i=0;i<10;i++)
hu[i]=hu[i]-48;sum=hu[0]*1000000000+hu[1]*100000000+hu[2]*10000000+hu[4]*100000+hu[5]*10000+hu[6]*1000+hu[7]*100+hu[8]*10+hu[9];
if(sum>=1210321200&&sum<=1210321240)
{
printf("请输入密码(密码为学号的后六位}:
");
gets(M);
if(strcmp(m,M)==0)
{printf("登陆成功!
!
\n");
printf("正为你转接,请稍候。
。
\n");
Sleep(1000);
printf("★**************************************************************★\n");
printf("★*********************欢迎使用通讯录管理系统*******************★\n");
printf("★**************************************************************★\n\n\n");
Sleep(1000);
system("cls");
PointerHead=NULL;
inti;
do
{
printf("★**************************************************************★\n");
printf("§*******************★欢迎使用通讯录管理系统★*****************§\n");
printf("§**************************************************************§\n");
printf("§§§§\n");
printf("§§☆1.添加通讯录信息§§\n");
printf("§§☆2.查询通讯录信息§§\n");
printf("§§☆3.修改通讯录信息§§\n");
printf("§§☆4.删除通讯录信息§§\n");
printf("§§☆5.显示通讯录信息§§\n");
printf("§§☆6.按序号排序通讯信息§§\n");
printf("§§☆7.保存一个新数据库§§\n");
printf("§§☆8.读取数据库§§\n");
printf("§§☆0.退出系统§§\n");
printf("§§§§\n");
printf("★**************************************************************★\n");
printf("◆请选择(0-8):
\n");
scanf("%d",&i);
switch(i)
{
case1:
Insert(&Head);break;
case2:
Search(Head);break;
case3:
Update(Head);break;
case4:
Delete(&Head);break;
case5:
Show(Head);break;
case6:
Sort(Head);break;
case7:
save(&Head);break;
case8:
read(Head);break;
case0:
break;
default:
printf("错误选择!
");break;
}
}
while(i!
=0);
return0;
}
elseprintf("密码错误!
请查证后再来!
!
\n");
}
elseprintf("用户名不存在!
请验证后再输!
!
\a\n");
}
voidInsert(Pointer*Head)
{
longin_number;
Pointerp,q,r;
inti;
charchoice;
printf("请输入学号");
scanf("%ld",&in_number);
p=q=*Head;
while(p!
=NULL)
{
if(p->number==in_number)
{
printf("已经有相同的学号了");
return;
}
else
{
q=p;
p=p->next;
}
}
r=(Pointer)malloc(sizeof(information));
r->next=NULL;
if(r==NULL)
{
printf("分配空间失败");
return;
}
if(q==NULL)
*Head=r;
else
q->next=r;
r->number=in_number;
printf("请输入姓名:
");
scanf("%s",r->name);
printf("请输入性别:
");
scanf("%s",r->sex);
printf("请输入QQ:
");
scanf("%s",r->QQ);
printf("请输入手机号码:
");
scanf("%s",r->phone);
printf("请输入宿舍:
");
scanf("%s",r->address);
printf("请输入邮箱:
");
scanf("%s",r->E_mail);
Sleep(200);
system("cls");
}
voidSearch(PointerHead)
{
inti;
printf("请选择查询的方式:
\n");
printf("1.姓名2.学号3.QQ4.手机号码\n");
scanf("%d",&i);
switch(i)
{
case1:
searchname(Head);
break;
case2:
searchnumber(Head);
break;
case3:
searchQQ(Head);
break;
case4:
searchphone(Head);
break;
}
Sleep(1000);
printf("\n按任意键继续!
");
getche();
system("cls");
}
voidUpdate(PointerHead)
{
intflag=1,i;
charname[16];
Pointerp,q;
printf("请输入要修改的姓名");
scanf("%s",name);
p=Head;
while(name!
=p->name&&p->next!
=NULL)
{
q=p;
p=p->next;
}
if(strcmp(p->name,name)==0)
{
while(flag!
=0)
{
printf("请选择你要修改的项目:
\n");
printf("1.学号2.QQ3.宿舍4.手机号码5.邮箱\n");
scanf("%d",&i);
switch(i)
{case1:
printf("请输入新的学号:
");
scanf("%ld",p->number);
break;
case2:
printf("请输入新的QQ:
");
scanf("%s",p->QQ);
break;
case3:
printf("请输入新的宿舍:
");
scanf("%s",p->address);
break;
case4:
printf("请输入新的手机号码:
");
scanf("%s",p->phone);
break;
case5:
printf("请输入新的邮箱:
");
scanf("%s",p->E_mail);
break;
}
printf("\n键入\"0\"回到主菜单:
");
scanf("%d",&flag);
}
}
else
printf("没有找到要修改的记录");
system("cls");
}
voidDelete(Pointer*Head)
{
intflag=1;
charname[16];
Pointerp,q;
printf("请输入要删除的数据姓名");
scanf("%s",name);
p=q=*Head;
while(p!
=NULL&&flag)
{
if(strcmp(p->name,name)==0)
{
if(p==*Head)
{*Head=p->next;free(p);}
else
{q->next=p->next;free(p);}
flag=0;
}
else
q=p;p=p->next;
}
if(flag)
printf("没有找到可删除的数据");
printf("\n按任意键继续!
");
getche();
system("cls");
}
voidShow(PointerHead)
{
Pointerp;
p=Head;
while(p!
=NULL)
{
printf(PT);
printf("\n");
p=p->next;
}
Sleep(1000);
printf("\n按任意键继续!
");
getche();
system("cls");
}
voidSort(PointerHead)
{
Pointerp,t,q;
p=Head;
t=NULL;
while(t!
=Head->next)
{
p=Head;
q=p->next;
while(q->next!
=t)
{
if((p->next->number)>(q->next->number))
{
p->next=q->next;
q->next=q->next->next;
p->next->next=q;
}
p=p->next;
q=p->next;
}
t=q;
}
printf("通讯信息排序完毕,按任意键继续!
");
getche();
system("cls");
}
voidsearchnumber(PointerHead)
{
intflag=1;
longnumber;
Pointerp;
printf("请输入查询的学号:
");
scanf("%ld",&number);
p=Head;
while(p!
=NULL&&flag)
{
if(p->number==number)
{
printf(PT);
flag=0;
}
elsep=p->next;
}
if(flag)
printf("没有查到");
}
voidsearchname(PointerHead)
{
intflag=1;
charname[16];
Pointerp;
printf("请输入查询的姓名:
");
scanf("%s",name);
p=Head;
while(p!
=NULL&&flag)
{
if(strcmp(p->name,name)==0)
{
printf(PT);
flag=0;
}
elsep=p->next;
}
if(flag)
printf("没有查到");
}
voidsearchQQ(PointerHead)
{
intflag=1;
charQQ[14];
Pointerp;
printf("请输入查询的QQ:
");
scanf("%s",QQ);
p=Head;
while(p!
=NULL&&flag)
{
if(strcmp(p->QQ,QQ)==0)
{
printf(PT);
flag=0;
}
elsep=p->next;
}
if(flag)
printf("没有查到");
}
voidsearchphone(PointerHead)
{
intflag=1;
charphone[16];
Pointerp;
printf("请输入查询的手机号码:
");
scanf("%s",phone);
p=Head;
while(p!
=NULL&&flag)
{
if(strcmp(p->phone,phone)==0)
{
printf(PT);
flag=0;
}
elsep=p->next;
}
if(flag)
printf("没有查到");
}
voidread(PointerHead)
{
inti;
Pointerp1,p2,kt;
FILE*fp;
system("cls");
fp=fopen("student.txt","rb");//打开创建一个可读写的txt文档
n=getw(fp);
p1=p2=(structstudent*)malloc(LEN);
kt=p1;
fread(p1,sizeof(structstudent),1,fp);
for(i=0;i<(n-1);i++)
{
p1=(structstudent*)malloc(LEN);
p2->next=p1;
p2=p1;
fread(p1,sizeof(structstudent),1,fp);
}
fclose(fp);//关闭文件
printf("\n===读取完毕===\n\n");
getch();
return(kt);
}
voidsave(Pointer*Head)
{
FILE*fp;//file文件指针*fp
Pointerp;
inti;
charv;
chartr[18];
p=Head;
system("cls");
printf("***************************要保存吗?
************************\n");
printf("*1:
保存为student.txt*\n");
printf("*2:
覆盖已有文件*\n");
printf("*3:
重命名文件*\n");
printf("************************************************************\n");
v=getch();
switch(v)
{
case'1':
system("cls");
if((fp=fopen("student.txt","wb"))==NULL)
{
printf("无法打开文件\n");
return;
}
putw(n,fp);
for(i=0;i { if(fwrite(p,sizeof(structstudent),1,fp)! =1) { printf("写入失败\n"); } p=p->next; } fclose(fp); printf("\n===成功! ===\n\n"); getch(); break; case'2': system("cls"); printf("\n\n\n\n\t\t输入文件名: "); scanf("%s",&tr); system("cls"); if((fp=fopen(tr,"wb"))==NULL) { printf("无法打开文件\n"); return; } putw(n,fp); for(i=0;i { if(fwrite(p,sizeof(structstudent),1,fp)! =1) { printf("写入失败\n"); } p=p->next; } fclose(fp); printf("\n===成功! ===\n\n"); getch(); break; case'3': system("cls"); printf("\n\n\n\n\t\t键入文件名: "); scanf("%s",&tr); system("cls"); if((fp=fopen(tr,"wb"))==NULL) { printf("无法打开文件\n"); return; } putw(n,fp); for(i=0;i { if(fwrite(p,sizeof(structstudent),1,fp)! =1)//写入数据至该TXT文档 { printf("写入失败\n"); } p=p->next; } fclose(fp); printf("\n===成功! ===\n\n"); getch(); break; } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 通讯录 管理 系统
![提示](https://static.bingdoc.com/images/bang_tan.gif)