通讯录管理系统带生日提醒和模拟打电话计费.docx
- 文档编号:5380180
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:21
- 大小:19KB
通讯录管理系统带生日提醒和模拟打电话计费.docx
《通讯录管理系统带生日提醒和模拟打电话计费.docx》由会员分享,可在线阅读,更多相关《通讯录管理系统带生日提醒和模拟打电话计费.docx(21页珍藏版)》请在冰豆网上搜索。
通讯录管理系统带生日提醒和模拟打电话计费
通讯录管理系统带生日提醒和模拟打电话计费
以下为源代码,提示,运行前先在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+")
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通讯录 管理 系统 生日 提醒 模拟 打电话 计费