当前位置:首页 » 编程语言 » 通讯录管理程序c语言
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

通讯录管理程序c语言

发布时间: 2022-06-30 00:44:52

⑴ 用c语言编写一个通讯录管理系统

C语言编写一个通讯录管理系统的源代码如下:

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

/*定义保存通迅录的信息*/

structfriends

{

charname[20];/*名字*/

charprovince[20];/*省份*/

charcity[20];/*所在城市*/

charnation[20];/*民族*/

charsex[2];/*性别M/F*/

intage;/*年龄*/

}

(1)通讯录管理程序c语言扩展阅读

1、在C++中应该使用inline内连函数替代宏调用,这样既可达到宏调用的目的,又避免了宏调用的弊端。

2、在C语言两个函数的名称不能相同,否则会导致编译错误。在C++中,函数名相同而参数不同的两个函数被解释为重载。

3、在大型程序中,使函数名易于管理和使用,不必绞尽脑汁地去处理函数名。

⑵ c语言编程通讯录管理系统

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
#define header1 "|---------------------电话簿-----------------------|\n"
#define header2 "| num | name | phonenum | address |\n"
#define header3 "|-------|----------|---------------|---------------|\n"
#define end "|----------------------结束------------------------|"
#define N 100
typedef struct tele
{
int num;
char name[10];
char phonenum[15];
char address[20];
}
telebook;

void menu()
{
system("cls");
system("color 1F");
printf("\n\n\n"); /*输出主菜单*/
printf("\t\t|* **** 欢迎进入电话薄管理系统! **** *|\n");
printf("\t\t|********************menu********************|\n");
printf("\t\t| |\n");
printf("\t\t| 1 增加 2 读取 |\n");
printf("\t\t| |\n");
printf("\t\t| 3 查找 4 修改 |\n");
printf("\t\t| |\n");
printf("\t\t| 5 删除 6 排序 |\n");
printf("\t\t| |\n");
printf("\t\t| 0 退出 |\n");
printf("\t\t|********************************************|\n");
}
void printheader() /*输出菜单头*/
{
printf(header1);
printf(header2);
printf(header3);
}
int add(telebook temp[])
{
int i;int m=0;
FILE *fp;
system("cls");
if((fp=fopen("D:\\rex.txt","ab+"))==NULL)
{
printf("打开文件有误!");
exit(0);
}
printf("每次输入一百个人的信息!\n");
printf("如果输入0推出输入!\n");
for(i=m;i<(100+m);i++)
{
printf("num:");
scanf("%d",&temp[i].num);
if(temp[i].num==0)
break;
printf("name:");
scanf("%s",&temp[i].name);
printf("phonenum:");
scanf("%s",&temp[i].phonenum);
printf("address:");
scanf("%s",&temp[i].address);
fwrite(&temp[i],sizeof(struct tele),1,fp);

}
m+=100;
fclose(fp);
system("cls");
return 0;
}
int read(telebook temp[])
{
int count,i;
FILE *fp;
system("cls");
if((fp=fopen("D:\\rex.txt","ab+"))==NULL)
{
printf("打开文件有误!");
exit(0);
}
printheader();
for(count=0;fread(&temp[count],sizeof(struct tele),1,fp)==1;count++);/*读取文件内信息的个数。*/
if(count==0)
printf("\n\n\n\t\t文件内没有信息!\n\n\n");
for(i=0;i<count;i++) /*读取文件内的信息*/
printf("|%-7d|%-10s|%-15s|%-15s|\n",temp[i].num,temp[i].name,temp[i].phonenum,temp[i].address);
printf(end);
fclose(fp);
return 0;
}
int find1(telebook temp[]) /*电话号码查询*/
{
int i,count,t=0 ;char n[20];
FILE *fp;
system("cls");
read(temp);
printf("\n");
if((fp=fopen("D:\\rex.txt","ab+"))==NULL)
{
printf("打开文件有误!");
exit(0);
}
printf("输入要查找的号码:");
scanf("%s",n);
printf("\n\n");
printheader();
getchar();
for(count=0;fread(&temp[count],sizeof(struct tele),1,fp)==1;count++);/*读取文件内信息的个数。*/
for(i=0;i<count;i++)
{
if(strcmp(temp[i].phonenum,n)==0)
{
t=1;
printf("|%-7d|%-10s|%-15s|%-15s|\n",temp[i].num,temp[i].name,temp[i].phonenum,temp[i].address);
/*输出查询到的信息*/
}
}
if(t==0)
{
printf("\a\n\n\t\t没有要查找的信息..........!\n\n\n");
printf(end);
return 0;
}
printf(end);
fclose(fp);
return 0;
}
int find2(telebook temp[]) /*姓名查询*/
{
int i,count ,t=0;
char a[20];
FILE *fp;
system("cls");
read(temp);
printf("\n");
if((fp=fopen("D:\\rex.txt","ab+"))==NULL)
{
printf("打开文件有误!");
exit(0);
}
printf("输入要查找的名字:");
scanf("%s",a);
getchar();
printf("\n\n");
printheader();
for(count=0;fread(&temp[count],sizeof(struct tele),1,fp)==1;count++);/*读取文件内信息的个数。*/
for(i=0;i<count;i++)
{
if(strcmp(temp[i].name,a)==0)
{
t=1;
printf("|%-7d|%-10s|%-15s|%-15s|\n",temp[i].num,temp[i].name,temp[i].phonenum,temp[i].address);
/*输出查询到的信息*/
}
}
if(t==0)
{
printf("\a\n\n\t\t没有要查找的信息..............!\n\n\n");
printf(end);
return 0;
}
printf(end);
fclose(fp);
return 0;
}
void find()
{
int n;
telebook message1[20];
system("cls");
system("color 4F");
printf("\n");
while(1)
{ /*输出查找函数主菜单*/
printf("\n\n\n\n");
printf(" |-------查找功能------|\n");
printf(" | |\n");
printf(" | 1 按电话号码查找 |\n");
printf(" | |\n");
printf(" | 2 按姓名查找 |\n");
printf(" | |\n");
printf(" | 0 退出 |\n");
printf(" | |\n");
printf(" |---------结束--------|\n");
printf("输入您的查找方式:");
scanf("%d",&n);
switch(n)
{
case 1:find1(message1);break;
case 2:find2(message1);break;
case 0:return;break;
}
getchar();
system("cls");
}
}
int change(telebook temp[])
{
int i,count,t=0;
FILE *fp;
struct tele ne[10];
system("cls");
read(temp);
printf("\n");
printf("按序号修改\n");
if((fp=fopen("D:\\rex.txt","ab+"))==NULL)
{
printf("打开文件有误!");
exit(0);
}
printf("输入新内容:\n");
printf("num:");
scanf("%d",&ne[0].num);
printf("name:");
scanf("%s",&ne[0].name);
printf("phonenum:");
scanf("%s",&ne[0].phonenum);
printf("address:");
scanf("%s",&ne[0].address);
for(count=0;fread(&temp[count],sizeof(struct tele),1,fp)==1;count++);/*读取文件内信息的个数。*/
fclose(fp);
for(i=0;i<count;i++) /*查找与新信息相同的信息*/
{
if(temp[i].num==ne[0].num) /*用新信息替换*/
{
t=1;
temp[i].num=ne[0].num;
strcpy(temp[i].name,ne[0].name);
strcpy(temp[i].phonenum,ne[0].phonenum);
strcpy(temp[i].address,ne[0].address);
getchar();
printf("\n\n\t\t\t修改成功..........!");
}
}
if(t==0)
{
getchar();
printf("\n\n\t\t\t没有要修改的信息.........!");
return 0;
}
fp=fopen("D:\\rex.txt","wb+");
for(i=0;i<count;i++)
fwrite(&temp[i],sizeof(struct tele),1,fp);
fclose(fp);
return 0;
}
int del(telebook temp[])
{
int i,j,count,t=0;char name1[20];
FILE *fp;
system("cls");
read(temp);
printf("\n");
if((fp=fopen("D:\\rex.txt","ab+"))==NULL)
{
printf("打开文件有误!");
exit(0);
}
printf("输入要删除的人名:");
scanf("%s",name1);
for(count=0;fread(&temp[count],sizeof(struct tele),1,fp)==1;count++);/*读取文件内信息的个数。*/
fclose(fp);
for(i=0;i<count;i++) /*查找要删除的信息*/
{
if(strcmp(temp[i].name,name1)==0)
{
for(j=i;j<count;j++)
{ /*删除找到的信息*/
t=1;
temp[j].num=temp[j+1].num;
strcpy(temp[j].name,temp[j+1].name);
strcpy(temp[j].phonenum,temp[j+1].phonenum);
strcpy(temp[j].address,temp[j+1].address);
}
count--;
printf("\n\n\n\t\t\t删除成功..................!");
}
}
if(t==0)
{
getchar();
printf("\a\n\n\n\t\t\t没有要删除的信息..................!");
return 0;
}
getchar();
fp=fopen("D:\\rex.txt","wb+");
for(i=0;i<count;i++)
fwrite(&temp[i],sizeof(struct tele),1,fp);
fclose(fp);
return 0;
}
int paixu(telebook temp[])
{
int i,j,count;
telebook tmp;
FILE *fp;
system("cls");
read(temp);
printf("\n");
fp=fopen("D:\\rex.txt","ab+");
for(count=0;fread(&temp[count],sizeof(struct tele),1,fp)==1;count++);/*读取文件内信息的个数。*/
fclose(fp);
for(i=0;i<count-1;i++) /*对文件内的信息的序号进行排序*/
{
for(j=count-2;j>=i;j--)
if(temp[j+1].num<temp[j].num)
{
tmp=temp[j+1];
temp[j+1]=temp[j];
temp[j]=tmp;
}
}
fp=fopen("D:\\rex.txt","wb+");
for(i=0;i<count;i++)
fwrite(&temp[i],sizeof(struct tele),1,fp);

fclose(fp);
read(temp);
return 0;
}
void main()
{
telebook message[N];
int n;
while(1)
{
menu();
printf("输入您的选择:");
scanf("%d",&n);
getchar();
switch(n)
{
case 1:add(message);break;
case 2:read(message);break;
case 3:find();break;
case 4:change(message);break;
case 5:del(message);break;
case 6:paixu(message);break;
case 0:exit(0);break;
}
getchar();
}
printf("press enter continue...............");
}

⑶ C语言程序设计 通讯录系统管理

// 头文件部分

//============================
#include <stdio.h>
#include <windows.h>
#include <stdlib.h>

#include <conio.h>

// 初始化数据部分
int Menu();
void Start();
void Write();
void Read();
void Search();
void Detele();
void beauty();
void Rework();
void Lock();
int Judge();
//============================
struct Student{
char name[20];
char Tel[20];
char QQ[20];
int age;
}xy[100];
char wenjian[10000];
char Number[10];
char number=0;
int GOTO;
//
int main()
{
Start();
for(;;)
{
GOTO=Menu();
if(GOTO==1)
{
for(;;)
{
Write();
int judge=Judge();
if(judge==2)
{
break;
}
}
}
if(GOTO==2)
{
for(;;)
{
Read();
system("pause");
break;
}
}
if(GOTO==3)
{
for(;;)
{
Search();
int judge=Judge();
if(judge==2)
{
break;
}
}
}
if(GOTO==4)
{
for(;;)
{
Rework();
int judge=Judge();
if(judge==2)
{
break;
}
}
}
if(GOTO==5)
{
Detele();
break;
}
if(GOTO==6)
{
beauty();
break;
}
if(GOTO==7)
{
}
if(GOTO==8)
{
printf("");
break;
}
if(GOTO==9)
{
printf("\t\t\t退出系统\n\n");
return 0;
}
if(GOTO==0)
{
printf("");
break;
}
}
// beauty();
//
// Write();
// Read();
// Search();
// Rework();
// Detele();
return 0;
}

void Write()
{
printf("\t\t\t请输入好友名字\n");
scanf("%s",&xy[number].name);
printf("\t\t\t请输入好友电话号码\n");
scanf("%s",&xy[number].Tel);
printf("\t\t\t请输入好友QQ号码\n");
scanf("%s",&xy[number].QQ);
printf("\t\t\t请输入好友年龄\n");
scanf("%d",&xy[number].age);

FILE *file;
if((file=fopen("Friend.txt","rt"))==NULL)
{
file=fopen("Friend.txt","wt");
fprintf(file,"%-20s%-20s%-20s%-20s","姓名","电话","QQ","年龄");
}
file=fopen("Friend.txt","at");
fprintf(file,"%-20s%-20s%-20s%-20d\n",xy[number].name,xy[number].Tel,xy[number].QQ,xy[number].age);
fclose(file);
number++;
Number[0]=number;
FILE * Sta;
if((Sta=fopen("number.txt","r"))=NULL)
{
Sta=fopen("number.txt","wt");
exit(1);
}
Sta=fopen("number.txt","wt");
fprintf(Sta,"%d",Number[0]);

fclose(Sta);
}

void Read()
{
printf("\t\t\t您通讯录中一共有%d位好友\n",Number[0]);

FILE* read;
if((read=fopen("Friend.txt","r"))=NULL)
{
printf("\t\t\t您通讯中当前没有好友,请返回添加\n");
}
read=fopen("Friend.txt","rt");
printf("%-20s%-20s%-20s%-20s\n","姓名","电话 ","QQ","年龄");
for(int i=0;i<number;i++)
{

fscanf(read,"%s%s%s%d\n",&xy[i].name,&xy[i].Tel,&xy[i].QQ,&xy[i].age);

printf("%-20s%-20s%-20s%-20d\n",xy[i].name,xy[i].Tel,xy[i].QQ,xy[i].age);

}
/* fread(wenjian,10000,1,read);
for(int i=0;i<number*80+80;i++)
{
printf("%c",wenjian[i]);

}
printf("\n");
*/

fclose(read);
}

void beauty()
{

int d;
do{
printf("choose");
scanf("%d",&d);
}while(d<1&&d>5);
if(d==1)
{
system("color 27");
printf("===1===");

}
if(d==2)
{
system("color 37");
printf("===2===");
}
if(d==3)
{
system("color 47");
printf("===3===");
}
if(d==4)
{
system("color 57");
printf("===4===");
}
if(d==5)
{
system("color 67");
printf("===5===");
}

}
void Start()
{
FILE* Start;
if((Start=fopen("number.txt","r"))==NULL)
{
Start=fopen("number.txt","w");
number=0;
Number[0]=number;
fscanf(Start,"%d",&Number[0]);
printf("\t\t\t您的通讯录中还没有任何好友,赶快添加吧.此次操作需要重新运行程序。\n");
exit(1);
}
Start=fopen("number.txt","r");
fscanf(Start,"%d",&Number[0]);

number=Number[0];

fclose(Start);

}

void Search()
{
int change=0;
char Searchname[20];
printf("\t\t\t输入要查找的好友的名字\n\n");
scanf("%s",&Searchname);
fflush(stdin);
printf("\t\t\t您要查找的好友是 %s \n\n",Searchname);

FILE *Search;
Search=fopen("Friend.txt","rt");

for(int i=0;i<=number;i++)
{

fscanf(Search,"%s%s%s%d\n",&xy[i].name,&xy[i].Tel,&xy[i].QQ,&xy[i].age);

if(strcmp(xy[i].name,Searchname)==0)
{
printf("\t\t\t下面是该好友的信息:\n\n");
printf("%-20s%-20s%-20s%-20s\n","姓名","电话 ","QQ","年龄");
printf("%-20s%-20s%-20s%-20d\n",&xy[i].name,&xy[i].Tel,&xy[i].QQ,xy[i].age);
change=1;
}

fclose(Search);
}
if(change==0)
{
printf("\t\t\t您要查找的好友不存在,请返回菜单添加。\n");
}
}

void Rework()
{
char Rework[20];
printf("\t\t\t输入要修改的好友的名字\n\n");
scanf("%s",&Rework);

printf("\t\t\t您要修改 %s 的信息\n\n",Rework);
int Change=0;
FILE *Search;
Search=fopen("Friend.txt","rt");

for(int i=0;i<=number;i++)
{

fscanf(Search,"%s%s%s%d\n",&xy[i].name,&xy[i].Tel,&xy[i].QQ,&xy[i].age);

if(strcmp(xy[i].name,Rework)==0)
{
printf("\t\t\t下面是该好友的信息:\n\n");
printf("%-20s%-20s%-20s%-20s\n","姓名","电话 ","QQ","年龄");
Change=1;
int Choose;
printf("%-20s%-20s%-20s%-20d\n",&xy[i].name,&xy[i].Tel,&xy[i].QQ,xy[i].age);
//---------------------------------------------------------------------
do
{
printf("\t\t\tchoose\t\t\t1-----3");

scanf("%d",&Choose);
}while(Choose>3||Choose<1);
if(Choose==1){

printf("\t\t\t请输入好友电话号码\n");
scanf("%s",&xy[i].Tel);
}
if(Choose==2)
{
printf("\t\t\t请输入好友QQ号码\n");
scanf("%s",&xy[i].QQ);
}
if(Choose==3)
{
printf("\t\t\t请输入好友年龄\n");
scanf("%d",&xy[i].age);
}

Search=fopen("Friend.txt","wt");
for(int sta=0;sta<i;sta++)
{
fprintf(Search,"%-20s%-20s%-20s%-20d\n",xy[sta].name,xy[sta].Tel,xy[sta].QQ,xy[sta].age);
}
if(sta==i)
{
fprintf(Search,"%-20s%-20s%-20s%-20d\n",xy[i].name,xy[i].Tel,xy[i].QQ,xy[i].age);
i++;
}
for(i;i<=number;i++)
{
fprintf(Search,"%-20s%-20s%-20s%-20d\n",xy[i].name,xy[i].Tel,xy[i].QQ,xy[i].age);
}
printf("\t\t\t修改后的信息为:\n\n");
Read();

}

fclose(Search);
}
if(Change==0)
{
printf("\t\t\t您要查找的好友不存在,请返回菜单添加。\n");
}
}
void Detele()
{

int change=0;
char delete_friend[20];
printf("\t\t\t输入要删除的好友的名字\n\n");
scanf("%s",&delete_friend);
fflush(stdin);
printf("\t\t\t您要删除的好友是 %s \n\n",delete_friend);

FILE *DeleteF;
DeleteF=fopen("Friend.txt","rt");

for(int i=0;i<=number;i++)
{

fscanf(DeleteF,"%s%s%s%d\n",&xy[i].name,&xy[i].Tel,&xy[i].QQ,&xy[i].age);

if(strcmp(xy[i].name,delete_friend)==0)
{
printf("\t\t\t下面是该好友的信息:\n\n");
printf("%-20s%-20s%-20s%-20s\n","姓名","电话 ","QQ","年龄");
printf("%-20s%-20s%-20s%-20d\n",&xy[i].name,&xy[i].Tel,&xy[i].QQ,xy[i].age);
change=1;

DeleteF=fopen("Friend.txt","wt");
for(int st=0;st<i;st++)
{
fprintf(DeleteF,"%-20s%-20s%-20s%-20d\n",xy[st].name,xy[st].Tel,xy[st].QQ,xy[st].age);

}
i++;
for(i;i<=number;i++)
{
printf("%-20s%-20s%-20s%-20d\n",xy[i].name,xy[i].Tel,xy[i].QQ,xy[i].age);
fprintf(DeleteF,"%-20s%-20s%-20s%-20d\n",xy[i].name,xy[i].Tel,xy[i].QQ,xy[i].age);
}
}
//--------------------------------------------------------------------------------

if(change==1)
{
printf("\t\t\t删除后的通讯录信息为:\n\n");

number--;
Number[0]=number;
FILE * St;
if((St=fopen("number.txt","r"))=NULL)
{
St=fopen("number.txt","wt");
exit(1);
}
St=fopen("number.txt","wt");
fprintf(St,"%d",Number[0]);

fclose(St);

fclose(DeleteF);
Start();
Read();
}
}

if(change==0)
{
printf("\t\t\t您要删除的好友不存在。\n");
}

}

void Lock()
{

}

int Menu()
{
printf("\t\t*****欢迎进入通讯管理界面*****\n\n");

printf("\t\t\t1.添加我的好友\n");
printf("\t\t\t2.显示所有好友\n");
printf("\t\t\t3.查找我的好友\n");
printf("\t\t\t4.修改好友信息\n");
printf("\t\t\t5.删除我的好友\n");
printf("\t\t\t6.设置背景颜色\n");
printf("\t\t\t7.设置管理密码\n");
printf("\t\t\t8.使用注意事项\n");
printf("\t\t\t9.退出通讯系统\n");
printf("\t\t\t0.作者想说的话\n");
printf("\t\t******************************\n\n");

do{
printf("\t\t\t请输入你的选择:\n\n");
scanf("%d",&GOTO);
}while(GOTO>9||GOTO<1);
return GOTO;
}

int Judge()
{
char JUDGE;
do
{
printf("\t\t\t是否继续当前操作\n\n Y(yes) / N(no)\n");
printf("\t\t\t输入你的选择\n");
JUDGE=getch();
if(JUDGE=='y'||JUDGE=='Y')
{
return 1;
}
if(JUDGE=='n'||JUDGE=='N')
{
return 2;
}
}while(JUDGE!='y'||JUDGE!='n');

}

⑷ C语言,编写一个简单的通讯录管理系统

实现一个通讯录管理系统;

通讯录管理系统可以用来存储1000个人的信息,每个人的信息包括:
姓名、性别、年龄、电话、住址

**提供方法:
1. 添加联系人信息
2. 删除指定联系人信息
3. 查找指定联系人信息
4. 修改指定联系人信息
5. 显示所有联系人信息
6. 清空所有联系人
7. 以名字排序所有联系人**

1、linkman.h(头文件)

3、程序运行结果部分示范:

⑸ C语言程序设计,通讯录管理系统

/*【用C语言编写具有数据插入、修改、删除、显示和查询功能的电话薄管理程序】
1、数据包括:人名、工作单位、电话号码和E-mail地址。
2、可对记录中的姓名和电话号码进行修改。
3、可增加或删除记录。
4、可显示所有保存的记录。
5、可按人名或电话号码进行查询。

另:采用结构体数组和文件系统实现。结构体包括人名、工作单位、电话号码和E-mail
绝对原创,2010年7月12日晚刚写完测试通过的,纯C语言! */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define szSTR 64
#define fileDB "c:\\contact.txt"

struct CONTACT {
char name[szSTR];/*姓名*/
char unit[szSTR];/*工作单位*/
char tele[szSTR];/*电话*/
char mail[szSTR];/*mail*/
};

typedef struct CONTACT CON;

#define BNAME 1
#define BUNIT 2
#define BTELE 4
#define BMAIL 8
#define BFULL 0xFF
int OPER[5] = {BFULL, BNAME, BUNIT, BTELE, BMAIL};

void input(CON * s, int mask)
{
if(mask & BNAME) { printf("请输入学生姓名:"); scanf("%s", s->name); }
if(mask & BUNIT) { printf("请输入工作单位:"); scanf("%s", s->unit); }
if(mask & BTELE) { printf("请输入联系电话:"); scanf("%s", s->tele); }
if(mask & BMAIL) { printf("请输入电子邮件:"); scanf("%s", s->mail); }
}/*end input*/

void show (int id, CON * s)
{
if(!s) return ;
if(id)
printf("%d\t%s\t%s\t%s\t%s\n",
id, s->name , s->unit , s->tele , s->mail );
else
printf("【姓名】%s【工作单位】%s【电话】%s【电邮】%s\n",
s->name , s->unit , s->tele , s->mail );
/*end if*/
}/*end show*/

void regist(void)
{
CON s; FILE * f = 0;
input(&s, BFULL);
f = fopen(fileDB, "ab");
fwrite(&s,sizeof(s),1,f);
fclose(f);
printf("资料已保存!\n");
}/*end regist*/

int browse(char * key, fpos_t * p, CON * s)
{
FILE * f =0; int i = 0, r = 0; CON t;
char * a = 0, * b = 0; fpos_t q;
if(!s) return 0;
f = fopen(fileDB, "rb");
if(!f) {
printf("数据库暂无记录\n");
return 0;
}/*end if*/
printf("编号\t姓名\t单位\t电话\t电邮\n");
printf("------------------------------------------------\n");
while(!feof(f)) {
fgetpos(f, &q);
r = fread(&t, sizeof(t), 1, f);
if(r<1)break;
if(t.name[0]==0) continue;
if(key) {
a = strstr(t.name , key);
b = strstr(t.tele , key);
if(a == 0 && b == 0) continue;
}/*end if*/
if(p) *p = q;
if(s) memcpy(s, &t, sizeof(t));
i++;
show(i, &t);
}/*end while*/
fclose(f);
printf("------------------------------------------------\n");
return i;
}/*end browse*/

fpos_t query(CON * s)
{
char key[szSTR]=""; fpos_t p = 0; int r = 0;
printf("请输入姓名或者电话号码:");
scanf("%s", key);
r = browse(key, &p, s);
return r?p:-1;
}/*end query*/

void clear(void)
{
FILE * f = 0; CON s;
fpos_t p = query(&s);
if(p<0) return;
f = fopen(fileDB, "rb+");
fsetpos(f, &p);
memset(&s, 0, sizeof(s));
fwrite(&s, sizeof(s),1, f);
fclose(f);
printf("记录已删除!\n");
}/*end clear*/

void modify(void)
{
FILE * f = 0; CON s; int cmd = 0;
fpos_t p = query(&s);
if(p<0) return;
f = fopen(fileDB, "rb+");
fsetpos(f, &p);
for(;;) {
show(0, &s);
printf("请选择:1-姓名;2-工作单位;3-电话;4-电邮;5-保存并退出;6-放弃修改并退出\n");
scanf("%d", &cmd);
switch(cmd) {
case 1:
case 2:
case 3:
case 4:
input(&s, OPER[cmd]);
break;
case 5:
fsetpos(f, &p);
fwrite(&s, sizeof(s), 1, f);
case 6:
fclose(f);
return;
default:
printf("错误的操作,请重新输入。\n");
}/*end case*/
}/*mext*/
}/*end clear*/

int main(void)
{
int cmd = 0; CON s;
for(;;) {
printf("欢迎使用通信簿!请选择:1-添加;2-查询;3-删除;4-修改;5-全部输出;0-退出\n");
scanf("%d", &cmd);
switch(cmd) {
case 0: return 0;
case 1: regist(); break;
case 2: query(&s); break;
case 3: clear(); break;
case 4: modify(); break;
case 5: browse(0, 0, &s); break;
}//end case
}
return 0;
}

⑹ C语言设计个人通讯录管理系统

1、创建学生社团管理系统的欢迎界面,该欢迎界面以图片的方式呈现,系统启动时再屏幕中居中显示。

⑺ 用C语言. 编写一个“通讯录管理系统”程序

#include
#include
#include
struct worker
{
char name[30]; //name职工姓名
char ID[10]; //ID职工编号
char sex[3];
int birth;
int tel;
char ec[10];
char addr[30];
char cheng[10];
int year;
};
int dq(struct worker wo[]);
void show();
void bc(struct worker wo[]);
void add();
void see();
void search();
void ghcz();
void xmcz();
void del();
void ghxg();
void reserve();
//void back();
struct worker wo[100]; //保存所有的职工信息
int Number=0; //记录总的职工人数
int main()
{
int choose=0;
system("color 1e");//更改背景颜色
while(1)
{
show();
printf("\t\t====>请选择:");
scanf("%d",&choose);
system("cls");//清屏
switch(choose)
{
case 0: exit(0);//退出
break;
case 1: add();
back();//添加职工信息
break;
case 2: see();
back();//查看职工信息
break;
case 3: search();
back();
break;
case 4: del();
back();
break;
case 5:ghxg();
back();
break;
case 6:reserve();
back();
break;

default:
back();

break;
}
fflush(stdin);//?清空输入缓冲区,通常是为了确保不影响后面的数据读取
getchar();
system("cls");//清屏
}
}

int dq(struct worker wo[])//怎么初始化?打开文件出现乱码。这个不肯定,可能是二进制文件,而你是用文本文档的方式打开的
{
FILE *fp=NULL;
int i=0;
fp=fopen("C://worker.dat","rb");
while(fread(&wo[i],sizeof(struct worker),1,fp))//?从woker.dat文件读取数据到结构体数组wo[], 一次读取一个工人的全部数据
i++;
fclose(fp);
return i;
}

void show() //程序主界面函数
{
printf("\n");
printf("\t****************职工工资管理系统****************\n\n");

printf("\t***************[1] 添加职工信息*****************\n");

printf("\t***************[2] 查看职工信息*****************\n");

printf("\t***************[3] 查找职工信息*****************\n");

printf("\t***************{4] 删除职工信息*****************\n");<br/> <br/> printf("\t***************[5] 修改职工信息*****************\n");<br/> <br/> printf("\t***************[6] 保 存 数 据*****************\n");<br/> <br/> printf("\t***************[7] 作 者 信 息*****************\n");<br/> <br/> printf("\t***************[0] 退 出 系 统*****************\n\n");<br/>}

void bc(struct worker *wo)
{
FILE *fp=NULL;
fp=fopen("C://worker.dat","ab+");
fwrite(wo,sizeof(struct worker),1,fp);
fclose(fp);
}
//添加职工信息
void add()
{
int numberTemp=0;
int i=0;
struct worker temp;
printf("请输入要添加职工个数:");
scanf("%d",&numberTemp);
for(i=0;i修改成功\n");
}
//保存数据

⑻ c语言程序设计——编一个通讯录管理程序:序号 姓名 电话 地址

简单通讯录管理程序,代码如下:#include
<stdio.h>
#include
<string.h>
#include
<stdlib.h>
typedef
struct
student
*ST;
struct
student
{
char
stN[20];
char
stVal[128];
char
stNo[10];
char
stTel[12];
ST
next;
};
ST
head
=
NULL;
int
ShowNode()
{
char
no[20]
=
{0};
ST
t;
printf("输入姓名:");
scanf("%s",
no);
for
(t
=
head;
t;
t
=
t->next)
{
if
(!memcmp(t->stN,
no,
strlen(no)))
{
printf("姓名:%s,
地址:%s
邮编:%s
电话:%s\n",
t->stN,
t->stVal,
t->stNo,
t->stTel);
return
0;
}
}
printf("无此人信息\n");
return
0;
}
int
ChangeNode()
{
char
no[20];
ST
t;
printf("输入姓名:");
scanf("%s",
no);
for
(t
=
head;
t;
t
=
t->next)
{
if
(!memcmp(t->stN,
no,
strlen(no)))
{
printf("输入新的记录:\n");
printf("地址:");
scanf("%s",
t->stVal);
printf("邮编:");
scanf("%s",
t->stNo);
printf("英语成绩:");
scanf("%s",
t->stTel);
return
0;
}
}
printf("无此人信息\n");
return
0;
}
int
InsertNode()
{
ST
t;
t
=
(ST)malloc(sizeof
*t);
printf("输入姓名:");
scanf("%s",
t->stN);
printf("输入地址:");
scanf("%s",
t->stVal);
printf("输入邮编:");
scanf("%s",
t->stNo);
printf("输入电话:");
scanf("%s",
t->stTel);
t->next
=
head;
head
=
t;
return
0;
}
int
DelNode()
{
ST
x,
y;
char
no[20]
=
{0};
printf("输入姓名:");
scanf("%s",
no);
for
(x
=
y
=
head;
x;
y
=
x,
x
=
x->next)
{
if
(!memcmp(x->stN,
no,
strlen(no)))
{
if
(x
==y)
{
x
=
head
=
head->next;
y->next
=
NULL;
free(y);
return
0;
}
else
{
y->next
=
x->next;
x->next
=
NULL;
free(x);
return
0;
}
}
}
printf("无此学生\n");
return
0;
}
int
main(void)
{
int
i;
while(1)
{
printf("查询记录:1\n"
"更改记录:2\n"
"插入记录:3\n"
"删除记录:4\n"
"退出:5\n");
scanf("%d",
&i);
if
(1==i)
{
ShowNode();
}
else
if(2==i)
{
ChangeNode();
}
else
if(3==i)
{
InsertNode();
}
else
if(4==i)
{
DelNode();
}
else
if(5==i)
{
break;
}
else
{
printf("输入错误!请重新输入!\n");
continue;
}
}
return
0;
}

⑼ C语言程序设计—通讯录管理系统

这个东西可以运行但是写的不怎么样,你自己改哈就对了,我没有时间我就不给你改了,希望对你有帮助!

#include<stdio.h>
#include<string.h>
//person结构定义
struct person
{
char name[8];
char tel[15];
char addr[50];
};//结束定义
char filename[20];
FILE *fp;
void creat();
void ndelete();
void output();
void search();
void search1();
void search2();
void append();

main( )

{
int m;
creat();
while(1)
{
printf("\n\t\t***********欢迎使用电话查询系统**********\n\n");
printf("\n\t\t添加, 请按1");
printf("\n\t\t按姓名查找,请按2");
printf("\n\t\t按号码查找, 请按3");
printf("\n\t\t输出, 请按4");
printf("\n\t\t退出, 请按0\n");
printf("\n\t\t********************************************\n\n");
printf("Please select(0--4):");
scanf("%d",&m);
if(m>=0&&m<=4)
{
switch(m)
{
case 1: append();
break;
case 2: search();
break;
case 3: search1();
break;
case 4: output();
break;
case 0: exit();
}
printf("\n\n操作完毕,请再次选择!");
}
else
printf("\n\n选择错误,请再次选择!");
}
}

/*输入模块creat( ): 电话薄的子函数。*/
void creat()
{
printf("\n请确定电话薄文件名:");
scanf("%s",filename);

if((fp=fopen(filename,"at+"))==NULL)
{
printf("\n不能建电话薄录!");
exit();
}
fprintf(fp,"%-10s%-20s%-50s\n","姓名","电话号码","住址");

fclose(fp);
}

/*输出模块output( ):输出电话薄中联系人的个人信息的子函数*/
void output()
{
struct person one;
if((fp=fopen(filename,"r"))==NULL)
{
printf("\n不能打开通讯录!");
exit();
}
printf("\n\n%20s\n","通 讯 录");
while(!feof(fp))
{
fscanf(fp,"%s%s%s\n",one.name,one.tel,one.addr);
printf("%-10s%-20s%-50s",one.name,one.tel,one.addr);
}
fclose(fp);
}

/*添加模块append( ):向电话薄中添加某人的个人信息的子函数*/
void append()
{
struct person one;
search2();
if((fp=fopen(filename,"a"))==NULL)
{
printf("\n不能打开通讯录!");
exit();
}
printf("\n请输入添加的姓名、电话号码及住址\n");
scanf("%s%s%s",one.name,one.tel,one.addr);
fprintf(fp,"%-10s%-20s%-50s\n",one.name,one.tel,one.addr);
fclose(fp);
}
/*查找模块search( ):在电话薄中按姓名查找某人的个人信息的子函数*/
void search()
{
int k=0;
char namekey[8];
struct person one;
printf("\n请输入姓名:");
scanf("%s",namekey);
if((fp=fopen(filename,"rb"))==NULL)
{
printf("\n不能打开电话薄!");
exit();
}
while(!feof(fp))
{
fscanf(fp,"%s%s%s\n",one.name,one.tel,one.addr);
if(!strcmp(namekey,one.name))
{
printf("\n\n已查到,记录为:");
printf("\n%-10s%-20s%-50s",one.name,one.tel,one.addr);
k=1;
}
}
if(!k)
printf("\n\n对不起,电话薄中没有此人的记录。");
fclose(fp);
}

/*查找模块search1( ):在电话薄中按电话号码查找某人的个人信息的子函数*/
void search1()
{
int k=0;
char telkey[15];
struct person one;
printf("\n请输入电话号码:");
scanf("%s",telkey);
if((fp=fopen(filename,"rb"))==NULL)
{
printf("\n不能打开电话薄!");
exit();
}
while(!feof(fp))
{
fscanf(fp,"%s%s%s\n",one.name,one.tel,one.addr);
if(!strcmp(telkey,one.tel))
{
printf("\n\n已查到,记录为:");
printf("\n%-10s%-2s%-50s",one.name,one.tel,one.addr);
k=1;
}
}
if(!k)
printf("\n\n对不起,电话薄中没有此人的记录。");
fclose(fp);
}

/*查找模块search( ):在电话薄中按姓名查找某人的个人信息的子函数*/
void search2()
{
int k=0;
char namekey[8];
struct person one;
printf("\n请输入添加的姓名:\n");

scanf("%s",namekey);
if((fp=fopen(filename,"rb"))==NULL)
{
printf("\n不能打开电话薄!");
exit();
}
while(!feof(fp))
{
fscanf(fp,"%s%s%s\n",one.name,one.tel,one.addr);

if(!strcmp(namekey,one.name))
{
printf("\n\n查到有同名记录为:");
printf("\n%-10s",one.name);
k=1;
printf("\n\n请改名字后继续完成添加\n");
}

}

fclose(fp);
}