通讯录管理系统带生日提醒和模拟打电话计费.docx
《通讯录管理系统带生日提醒和模拟打电话计费.docx》由会员分享,可在线阅读,更多相关《通讯录管理系统带生日提醒和模拟打电话计费.docx(25页珍藏版)》请在冰豆网上搜索。
通讯录管理系统带生日提醒和模拟打电话计费
通讯录管理系统带生日提醒和模拟打电话计费
以下为源代码,提示,运行前先在E盘建立文本文档count和delete,然后可以直接复制代码到vc++6.0运行,模拟电话是一个单独的程序,把编译出的程序,就是那个exe的文件移动到E盘和以上两个文档相同的位置。
#include
#include
#include
#include
#definecount20
typedefstructBirthday
{
intday;
intmonth;
intyear;
}Birthday;
typedefstructStudent
{
charname[10];
charsex[5];
Birthdaydate;
charphone[40];
charemail[10];
charaddress[10];
charothers[10];
}stud;
FILE*fp;
FILE*fp2;
FILE*fp3;
intn=0;
inti=0;
intq=0;
studs[count];
voidmenu();
voidWRITE();
voidwrite();
voidREAD();
voidread();
voiddisplay(studs);
voidAddinfo();
voidChangeinfo();
voidDelinfo();
voidConsult();
voidRemind();
voidmain()
{
Remind();
menu();
}
voidmenu()
{
intchoice;
intsign=0;
do
{
printf("\n#############################欢迎使用#############################\n");
printf("\n1>>>>>>>>>>>>>>>>>>添加信息<<<<<<<<<<<<<<<<<<<<<");
printf("\n2>>>>>>>>>>>>>>>>>>修改信息<<<<<<<<<<<<<<<<<<<<<");
printf("\n3>>>>>>>>>>>>>>>>>>删除信息<<<<<<<<<<<<<<<<<<<<<");
printf("\n4>>>>>>>>>>>>>>>>>>查询信息<<<<<<<<<<<<<<<<<<<<<");
printf("\n5>>>>>>>>>>>>>>>>>>退出系统<<<<<<<<<<<<<<<<<<<<<");
printf("\n6>>>>>>>>>>>>>>>>>>模拟电话计费系统<<<<<<<<<<<<<<<<<<<<<");
printf("\n\n请输入您的选择[1~6]:
\n");
scanf("%d",&choice);
switch(choice)
{
case1:
Addinfo();
sign=1;
break;
case2:
Changeinfo();
sign=1;
break;
case3:
Delinfo();
sign=1;
break;
case4:
Consult();
sign=1;
break;
case5:
sign=0;
case6:
system("E:
\\mndh.exe");
sign=1;
break;
default:
printf("\n请重新选择!
!
!
");
}
}while(sign);
system("cls");
printf("\n\n\n\n\n\n◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆");
printf("\n\n感谢你使用通信录管理系统!
!
!
!
!
!
\n\n\n");
printf("◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆\n\n");
getchar();
getchar();
}
voidWRITE()
{
FILE*fp2;
if((fp2=fopen("E:
\\count.txt","w"))==NULL)
{
printf("无法创建文件!
\n");
getchar();
return;
}
fprintf(fp2,"%d",n);
fclose(fp2);
}
voidwrite()
{
FILE*fp3;
if((fp3=fopen("E:
\\delete.txt","w"))==NULL)
{
printf("无法创建文件!
\n");
getchar();
return;
}
fprintf(fp3,"%d",q);
fclose(fp3);
}
voidread()
{
FILE*fp3;
if((fp3=fopen("E:
\\delete.txt","rb+"))==NULL)
{
printf("无法打开文件!
\n\n");
getchar();
return;
}
fscanf(fp3,"%d",&q);
fclose(fp3);
}
voidREAD()
{
if((fp2=fopen("E:
\\count.txt","rb+"))==NULL)
{
printf("无法打开文件!
\n\n");
getchar();
return;
}
fscanf(fp2,"%d",&n);
fclose(fp2);
}
voiddisplay(studs)
{
printf("$$$$$$$$$$$$$$$$$$$通信录信息$$$$$$$$$$$$$$$$$$$$");
printf("\n姓名:
%s",s.name);
printf("\n性别:
%s",s.sex);
printf("\n生日:
%d%d%d",s.date.year,s.date.month,s.date.day);
printf("\n电话:
%s",s.phone);
printf("\n邮箱地址:
%s",s.email);
printf("\n住址:
%s",s.address);
printf("\n备注:
%s",s.others);
}
voidAddinfo()
{
charc;
READ();
read();
printf("您已有联系人:
");
fscanf(fp2,"%d",&n);
fprintf(stdout,"%d",n);
printf("\n");
if(!
fp2)
{
printf("打开文件时出错!
!
!
");
exit
(1);
}
printf("\n欢迎使用通信录管理系统!
!
!
");
do
{
fp=fopen("E:
\\stud.dat","ab+");
getchar();
printf("\n请输入姓名:
");
gets(s[i].name);
printf("\n请输入性别(male/fmale):
");
gets(s[i].sex);
printf("\n请输入生日(年/月/日):
");
scanf("%d%d%d",&s[i].date.year,&s[i].date.month,&s[i].date.day);
getchar();
printf("\n请输入电话:
");
gets(s[i].phone);
printf("\n请输入邮箱地址:
");
gets(s[i].email);
printf("\n请输入居住地:
");
gets(s[i].address);
printf("\n请输入备注(friend/common):
");
gets(s[i].others);
fwrite(&s[i],sizeof(s[i]),1,fp);
fclose(fp);
n++;
i++;
printf("\n是否继续新建('Y'or'N')?
\n");
scanf("%c",&c);
}while(c=='Y'||c=='y');
WRITE();
printf("\n添加成功!
!
!
\n");
system("cls");
}
voidChangeinfo()
{
inth=0,j=1,t,choice,sign=0;
FILE*fp;
charnum[20];
charname[20];
printf("\t1、按号码查找\n");
printf("\t2、按姓名查找\n");
printf("请选择...........\n");
scanf("%d",&t);
switch(t)
{
case1:
while(j==1)
{
READ();
fp=fopen("E:
\\stud.dat","rb+");
printf("请输入想查找的电话号码:
\n");
scanf("%s",num);
for(h=0;h{
fread(&s[h],sizeof(s[h]),1,fp);
if(!
strcmp(num,s[h].phone))
{
printf("\n您想修改的内容:
1.姓名2.号码3.生日4.居住地5.邮箱地址6.备注\n");
scanf("%d",&choice);
switch(choice)
{
case1:
sign=1;
printf("请输入修改后的姓名:
\n");
getchar();
gets(s[h].name);
fseek(fp,-sizeof(s[h]),1);
fwrite(&s[h],sizeof(s[h]),1,fp);
fclose(fp);
break;
case2:
sign=1;
printf("请输入修改后的号码:
\n");
getchar();
gets(s[h].phone);
fseek(fp,-sizeof(s[h]),1);
fwrite(&s[h],sizeof(s[h]),1,fp);
fclose(fp);
break;
case3:
printf("请输入修改后的生日:
\n");
sign=1;
getchar();
scanf("%d%d%d",&s[h].date.year,&s[h].date.month,&s[h].date.day);
fseek(fp,-sizeof(s[h]),1);
fwrite(&s[h],sizeof(s[h]),1,fp);
fclose(fp);
break;
case4:
printf("请输入修改后的居住地:
\n");
sign=1;
getchar();
gets(s[h].address);
fseek(fp,-sizeof(s[h]),1);
fwrite(&s[h],sizeof(s[h]),1,fp);
fclose(fp);
break;
case5:
printf("请输入修改后的邮箱:
\n");
sign=1;
getchar();
gets(s[h].email);
fseek(fp,-sizeof(s[h]),1);
fwrite(&s[h],sizeof(s[h]),1,fp);
fclose(fp);
break;
case6:
printf("请输入修改后的备注:
\n");
sign=1;
getchar();
gets(s[h].others);
fseek(fp,-sizeof(s[h]),1);
fwrite(&s[h],sizeof(s[h]),1,fp);
fclose(fp);
break;
}
printf("\n*****************修改后的通讯录*****************\n");
display(s[h]);
j=0;
break;
}
fclose(fp);
}
if(strcmp(num,s[h].phone)&&sign==0)
{
printf("\n你输入的号码有误!
!
!
\n请重新输入\n");
j=1;
}
}
case2:
while(j==1)
{
READ();
printf("请输入想查找的姓名:
\n");
scanf("%s",name);
fp=fopen("E:
\\stud.dat","rb");
for(h=0;h{
fread(&s[h],sizeof(s[h]),1,fp);
if(!
strcmp(name,s[h].name))
{
printf("\n您想修改的内容:
1.姓名2.号码3.生日4.居住地5.邮箱地址6.备注\n");
scanf("%d",&choice);
switch(choice)
{
case1:
sign=1;
printf("请输入修改后的姓名:
\n");
getchar();
gets(s[h].name);
fseek(fp,-sizeof(s[h]),1);
fwrite(&s[h],sizeof(s[h]),1,fp);
fclose(fp);
break;
case2:
sign=1;
printf("请输入修改后的号码:
\n");
getchar();
gets(s[h].phone);
fseek(fp,-sizeof(s[h]),1);
fwrite(&s[h],sizeof(s[h]),1,fp);
fclose(fp);
break;
case3:
printf("请输入修改后的生日:
\n");
sign=1;
getchar();
scanf("%d%d%d",&s[h].date.year,&s[h].date.month,&s[h].date.day);
fseek(fp,-sizeof(s[h]),1);
fwrite(&s[h],sizeof(s[h]),1,fp);
fclose(fp);
break;
case4:
printf("请输入修改后的居住地:
\n");
sign=1;
getchar();
gets(s[h].address);
fseek(fp,-sizeof(s[h]),1);
fwrite(&s[h],sizeof(s[h]),1,fp);
fclose(fp);
break;
case5:
printf("请输入修改后的邮箱:
\n");
sign=1;
getchar();
gets(s[h].email);
fseek(fp,-sizeof(s[h]),1);
fwrite(&s[h],sizeof(s[h]),1,fp);
fclose(fp);
break;
case6:
printf("请输入修改后的备注:
\n");
sign=1;
getchar();
gets(s[h].others);
fseek(fp,-sizeof(s[h]),1);
fwrite(&s[h],sizeof(s[h]),1,fp);
fclose(fp);
break;
}
printf("*****************修改后的通讯录*****************\n");
display(s[h]);
j=0;
break;
}
}
if(strcmp(name,s[h].name)&&sign==0)
{
printf("你输入的姓名有误!
!
!
\n请重新输入\n");
j=1;
}
h=0;
}
fclose(fp);
}
menu();
}
voidDelinfo()
{
intj=1,h=0,k,sign=0;
charname[20];
READ();
read();
FILE*fp;
fp=fopen("E:
\\stud.dat","rb");
printf("请输入想删除的姓名:
\n");
while(j==1)
{
FILE*fp;
scanf("%s",name);
fp=fopen("E:
\\stud.dat","rb");
while(!
feof(fp))
{
fread(&s[h],sizeof(s[h]),1,fp);
if(!
strcmp(name,s[h].name))
{
for(k=h;k{
fseek(fp,-sizeof(s[h]),1);
fwrite(&s[h+1],sizeof(s[h]),1,fp);
}
n--;
WRITE();
q++;
write();
j=0;
sign=1;
break;
}
}
if(strcmp(name,s[h].name)&&sign==0)
{
printf("你输入的姓名有误!
!
!
\n请重新输入\n");
j=1;
}
h=0;
}
fclose(fp);
printf("删除成功!
!
!
!
!
!
!
");
}
voidConsult()
{
intnum,j=1,h=0,con=1,sign=0;
charch;
charname[20];
charaddress[20];
charsex[2];
charphonecall[40];
FILE*fp;
READ();
if(n==0)
{
printf("\n您目前还没有联系人!
!
!
\n");
menu();
return;
}
fp=fopen("E:
\\stud.dat","rb");
do
{
j=1;
sign=0;
printf("\t1、按号码查找\n");
printf("\t2、按姓名查找\n");
printf("\t3、按地址查找\n");
printf("\t4、按性别查找\n");
printf("请选择...........\n");
scanf("%d",&num);
switch(num)
{
case1:
while(j==1)
{
fp=fopen("E:
\\stud.dat","rb");
printf("请输入想查找的电话号码:
\n");
scanf("%s",phonecall);
for(;h{
fread(&s[h],sizeof(s[h]),1,fp);
if(!
strcmp(phonecall,s[h].phone))
{
display(s[h]);
j=0;
sign=1;
h=0;
}
}
if(strcmp(phonecall,s[h].phone)&&sign==0)
{
printf("\n你输入的号码有误!
!
!
\n请重新输入\n");
j=1;
h=0;
}
}
fclose(fp);
printf("\n您想继续查找吗?
(YORN)\n");
getchar();
scanf("%c",&ch);
if(ch=='Y'||ch=='y')
con=1;
else
con=0;
break;
case2:
while(j==1)
{
fp=fopen("E:
\\stud.dat","rb+")