您的位置:首页 > 编程语言 > C语言/C++

C语言课设之电话查询系统。

2011-05-10 14:09 295 查看
#include<stdio.h> /* 标准输入 /输出头文件 */
#include<string.h> /* 包含字符串处理函数头文件 */
#include<stdlib.h> /* 包含动态储存与释放函数头文件 */
#include<conio.h> /*包含绘制图形函数等头文件(包括getch()函数)*/
struct pho_book
{
long int num; /*电话号码*/
char name[20];
char work[10]; /*工作单位*/
char company[20]; /*公司名称*/
char addr[50]; /*公司地址*/
};
void input(); /*录入模块*/
void pnodeadd(); /*个人信息节点添加*/
void cnodeadd(); /*公司信息节点添加 */
void modify(); /*修改模块*/
void pnodemodify(); /*个人信息节点修改*/
void cnodemodify(); /*公司信息节点修改*/
void del(); /*删除模块*/
void pnodedel(); /*个人信息节点删除*/
void cnodedel(); /*公司信息节点删除*/
void pnodesearch(); /*个人信息节点查找*/
void cnodesearch(); /*公司信息节点查找*/
void admin(); /*管理员登录函数*/
void guest(); /*客人登录函数*/
void main()
{

char message[]={" ★ 电话查询系统使用说明 ★ /n"
" 本系统是一个电话号码簿,供客人查询电话号码。 /n"
" 管理员可以录入、修改、删除电话号码信息;客人只能进行查询。 /n"

" 欢迎你来使用电话查询系统! /n" };

char menu[]={" *1. admin entry /n"
" *2. guest entry /n"
" *0. quit entry /n"};
int sel;
printf("%s ",message);
printf("按任意键进入主菜单:");
getch();
do
{ system("color 46");
system("cls");
printf("%s",menu);
printf("请在1-2之间选择登录方式,选择0退出系统:/n");
scanf("%d",&sel);
switch(sel)
{
case 1: admin();
break;

case 2: guest( );
break;
case 0:
printf(" ★ See You ! ★ /n");
break;
}
}while(sel!=0);
}
void admin()
{
int m,password;
password='258';
printf("请输入密码:/n");
scanf("%d",&m);
while(m!=258)
{
printf("密码错误!请重新输入:/n");

scanf("%d",&m);

}
printf("成功登录!/n");
printf("按任意键进入菜单:/n");
getch();
char menu1[]={" *1.input information /n"
" *2.modify information /n"
" *3.delete information /n"
" *0.quit /n"

};
int sel1;
do
{ system("cls");
system("color 2");
printf("%s",menu1);
printf("请在1-3之间选择所要的操作的类型,选择0退出系统:");
scanf("%d",&sel1);
switch(sel1)
{
case 1: input();
break;
case 2: modify();
break;
case 3: del();
break;
case 0:
printf(" ★See You Next Time! ★ /n");
break;
}
}while(sel1!=0);

}
void guest()
{
printf(" ★欢迎您查询电话号码!★ /n");
printf("*************请选择所查号码类型!");
printf("按任意键进入选择菜单!*************/n");
getch();
char menu2[]={" *1.单位号码 /n"
" *2.私人号码 /n"
" *0.返回上一菜单 /n"
};
int sel2;
do
{
system("cls");
system("color 14");
printf("%s",menu2);
scanf("%d",&sel2);
switch(sel2)
{
case 1: cnodesearch();
break;
case 2: pnodesearch();
break;
case 0:
printf("Back to the previous menu!/n");
break;
}
}while(sel2!=0);
}
void input()
{
char menu3[]={" *1. 公司电话信息添加 /n"
" *2. 个人电话信息添加 /n"
" *0. 返回上一菜单 /n"
};
int sel3;
do
{ printf("%s",menu3);
printf("请在1-2之间选择,选择0返回上一菜单:/n");
scanf("%d",&sel3);
switch(sel3)
{
case 1: cnodeadd();
break;
case 2: pnodeadd();
break;
case 0:
printf("Back to the previous menu!/n");
break;
}
}while(sel3!=0);
}
void modify()
{
char menu4[]={" *1. 公司电话信息修改 /n"
" *2. 个人电话信息修改 /n"
" *0. 返回上一菜单 /n"
};
int sel4;
printf("按任意键确定:");
getch();
do
{ printf("%s",menu4);
printf("请在1-2之间选择,选择0返回上一菜单:/n");
scanf("%d",&sel4);
switch(sel4)
{
case 1: cnodemodify();
break;
case 2: pnodemodify();
break;
case 0:
printf("Back to the previous menu!/n");
break;
}
}while(sel4!=0);
}
void del()
{
char menu5[]={" *1. 公司电话信息删除 /n"
" *2. 个人电话信息删除 /n"
" *0. 返回上一菜单 /n"
};
int sel5;
printf("按任意键确定:");
getch();
do
{ printf("%s",menu5);
printf("请在1-2之间选择,选择0返回上一菜单:/n");
scanf("%d",&sel5);
switch(sel5)
{
case 1: cnodedel();
break;
case 2: pnodedel();
break;
case 0:
printf("Back to the previous menu!/n");
break;
}
}while(sel5!=0);
}
void cnodeadd()
{
FILE *fp;
pho_book bk[700];
int i=0,c;
if((fp=fopen("c://companyhaoma.txt","a"))==NULL)
{
printf("/nerror on opening company file");
return;
}
printf("/n要添加几条记录(填整数)?");
scanf("%d",&c);

for(i=0;i<c;i++)
{
printf("/n输入公司名称:");
scanf("%s",&bk[i].company);
printf("/n输入公司地址:");
scanf("%s",&bk[i].addr);
printf("/n输入电话号码:");
scanf("%ld",&bk[i].num);
fprintf(fp,"%s/n",bk[i].company);
fprintf(fp,"%s/n",bk[i].addr);
fprintf(fp,"%ld /n",bk[i].num);

}
fclose(fp);
}
void pnodeadd()
{
FILE *fp;
pho_book bk[700];
int i=0,c;
if((fp=fopen("c://privatehaoma.txt","a"))==NULL)
{
printf("/nerror on opening guest file");
return;
}
printf("/n要添加几条记录(填整数)?");
scanf("%d",&c);

for(i=0;i<c;i++)
{
printf("/n输入姓名:");
scanf("%s",&bk[i].name);
printf("/n输入工作单位:");
scanf("%s",&bk[i].work);
printf("/n输入电话号码:");
scanf("%ld",&bk[i].num);

fprintf(fp,"%s/n",bk[i].name);
fprintf(fp,"%s/n",bk[i].work);
fprintf(fp,"%ld/n",bk[i].num);

}
fclose(fp);
}
void cnodemodify()
{ FILE *fp;
struct pho_book bk[500];
struct pho_book bkt;
int i,sf,s,ii=0,it;
char sear[100];
char temp[100];
if((fp=fopen("c://companyhaoma.txt","r+"))==NULL)
{
printf("/n error on opening company file");
exit(1);

}
while((fread(&bkt,sizeof(struct pho_book),1,fp))==1)
{
strcpy(bk[ii].company,bkt.company);
strcpy(bk[ii].addr,bkt.addr);
ii++;
}
fclose(fp);
it=ii;
cc:
printf("/n1公司名称/n2公司地址/n3电话号码 你要修改什么?");
scanf("%d",&s);
if(s==1)
{
printf("/n请输入要查的公司名称:");
scanf("%s",&sear);
}else if(s==2){
printf("/n请输入要查的公司地址:");
scanf("%s",&sear);
}else if(s==3){
printf("/n请输入要查的电话号码");
scanf("%ld",&sear);
printf("/n公司名称:/t公司地址:/t电话号码");
i=0;
ii=0;
for(;ii<it;ii++)
{
if(s==1)
{
if(!strcmp(bk[ii].company,sear))
{
printf("/n%s/t%s/t",bk[ii].company,bk[ii].addr);
i++;
printf("/n请输入修改后的公司名称:");
scanf("%s",&temp);
strcpy(bk[ii].company,temp);
}
}
if(s==2)
{
if(!strcmp(bk[ii].addr,sear))
{
printf("/n%s/t%s/t",bk[ii].company,bk[ii].addr);
i++;
printf("/n请输入修改后的公司地址:");
scanf("%s",&temp);
strcpy(bk[ii].addr,temp);
}
}
}
if(i==0)
{
printf("/n对不起!没有你要找的数据");
}else
{ if((fp=fopen("c://companyhaoma.txt","wb"))==NULL)

printf("/nerro on opening company file");
exit(0);

for(ii=0;ii<it;ii++)
fwrite(&bk[ii],sizeof(struct pho_book),1,fp);
printf("/n修改完成!.");
fclose(fp);
}
printf("继续修改(1/0)?");
scanf("%d",&sf);
if(sf==1)
goto cc;
}

}
void pnodemodify()
{
FILE *fp;
struct pho_book bk[500];
struct pho_book bkt;
int i,sf,s,ii=0,it;
char sear[100];
char temp[100];
if((fp=fopen("c://privatehaoma.txt","r+"))==NULL)
{
printf("/n erro on opening private file");
exit(0);

}
while((fread(&bkt,sizeof(struct pho_book),1,fp))==1)
{
strcpy(bk[ii].company,bkt.company);
strcpy(bk[ii].addr,bkt.addr);
ii++;
}
fclose(fp);
it=ii;
cc:
printf("/n1姓名/n2工作单位/n3电话号码 你要修改什么?");
scanf("%d",&s);
if(s==1)
{
printf("/n请输入要查的姓名:");
scanf("%s",&sear);
}else if(s==2){
printf("/n请输入要查的工作单位:");
scanf("%s",&sear);
}else if(s==3){
printf("/n请输入要查的电话号码");
scanf("%ld",&sear);
printf("/n姓名:/t工作单位:/t电话号码");
i=0;
ii=0;
for(;ii<it;ii++)
{
if(s==1)
{
if(!strcmp(bk[ii].company,sear))
{
printf("/n%s/t%s/t",bk[ii].company,bk[ii].addr);
i++;
printf("/n请输入修改后的姓名:");
scanf("%s",&temp);
strcpy(bk[ii].company,temp);
}
}
if(s==2)
{
if(!strcmp(bk[ii].addr,sear))
{
printf("/n%s/t%s/t",bk[ii].company,bk[ii].addr);
i++;
printf("/n请输入修改后的工作单位:");
scanf("%s",&temp);
strcpy(bk[ii].addr,temp);
}
}
}
if(i==0)
{
printf("/n对不起!没有你要找的数据");
}else
{ if((fp=fopen("c://haoma.txt","wb"))==NULL)

printf("/nerro on opening target file");
exit(0);

for(ii=0;ii<it;ii++)
fwrite(&bk[ii],sizeof(struct pho_book),1,fp);
printf("/n修改完成!.");
fclose(fp);
}
printf("继续修改(1/0)?");
scanf("%d",&sf);
if(sf==1)
goto cc;
}
}
void cnodedel()
{
FILE *fp;
struct pho_book bk[700];
struct pho_book bkt;
int i,sf,s,ii=0,it,cv;
char sear[100];
if((fp=fopen("c://haoma.txt","rb"))==NULL){
printf("/nERROR oening customet file");
exit(0);
}
while((fread(&bkt,sizeof(struct pho_book),1,fp))==1)
{
strcpy(bk[ii].company,bkt.company);
strcpy(bk[ii].addr,bkt.addr);
ii++;
}
fclose(fp);
it=ii;
cc:
printf("/n1公司名称/n2公司地址/n你要查找那一条记录来删除?");
scanf("%d",&s);
if(s==1)
{
printf("/n请输入要查的公司名称:");
scanf("%s",&sear);
}else if(s==2){
printf("/n请输入要查的公司地址:");
scanf("%s",&sear);
}
printf("/n公司名称:/t公司地址:");
i=0;
ii=0;
for(;ii<it;ii++)
{
if(s==1)
{
if(!strcmp(bk[ii].name,sear))
{
printf("/n%s/t%s/t",bk[ii].company,bk[ii].addr);
i++;
printf("确定要删除吗(1/0)?");
scanf("%d",&cv);
for(;ii<it;ii++)
{
if(ii==it-1)
break;
strcpy(bk[ii].company,bk[ii+1].company);
strcpy(bk[ii].addr,bk[ii+1].addr);
}
}
}
if(s==2)
{
if(!strcmp(bk[ii].company,sear))
{
printf("/n%s/t%s/t",bk[ii].company,bk[ii].addr);
i++;
printf("/n确定要删除吗(1/0)?");
scanf("%d",&cv);
if(cv==1)
for(;ii<it;ii++)
{
if(ii==it-1)
break;
strcpy(bk[ii].company,bk[ii+1].company);
strcpy(bk[ii].addr,bk[ii+1].addr);
}
}
}
}
if(i==0){
printf("/n对不起!没有你要找的数据");
}else
{ if((fp=fopen("c://haoma.txt","wb"))==NULL)
{
printf("/nERROR oening customet file");
exit(0);
}
for(ii=0;ii<it-1;ii++)
fwrite(&bk[ii],sizeof(struct pho_book),1,fp);
printf("/n该记录已被删除!.");
fclose(fp);
}
printf("继续删除(1/0)?");
scanf("%d",&sf);
if(sf==1)
goto cc;
}
void pnodedel()
{
}
void pnodesearch()
{
FILE *fp;
char c;
if((fp=fopen("c://privatehaoma.txt","r+"))==NULL)
{
printf("Cannot open file strike any key exit!");
getchar();
exit(1);
}
c=fgetc(fp);
while(c!=EOF)
{
putchar(c);
c=fgetc(fp);
}
system("pause");
fclose(fp);

}
void cnodesearch()
{
FILE *fp;
char c;
if((fp=fopen("c://companyhaoma.txt","r+"))==NULL)
{
printf("Cannot open file strike any key exit!");
getchar();
exit(1);
}
c=fgetc(fp);
while(c!=EOF)
{
putchar(c);
c=fgetc(fp);
}
system("pause");
fclose(fp);
}
此系统存在缺陷,只是实现了信息的录入和打印输出。希望有时间用数据结构的知识解决
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: