本文目录一览:
- 1、用C语言编写一个通讯录管理系统
- 2、C语言编写程序:同学通信录管理系统
- 3、C语言设计个人通讯录管理系统
- 4、C语言简易通信录管理系统
- 5、C语言程序设计,通讯录管理系统
- 6、C语言,通信录管理系统设计
用C语言编写一个通讯录管理系统
C语言编写一个通讯录管理系统的源代码如下:
#includestdio.h
#includestring.h
#includestdlib.h
/*定义保存通迅录的信息*/
structfriends
{
charname[20];/*名字*/
charprovince[20];/*省份*/
charcity[20];/*所在城市*/
charnation[20];/*民族*/
charsex[2];/*性别M/F*/
intage;/*年龄*/
}
扩展资料
1、在C++中应该使用inline内连函数替代宏调用,这样既可达到宏调用的目的,又避免了宏调用的弊端。
2、在C语言两个函数的名称不能相同,否则会导致编译错误。在C++中,函数名相同而参数不同的两个函数被解释为重载。
3、在大型程序中,使函数名易于管理和使用,不必绞尽脑汁地去处理函数名。
C语言编写程序:同学通信录管理系统
望采纳
#includestdio.h
#includestdlib.h
#includestring.h
typedef struct
{
char score; /*编号*/
char name[10]; /*姓名*/
char num[15]; /*号码*/
char email[20]; /*邮箱*/
char age[8]; /*年龄*/
char adds[20]; /*住址*/
}Person;
Person pe[80];
//登陆函数
logon()
{printf("\n\n\n\t\t\t 通讯录管理系统\n\n");
printf("\t\t\t 版本号:1.0\n\n");
printf("\n\n\n\n\n\t\t\t 2011年4月29日\n\n");
printf("\t\t\t 程序设计第三组\n");
system("pause");
}
int menu_select()
{ char c;
logon();
do{
system("cls");
printf("\t\t *****通讯录***** \n");
printf("\t\t┌───────┐\n");
printf("\t\t│ 1. 添加记录 │\n");
printf("\t\t│ 2. 显示记录 │\n");
printf("\t\t│ 3. 删除记录 │\n");
printf("\t\t│ 4. 查询记录 │\n");
printf("\t\t│ 5. 修改记录 │\n");
printf("\t\t│ 6. 保存记录 │\n");
printf("\t\t│ 0. 退出程序 │\n");
printf("\t\t└───────┘\n");
printf("\t\t请您选择(0-6):");
c=getchar();
}while(c'0'||c'6');
return(c-'0');
}
int Input(Person per[],int n)
{
int i=0;
char sign,x[10];
while(sign!='n'sign!='N')
{
printf("\t编号:");
scanf("\t%d",per[n+i].score);
printf("\t姓名:");
scanf("\t%s",per[n+i].name);
printf("\t年龄:");
scanf("\t%s",per[n+i].age);
printf("\t电话号码:");
scanf("\t%s",per[n+i].num);
printf("\t通讯住址:");
scanf("\t%s",per[n+i].adds);
printf("\t电子邮箱:");
scanf("\t%s",per[n+i].email);
gets(x);
printf("\n\t是否继续添加?(Y/N)");
scanf("\t%c",sign);
i++;
}
return(n+i);
}
void Display(Person per[],int n)
{
int i;
printf("----------------------------------------------------------------------\n"); /*格式*/
printf("编号 姓名 年龄 电话号码 通讯地址 电子邮箱\n");
printf("----------------------------------------------------------------------\n");
for(i=1;in+1;i++)
{
printf("%-5d%-8s%-6s%-13s%-15s%-15s\n",per[i-1].score,per[i-1].name,per[i-1].age,per[i-1].num,per[i-1].adds,per[i-1].email);
if(i1i%10==0)
{
printf("\t-----------------------------------\n");
printf("\t");
system("pause");
printf("\t-----------------------------------\n");
}
}
printf("----------------------------------------------------------------------\n");
system("pause");
}
int Delete_a_record(Person per[],int n)
{
char s[20];
int i=0,j;
printf("\t请输入想删除记录中的名字:");
scanf("%s",s);
while(strcmp(per[i].name,s)!=0in) i++;
if(i==n)
{
printf("\t通讯录中没有此人!\n");
return(n);
}
for(j=i;jn-1;j++)
{
strcpy(per[j].num,per[j+1].num);
strcpy(per[j].name,per[j+1].name);
strcpy(per[j].age,per[j+1].age);
strcpy(per[j].adds,per[j+1].adds);
strcpy(per[j].email,per[j+1].email);
per[j].score=per[j+1].score;
}
printf("\t\t\t已经成功删除!\n");
return(n-1);
}
void Query_a_record(Person per[],int n)
{
int m;
printf("\t\n请选择查询方式:\n");
printf("\t┌──────┐\n");
printf("\t│1------姓名 │\n");
printf("\t│2------电话 │\n");
printf("\t│3------地址 │\n");
printf("\t│4------返回 │\n");
printf("\t└──────┘\n");
printf("请选择:");
scanf("%d",m);
while(m!=1m!=2m!=3m!=4)
{
printf("输入错误,请重新选择:");
scanf("%d",m);
}
if(m==1)
{
char s[20];
int i=0;
printf("\t请输入想查询的姓名:");
scanf("\t%s",s);
while(strcmp(per[i].name,s)!=0in) i++;
if(i==n)
{
printf("\t通讯录中没有此人!\n");
return;
}
printf("\t此人编号: %d\n",per[i].score);
printf("\t此人年龄: %s\n",per[i].age);
printf("\t电话号码: %s\n",per[i].num);
printf("\t通讯地址: %s\n",per[i].adds);
printf("\t电子邮箱: %s\n",per[i].email);
} ;
if(m==2)
{
char s[20];
int i=0;
printf("\t请输入想查询的电话:");
scanf("\t%s",s);
while(strcmp(per[i].num,s)!=0in) i++;
if(i==n)
{
printf("\t通讯录中没有此人!\n");
return;
}
printf("\t此人编号: %d\n",per[i].score);
printf("\t此人姓名: %s\n",per[i].name);
printf("\t此人年龄: %s\n",per[i].age);
printf("\t通讯地址: %s\n",per[i].adds);
printf("\t电子邮箱: %s\n",per[i].email);
} ;
if(m==3)
{
char s[20];
int i=0;
printf("\t请输入想查询的地址:");
scanf("\t%s",s);
while(strcmp(per[i].adds,s)!=0in) i++;
if(i==n)
{
printf("\t通讯录中没有此人!\n");
return;
}
printf("\t此人编号: %d\n",per[i].score);
printf("\t此人姓名: %s\n",per[i].name);
printf("\t此人年龄: %s\n",per[i].age);
printf("\t电话号码: %s\n",per[i].num);
printf("\t电子邮箱: %s\n",per[i].email);
} ;
}
void Change(Person per[],int n)
{
char s[20];
int i=0;
printf("\t请输入想修改的记录中的名字:");
scanf("%s",s);
while(strcmp(per[i].name,s)!=0in) i++;
if(i==n)
{
printf("\t通讯录中没有此人!\n");
return;
}
printf("\t编号:");
scanf("\t%d",per[i].score);
printf("\t姓名:");
scanf("\t%s",per[i].name);
printf("\t年龄:");
scanf("\t%s",per[i].age);
printf("\t电话号码:");
scanf("\t%s",per[i].num);
printf("\t通讯住址:");
scanf("\t%s",per[i].adds);
printf("\t电子邮箱:");
scanf("\t%s",per[i].email);
printf("\t修改成功!");
}
void WritetoText(Person per[],int n)
{
int i=0;
FILE *fp; /*定义文件指针*/
char filename[20]; /*定义文件名*/
printf("\t保存到文件\n"); /*输入文件名*/
printf("\t请输入所保存的文件名:");
scanf("\t%s",filename);
if((fp=fopen(filename,"w"))==NULL)
{
printf("\t无法打开文件\n");
system("pause");
return;
}
fprintf(fp,"******************************************通讯录******************************************\n");
fprintf(fp,"编号 姓名 年龄 电话号码 通讯地址 电子邮箱\n");
fprintf(fp,"------------------------------------------------------------------------------------------\n");
while(in)
{
fprintf(fp,"%-3d\t%-6s\t%-3s\t%-13s\t%-20s\t%-20s\n",per[i].score,per[i].name,per[i].age,per[i].num,per[i].adds,per[i].email);
i++;
}
fprintf(fp,"------------------------------------------------------------------------------------------\n");
fprintf(fp,"***************************************共有%d条记录****************************************\n",n);
fclose(fp); /*关闭文件*/
printf("保存成功!\n");
}
void main()
{
int n=0;
for(;;)
{
switch(menu_select())
{
case 1:
printf("\n\t添加记录到通讯录\n"); n=Input(pe,n);
break;
case 2:
printf("\n\t\t\t 通讯录记录表\n");
Display(pe,n);
break;
case 3:
printf("\n\t从通讯录中删除记录\n");
n=Delete_a_record(pe,n);
printf("\t");
system("pause");
break;
case 4:
printf("\n\t在通讯录中查找记录\n");
Query_a_record(pe,n);
printf("\t");
system("pause");
break;
case 5:
printf("\n\t修改通讯录中的记录\n");
Change(pe,n);
printf("\t");
system("pause");
break;
case 6:
printf("\n\t保存功能\n");
WritetoText(pe,n);
printf("\t");
system("pause");
break;
case 0:
printf("\n\t\t谢谢使用,再见!\n");
printf("\n\t\t");
system("pause");
exit(0);
}
}
}
C语言设计个人通讯录管理系统
1、创建学生社团管理系统的欢迎界面,该欢迎界面以图片的方式呈现,系统启动时再屏幕中居中显示。
2、再创建用户登录窗口,用户通过文本框输入用户名和密码,单击“登录”按钮后,在窗体中显示登录是否成功;单击“重置”按钮后,清空文本框信息。
3、创建“社团成员信息管理”窗体,用户可以对成员信息进行浏览、添加、删除与修改等多种操作;本任务重将实现添加成员信息的部分功能,从窗体各个控件中获取新成员的各项数据并显示在窗体右侧。
4、完成的“社团成员信息管理”窗体中实现社团成员照片的选择,并将选择的图片显示在窗体中,为用户提供预览功能。
5、设计并创建“学生社团管理系统”的主界面,主界面中具有背景图片、菜单、工具栏、状态栏等元素。
6、对于“成员编号”等有固定长度或长度限制以及有使用规定字符集合的信息,在输入错误时作提示。窗体左侧“成员列表”上方的文本框中输入姓名并按回车,实现按键查询。
C语言简易通信录管理系统
#includestdio.h
#includestring.h
#includestdlib.h
#includeconio.h
struct contacks
{ char name[10];
char mobile[10];
char fixtelephone[10];
char Email[20];
char street[20];
}con[50];
int k=0;
void enter();
void display();
void lookandchange();
void del();
void save();
void main()
{
int a;
do
{
printf("\n\n ******************************************************************\n");
printf(" *"); printf("\t\twelcome enter the contacks system"); printf("\t\t*");
printf("\n ******************************************************************\n");
printf(" *"); printf("\t 1.Access information"); printf("\t\t\t\t\t*\n");
printf(" *"); printf("\t 2.display information"); printf("\t\t\t\t*\n");
printf(" *"); printf("\t 3.lookandchange information"); printf("\t\t\t\t*\n");
printf(" *"); printf("\t 4.Delete information"); printf("\t\t\t\t\t*\n");
printf(" *"); printf("\t 5.Save the information"); printf("\t\t\t\t*\n");
printf(" *"); printf("\t 6. exit "); printf("\t\t\t\t\t*\n");
printf(" ******************************************************************\n");
printf(" Enter you choice : ");
scanf("%d",a);
switch(a)
{
case 1:printf("\n");enter();break;
case 2:printf("\n");display();break;
case 3:printf("\n");lookandchange();break;
case 4:printf("\n");del();break;
case 5:printf("\n");save();break;
case 6:printf("\n");exit(0);break;
default:printf("\nThe choice is between 1 to 6.\n");
}
}while(a!=0);
}
void enter()
{
char ch[20];
printf("\nenter student information:\n");
do
{ printf("\nname: ");
scanf("%s",con[k].name);
printf("mobile: ");
scanf("%s",con[k].mobile);
printf("\nfixtelephone: ");
scanf("%s",con[k].fixtelephone);
printf("\nEmail: ");
scanf("%s",con[k].Email);
printf("\nstreet: ");
scanf("%s",con[k].street);
k++;
printf("\nif want continue input student information(y/n): ");
scanf("%s",ch);
}while(strcmp(ch,"y")==0||strcmp(ch,"Y")==0);
display();
}
void display()
{ int i;
printf(" the information is:\n");
for(i=0;ik;i++)
{ printf("%10s %20s %10s %10s %10s ",con[i].name,con[i].mobile,con[i].fixtelephone,con[i].Email,con[i].street);
printf("\n"); }
}
void lookandchange()
{
int i;
char a[20],ch[10];
printf("\nenter you want look name:");
scanf("%s",a);
for(i=0;ik;i++)
if(strcmp(con[i].name,a)==0) printf("%10s %20s %10s %10s %10s ",con[i].name,con[i].mobile,con[i].fixtelephone,con[i].Email,con[i].street);
printf("\nyou sure want change student y/n): ");
scanf("%s",ch);
if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0)
{ printf("\nenter you want change name:");
scanf("%s",a);
for(i=0;ik;i++)
{
if(strcmp(con[i].name,a)==0)
{ printf("\nyou sure want change student name(y/n): ");
scanf("%s",ch);
if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0) { printf("\nname:"); scanf("%s",con[i].name);}
printf("\nyou sure want change mobile(y/n): ");
scanf("%s",ch);
if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0) { printf("\nmobile"); scanf("%s",con[i].mobile);}
printf("\nyou sure want change fixtelephone(y/n): ");
scanf("%s",ch);
if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0) { printf("\nfixtelephone"); scanf("%s",con[i].fixtelephone);}
printf("\nyou sure want change Email(y/n): ");
scanf("%s",ch);
if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0) { printf("\nEmail"); scanf("%s",con[i].Email);}
printf("\nyou sure want changestreet(y/n): ");
scanf("%s",ch);
if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0) { printf("\nstreet"); scanf("%s",con[i].street);}
}
} }
display();
}
void del()
{
int i,j;
char c[20];
printf("\nenter you want delete name :\n");
printf("name:");
scanf("%s",c);
for(i=0;ik;i++)
if(strcmp(c,con[i].name)==0) break;
for(j=i;j=2;j++)
con[j]=con[j+1];
printf("\t\t\tyou had delete %s\n",c);
k--;
display();
}
void save()
{ FILE *fp; int i;
if((fp=fopen("xinxi.txt","w"))==NULL)
{ printf("cannot write the file.\n");
exit(0);}
for(i=0;strlen(con[i].name)!=0;i++)
fprintf(fp,"%s %s %s %s %s\n",con[i].name,con[i].mobile,con[i].fixtelephone,con[i].Email,con[i].street);
fclose(fp);
}
调试通过 有问题再说
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(r1)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(p0) 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(p0) 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语言,通信录管理系统设计
/*
* main_tongxunlu.c
*
* Created on: 2011-6-21
* Author: zhanglujin
*/
#includestdio.h
#includestdlib.h
#includestring.h
#includeconio.h
struct record
{
char name[20]; //姓名
char phone[12]; //电话
char adress[50]; //地址
char postcode[8]; //邮政编码
char e_mail[20]; //电子邮件。
}student[100]; //假设最大数为100.
//定义全局变量num,表示已经输入的人数 。
int num; //这里使用数组解决通讯录的问题,实际上使用链表更好。
int menu_select()
{
char s[80];
int a;/*定义整形变量*/
system("cls");
printf("\t\t***********欢迎进入通讯管理界面********\n\n");
printf("\t\t\t0. 输入记录\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. Quit\n");
printf("\t\t***********************************************\n\n");
do{
printf("Enter you choice(0~7):");
scanf("%s",s);
a=atoi(s);
}
while (a0 || a7);
return a;
}
int adduser()
{
printf("\t\t\t**************** 请输入用户信息 ****************\n");
printf("\t\t\t输入姓名:\n");
scanf("%s",student[num].name);
printf("\t\t\t输入电话号码:\n");
scanf("%s",student[num].phone);
printf("\t\t\t输入地址:\n");
scanf("%s",student[num].adress);
printf("\t\t\t输入邮编:\n");
scanf("%s",student[num].postcode);
printf("\t\t\t输入e-mail:\n");
scanf("%s",student[num].e_mail);
num++;
printf("\t\t\t是否继续添加?(Y/N):\n");
if(getch()=='y' || getch()=='Y')
adduser();
return(0);
}
void list()
{
int i;
system("cls");
if(num!=0)
{
printf("\t\t\t*************** 以下为通讯录所有信息************\n");
for (i=0;inum;i++)
{
printf("\t\t\t姓名:%s\n",student[i].name);
printf("\t\t\t电话:%s\n",student[i].phone);
printf("\t\t\t地址:%s\n",student[i].adress);
printf("\t\t\t邮编:%s\n",student[i].postcode);
printf("\t\t\te-mail:%s\n",student[i].e_mail);
if(i+1num)
{
system("pause");
}
}
printf("\t\t\t************************************************\n");
}
else
printf("\t\t\t通讯录中无任何纪录\n");
printf("\t\t\t按任意键返回主菜单:\n");
getch(); //这里是无回显的输入字符,你输入的字符不会显示在屏幕上。
return;
}
int searchbyname()
{
int mark=0;
int i;
printf("\t\t\t***************** 按姓名查找 *******************\n");
char name[20];
printf("\t\t\t请输入姓名:\n");
scanf("%s",name);
for(i=0;inum;i++)
{
if (strcmp(student[i].name,name)==0)
{
printf("\t\t\t************* 以下是您查找的用户信息 ***********\n");
printf("\t\t\t姓名: %s",student[i].name);
printf("\t\t\t电话: %s",student[i].phone);
printf("\t\t\t地址: %s",student[i].adress);
printf("\t\t\te-mail:%s",student[i].e_mail);
printf("\t\t\t************************************************\n");
mark++;
if((i+1)num)
{
printf("\t\t\t是否继续查找相同名字的用户信息:(y/n)\n");
if(getch()=='y' || getch()=='Y')
{