c语言学生通讯录,C语言做学生通讯录

/*同学通讯录*/

#include

#include

struct friends/*定义数据结构*/

{

char name[20];/* 联系地址*/

char tel[12];

char e_mail[50];/*电子邮件*/

char address[40];/* 联系地址*/

}frd[40]; /*定义结构体数组*/

int r_cnt=0;

int add_cnt=0 ;

int add();

void cha_zhao();

void list();

void modify();

int del ();

void exit_asd ();

void save();

void list();

void load();

int find(struct friends frd[],char tel[]);

main()

{

load();

clrscr();

for(;;)

{

switch(menu_book())

{

case 1 : add() ; break;

case 2 : cha_zhao() ; break;

case 3 : modify() ; break;

case 4 : del() ; break;

case 5 : exit_asd(); break;

case 6 : list () ; break;

}

}

}

int menu_book()

{

int c;

printf("*******************MENU******************\n");

printf("* *\n");

printf("* *\n");

printf("* d *\n");

printf("* *\n");

printf("* a_zhao *\n");

printf("* *\n");

printf("* dify *\n");

printf("* *\n");

printf("* lete *\n");

printf("* *\n");

printf("* 5。

exit *\n");

printf("* *\n");

printf("* st *\n");

printf("* *\n");

printf("* *\n");

printf("*****************************************\n");

do

{printf("\n\n enter you choice(0-6):");

scanf("%d",&c); }

while(c6);

return c;

}

void load()/*加载*/

{

FILE *fp;

int i=0;

r_cnt=0;

if((fp=fopen("FF。

txt","rb"))!=NULL)

{

while(!feof(fp))

{

fread(&frd[i],sizeof(struct friends),1,fp);

r_cnt++;

printf("%s %s %s %s\n",frd[i]。

name,frd[i]。tel,frd[i]。e_mail,frd[i]。address);

i++;

}

}

else

puts("open error!");

fclose(fp);

}

void save()/*保存*/

{

FILE *fp;

int i;

if((fp=fopen("FF。

txt","a+"))==NULL)

{

puts("open file error!");

exit(0);

}

for(i=0;i-1)

{

printf("tel don't modify!\n");

printf("please new :name,e_mail,address:\n");

scanf("%s%s%s",frd[p]。

name,frd[p]。e_mail,frd[p]。address);

}

getch();

}

void exit_asd()

{

int num;

save(frd);

printf("exit? ,contine__1 , exit__0\n");

scanf("%d",&num);

if(num==0)

{

exit(0);

}

getch();

}

int add()/*增加*/

{

int i=0;

char ch[20];

while(1)

{

if(strcmp(ch,"#")==0)

break;

printf("input name:\n");

scanf("%s",frd[i]。

name);

printf("input tel:\n");

scanf("%s",frd[i]。tel);

printf("input e_mail:\n");

scanf("%s",frd[i]。

e_mail);

printf("inout address:\n");

scanf("%s",frd[i]。address);

printf("if you want to stop,please enter '#' or enter other keys to contine:");

scanf("%s",ch);

i++;

}

clrscr();

add_cnt=i;

printf("%d\n",add_cnt);

printf("name\t\ttel\t\te_mail\t\t\taddress\n");

printf("********************************************************************\n");

for(i=0;ir_cnt-1)

printf("no found!\n");

else

{

printf("\n\n*******************delete******************************************\n");

printf("name tel e_mail address\n");

printf("------------------------------------------------\n");

printf("%s %s %s %s\n",frd[i]。

name,frd[i]。tel,frd[i]。e_mail,frd[i]。address);

printf("************************************************************************\n\n");

printf("Are you sure delete it(1/0)?\n");

scanf("%d",&ch);

if(ch==1)

{

for(j=i+1;j  name,frd[j]。name);

strcpy(frd[j-1]。tel,frd[j]。tel);

strcpy(frd[j-1]。e_mail,frd[j]。e_mail);

strcpy(frd[j-1]。

address,frd[j]。address);

}

r_cnt--;

}

}

return r_cnt;

} 。

全部

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
设计一个《学生通讯录管理系统》,在动态链表程序的基础上,设计要求如下 (必须使用结构体和链表等数据结构) 1建立文件 存储文件使用指定文件名或默认文件名; 可以不保存输入记录,但需要确认是否保存输入记录 如果已有文件,只能在其后追加; 新增记录可以不存入原文件中,以可以用原来的文件覆盖内存的内容; 可以将多个个文件记录合并到一个文件中; 2文件的存取和显示 可以单独存取文件; 可以随时显示内存中记录的全部内容; 可以直接存取默认文件或指定文件; 3删除记录 可以按“姓名”或“电话”方式删除记录并更新内存链表内容; 能给出被删除的信息,输出没有找到的信息; 如果已经是空表,上出时应给出信息并返回主菜单; 如果没有要删除的信息,输出没有找到的信息; 删除操作仅限于内存,只有执行记录时,才能覆盖原记录; 4查询记录 可以按“姓名”或“电话”或“宿舍”方式查询记录 能给出查询记录的信息; 如果查询的信息不存在,输出没有找到的信息; 5 整体功能 a可以随时检索、删除、或增加新记录,保存或取消新的记录 b使姓名可由16位字符和数字的混合编码组成 c使电话号码可由18位字符和数字组成 d将输出信息加上输出信息信息栏,例如 姓名 电话 性别 年龄 生日 宿舍 李四 1234 男 21 7月1日 东二333 e使用菜单实现功能的正确的选择 f 所有节点信息都是动态生成。 6测试程序 应列出测试大纲对程序进行测试; 应保证测试用例测试到程序的各种边缘情况

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值