通讯录管理系统

1、需求分析信息记录要存放到文件中去,因而要实现文件的输入输出操作;要实现数据的插入、删除、修改和显示功能,因而要实现插入、删除、修改和显示操作;要实现按人名或电话号码进... 1、需求分析
信息记录要存放到文件中去,因而要实现文件的输入输出操作;要实现数据的插入、删除、修改和显示功能,因而要实现插入、删除、修改和显示操作;要实现按人名或电话号码进行查询的功能,因而要提供查找操作;另外还应该提供键盘式选择菜单以实现功能选择。
2、总体设计
整个系统可以设计为数据插入模块、数据修改模块、数据删除模块、数据显示模块和数据查询模块。
3、详细设计
采用结构体数组。
Struct
{
Char name[20]; //人名
Char post[20]; //工作单位或学校
Int class; //类别,如1表示同学、2表示朋友、3表示同事等
Int tel; //固定电话
Int mobile1; //移动电话1
Int mobile2; //移动电话1
Char email[20]; //email地址

……………….. //根据实际需要增加内容
}TelInfo; //电话簿信息结构体
TelInfo telInfo[N]; //电话簿信息结构体数组
(1)数据插入模块
输入数据,然后采用追加方式写文件。
(2)数据修改模块
通过菜单选择修改姓名、电话号码。可以把要修改的姓名或电话号码存储在临时变量里面,然后读文件,找到要修改的记录,把该记录重新以新的值写入。
(3)数据删除模块
删除一条记录,则输入要删除的人名,然后读文件,把文件中读出来的记录的人名与待删除的人名比较,如果不匹配,则重新写入文件;否则舍弃不再写入文件。
(4)数据显示模块
采用分屏显示,每屏10条记录。读文件,输出结果。
(5)数据查询模块
用基本查找算法对电话簿实现按人名或电话号码的查询(读文件,把读出记录得相应字段与输入的查询字段比较),并把结果输出。
可根据需要增加其他功能
谢谢了 真的急求~~~
展开
 我来答
桐迎夏侯0KJ
2014-06-07 · 超过88用户采纳过TA的回答
知道答主
回答量:155
采纳率:100%
帮助的人:74.3万
展开全部
我这里有一个,你看看吧,满意的给分哦(在visual c++6.0上运行)
#include<stdlib.h>
#include<string.h> /*使用字符串函数*/
#include<conio.h> /*使用通过控制台进行数据输入和数据输出的函数*/
#include<stdio.h>
#include<dos.h> /*使用DOS函数*/

int i; /*定义一个全局变量i*/

struct addr /*定义通讯地址结构体*/
{ char post_num[10]; /*邮编*/
char addr[60]; /*家庭地址*/
};

struct birth /*定义出生年月结构体*/
{ int year; /*年份*/
int month; /*月份*/
int day; /*日期*/
};

struct record1 /*定义电子通讯录结构体*/
{ int number; /*序号*/
char name[20]; /*姓名*/
char sex; /*性别*/
struct birth birth; /*出生年月*/
struct addr addr; /*通信地址*/
char telephone[13]; /*联系电话*/
}records[50];

FILE *fp; /*定义指向file类型结构体的指针变量*/

void Data_Load() /*定义载入数据函数*/
{ int j;
long k;
fp=fopen("record.txt","r+t"); /*打开文件record.txt,进行读写*/
if(fp!=NULL) /*如果文件不为空*/
{ for(i=1;i<50;i++)
{ j=fgetc(fp); /*从"records.txt"文件读入整型数字*/
if(j==EOF) /*判断是否到了文件尾*/
return; /*如果到了结尾,返回*/
k=i-1;
fseek(fp,k*sizeof(struct record1),SEEK_SET); /*将位置指针移到record1结构体所含字节

的第k倍个字节处*/

fread(&records[i],sizeof(struct record1),1,fp); /*读取一条记录*/
}
}
else
{ fp=fopen("record.txt","w"); /*打开文件record.txt,只写*/
i=1;
}
}

void Data_Show(int j) /*定义显示数据函数*/
{
printf("\n\n\tNo:%3d\n",records[j].number); /*序号*/
printf("\n\tname:%2s\n",records[j].name); /*姓名*/
printf("\n\tbirthday (y/m/d):%4d%2d%2d", records[j].birth.year, records[j].birth.month,

records[j].birth.day); /*打印第j个成员的出生年月日*/
printf("\n\tpost code:%-10s",records[j].addr.post_num); /*邮编*/
printf("\n\taddress:%-40s",records[j].addr.addr); /*家庭地址*/
printf("\n\tphone%-13s",records[j].telephone); /*联系电话*/
}

void Data_Input(int j) /*定义添加数据函数*/
{
fflush(stdin); /*清空输入缓冲区*/
records[j].number=j;
printf("\n\n\n\tinputNo %d ",j);
printf("\n\tname:"); /*输入姓名*/
scanf("%s",records[j].name);
fflush(stdin); /*清空输入缓冲区*/
printf("\tsex(m/f):"); /*输入性别*/
scanf("%c",&records[j].sex);
printf("\t---birthday---"); /*输入出生年月*/
printf("\n\tyear:");
scanf("%d",&records[j].birth.year);
printf("\tmonth:");
scanf("%d",&records[j].birth.month);
printf("\tday:");
scanf("%d",&records[j].birth.day);
printf("\tpost code:"); /*输入邮编*/
scanf("%s",records[j].addr.post_num);
printf("\taddress:"); /*输入家庭地址*/
scanf("%s",records[j].addr.addr);
printf("\tphone:"); /*输入联系电话*/
scanf("%s",records[j].telephone);

}

void Data_Save() /*定义保存函数*/
{
int j;
fp=fopen("record.txt","w"); /*打开文件record.txt,只写*/
for(j=1;j<=i;j++)
{ fwrite(&records[j],sizeof(struct record1),1,fp); /*将结构体变量records的确定个数字节输

入到record.txt文件中,个数为结构体friend1所含字节数*/
}
}

void main() /*主函数*/
{
int j,k;
char ch;
char search_name[40]; /*定义字符串变量*/

Data_Load(); /*声明载入数据函数*/
i--;
do
{ printf("********************************* MENU ***************************************\n");
printf("------------------------! WELLCOME TO THE SYSTEM !------------------------------");
printf("\n*\tSelect Function: *");
printf("*\t1.Add New *");
printf("*\t2.View the data *");
printf("*\t3.Delete *");
printf("*\t4.Search *");
printf("*\t5.Insert *");
printf("*\t6.Save and quit *");
printf("*\t7.Quit *");
printf("\n******************************** MENU ****************************************\n");
printf("\tPlease choose the option you need:");
ch=getche(); /*输入字符*/
switch(ch)
{
case '1':
{ int p;
printf("\n\tPlease input the number of people you want to add:");
scanf("%d",&p);/*增加记录*/
printf("\tPlease press ENTER again");
while(getch()!=0x1b&&i<p)
{ i++;
Data_Input(i);
printf("Please press Enter again to continue\n");
}
if(i==p)printf("\n\tThe data is full\n");
} /*记录完后显示通讯录已满*/
break;

case '2': j=1; /*打印所有记录*/
while(getch()!=0x1b&&j<=i) Data_Show(j++); /*声明打印数据函数*/
if(j>i) printf("\n\tThe system is end\n"); /*显示记录末尾*/
break;

case '3': /*删除通讯录中的记录*/
if(i<1)
{ printf("\n\tno record\n"); /*显示无记录*/
break;
}
printf("\n\tplease input the number you want to delect:");
scanf("%d",&k);
printf("\tsucceed!\n");
for(j=k;j<i;j++) /*将删除位置后的元素顺序前移,即后一数据复制到前一位置,循环操作*/
{ strcpy(records[j].name,records[j+1].name);
records[j].sex=records[j+1].sex;
records[j].birth.year=records[j+1].birth.year;
records[j].birth.month=records[j+1].birth.month;
records[j].birth.day=records[j+1].birth.day;
strcpy(records[j].addr.post_num,records[j+1].addr.post_num);
strcpy(records[j].addr.addr,records[j+1].addr.addr);
strcpy(records[j].telephone,records[j+1].telephone);
}
i--; /*元素总数减1*/
break;
case '4': /*通讯录搜索功能*/
printf("\n\tPlease input the name:"); /*输入名字*/
scanf("%s", search_name); /*获得名字到指针型字符串变量*/
for(j=1;j<=i;j++)
{
if(strcmp(search_name,records[j].name)==0) /*比较字符串,即查看是否与记录中名字

相同*/
{ Data_Show(j);
printf("\n"); /*搜索成功,打印记录结束循环*/
break;
}
}
if(j>i) /*搜索失败*/
printf("\n\tNo Record "); /*显示无此记录*/
break;
case '5':
printf("\n\tInsert No:"); /*录入插入位置*/
scanf("%d",&k);
for(j=k+1;j<i;j++) /*将插入位置后的元素顺序后移,即将其复制到后一位置,循环操作*/
{ strcpy(records[j].name,records[j-1].name);
records[j].sex=records[j-1].sex;
records[j].birth.year=records[j-1].birth.year;
records[j].birth.month=records[j-1].birth.month;
records[j].birth.day=records[j-1].birth.day;
strcpy(records[j].addr.post_num,records[j-1].addr.post_num);
strcpy(records[j].addr.addr,records[j-1].addr.addr);
strcpy(records[j].telephone,records[j-1].telephone);
}
Data_Input(k); /*声明增加数据函数*/
i++;/*将记录数目加一*/
break;
case '6': Data_Save();
printf("\n"); /*声明保存函数*/
exit(0); break; /*保存后退出*/
case '7': printf("\n\tsave or not?:(y/n)");
ch=getch(); /*获得输入字符*/
if(ch=='y') Data_Save();
fclose(fp); /*关闭record.txt文件*/
exit(0); /*退出程序*/
default: printf("Please choose1-4\n"); /*输入的如果不是数字1-4,让其重新输入*/
}
}
while(1); /*每次都从第一个功能开始,循环操作*/
}
请采纳答案,支持我一下。
【纷享销客】—连接型CRM
2021-12-31 广告
好用的手机版客户管理系统就选纷享销客CRM,可以满足大中小不同规模企业的客户管理需求,实现从线索获取、销售管理、商机管理到订单回款等销售全流程数字化管理,实时分析,智能分析销售行为,优化销售流程,缩短销售周期,提升客户服务满意度,助力销售业... 点击进入详情页
本回答由【纷享销客】—连接型CRM提供
十王鞋370
2014-06-07 · TA获得超过133个赞
知道答主
回答量:110
采纳率:0%
帮助的人:104万
展开全部
我这里有一个,你看看吧,满意的给分哦(在visual c++6.0上运行)
#include<stdlib.h>
#include<string.h> /*使用字符串函数*/
#include<conio.h> /*使用通过控制台进行数据输入和数据输出的函数*/
#include<stdio.h>
#include<dos.h> /*使用DOS函数*/

int i; /*定义一个全局变量i*/

struct addr /*定义通讯地址结构体*/
{ char post_num[10]; /*邮编*/
char addr[60]; /*家庭地址*/
};

struct birth /*定义出生年月结构体*/
{ int year; /*年份*/
int month; /*月份*/
int day; /*日期*/
};

struct record1 /*定义电子通讯录结构体*/
{ int number; /*序号*/
char name[20]; /*姓名*/
char sex; /*性别*/
struct birth birth; /*出生年月*/
struct addr addr; /*通信地址*/
char telephone[13]; /*联系电话*/
}records[50];

FILE *fp; /*定义指向file类型结构体的指针变量*/

void Data_Load() /*定义载入数据函数*/
{ int j;
long k;
fp=fopen("record.txt","r+t"); /*打开文件record.txt,进行读写*/
if(fp!=NULL) /*如果文件不为空*/
{ for(i=1;i<50;i++)
{ j=fgetc(fp); /*从"records.txt"文件读入整型数字*/
if(j==EOF) /*判断是否到了文件尾*/
return; /*如果到了结尾,返回*/
k=i-1;
fseek(fp,k*sizeof(struct record1),SEEK_SET); /*将位置指针移到record1结构体所含字节

的第k倍个字节处*/

fread(&records[i],sizeof(struct record1),1,fp); /*读取一条记录*/
}
}
else
{ fp=fopen("record.txt","w"); /*打开文件record.txt,只写*/
i=1;
}
}

void Data_Show(int j) /*定义显示数据函数*/
{
printf("\n\n\tNo:%3d\n",records[j].number); /*序号*/
printf("\n\tname:%2s\n",records[j].name); /*姓名*/
printf("\n\tbirthday (y/m/d):%4d%2d%2d", records[j].birth.year, records[j].birth.month,

records[j].birth.day); /*打印第j个成员的出生年月日*/
printf("\n\tpost code:%-10s",records[j].addr.post_num); /*邮编*/
printf("\n\taddress:%-40s",records[j].addr.addr); /*家庭地址*/
printf("\n\tphone%-13s",records[j].telephone); /*联系电话*/
}

void Data_Input(int j) /*定义添加数据函数*/
{
fflush(stdin); /*清空输入缓冲区*/
records[j].number=j;
printf("\n\n\n\tinputNo %d ",j);
printf("\n\tname:"); /*输入姓名*/
scanf("%s",records[j].name);
fflush(stdin); /*清空输入缓冲区*/
printf("\tsex(m/f):"); /*输入性别*/
scanf("%c",&records[j].sex);
printf("\t---birthday---"); /*输入出生年月*/
printf("\n\tyear:");
scanf("%d",&records[j].birth.year);
printf("\tmonth:");
scanf("%d",&records[j].birth.month);
printf("\tday:");
scanf("%d",&records[j].birth.day);
printf("\tpost code:"); /*输入邮编*/
scanf("%s",records[j].addr.post_num);
printf("\taddress:"); /*输入家庭地址*/
scanf("%s",records[j].addr.addr);
printf("\tphone:"); /*输入联系电话*/
scanf("%s",records[j].telephone);

}

void Data_Save() /*定义保存函数*/
{
int j;
fp=fopen("record.txt","w"); /*打开文件record.txt,只写*/
for(j=1;j<=i;j++)
{ fwrite(&records[j],sizeof(struct record1),1,fp); /*将结构体变量records的确定个数字节输

入到record.txt文件中,个数为结构体friend1所含字节数*/
}
}

void main() /*主函数*/
{
int j,k;
char ch;
char search_name[40]; /*定义字符串变量*/

Data_Load(); /*声明载入数据函数*/
i--;
do
{ printf("********************************* MENU ***************************************\n");
printf("------------------------! WELLCOME TO THE SYSTEM !------------------------------");
printf("\n*\tSelect Function: *");
printf("*\t1.Add New *");
printf("*\t2.View the data *");
printf("*\t3.Delete *");
printf("*\t4.Search *");
printf("*\t5.Insert *");
printf("*\t6.Save and quit *");
printf("*\t7.Quit *");
printf("\n******************************** MENU ****************************************\n");
printf("\tPlease choose the option you need:");
ch=getche(); /*输入字符*/
switch(ch)
{
case '1':
{ int p;
printf("\n\tPlease input the number of people you want to add:");
scanf("%d",&p);/*增加记录*/
printf("\tPlease press ENTER again");
while(getch()!=0x1b&&i<p)
{ i++;
Data_Input(i);
printf("Please press Enter again to continue\n");
}
if(i==p)printf("\n\tThe data is full\n");
} /*记录完后显示通讯录已满*/
break;

case '2': j=1; /*打印所有记录*/
while(getch()!=0x1b&&j<=i) Data_Show(j++); /*声明打印数据函数*/
if(j>i) printf("\n\tThe system is end\n"); /*显示记录末尾*/
break;

case '3': /*删除通讯录中的记录*/
if(i<1)
{ printf("\n\tno record\n"); /*显示无记录*/
break;
}
printf("\n\tplease input the number you want to delect:");
scanf("%d",&k);
printf("\tsucceed!\n");
for(j=k;j<i;j++) /*将删除位置后的元素顺序前移,即后一数据复制到前一位置,循环操作*/
{ strcpy(records[j].name,records[j+1].name);
records[j].sex=records[j+1].sex;
records[j].birth.year=records[j+1].birth.year;
records[j].birth.month=records[j+1].birth.month;
records[j].birth.day=records[j+1].birth.day;
strcpy(records[j].addr.post_num,records[j+1].addr.post_num);
strcpy(records[j].addr.addr,records[j+1].addr.addr);
strcpy(records[j].telephone,records[j+1].telephone);
}
i--; /*元素总数减1*/
break;
case '4': /*通讯录搜索功能*/
printf("\n\tPlease input the name:"); /*输入名字*/
scanf("%s", search_name); /*获得名字到指针型字符串变量*/
for(j=1;j<=i;j++)
{
if(strcmp(search_name,records[j].name)==0) /*比较字符串,即查看是否与记录中名字

相同*/
{ Data_Show(j);
printf("\n"); /*搜索成功,打印记录结束循环*/
break;
}
}
if(j>i) /*搜索失败*/
printf("\n\tNo Record "); /*显示无此记录*/
break;
case '5':
printf("\n\tInsert No:"); /*录入插入位置*/
scanf("%d",&k);
for(j=k+1;j<i;j++) /*将插入位置后的元素顺序后移,即将其复制到后一位置,循环操作*/
{ strcpy(records[j].name,records[j-1].name);
records[j].sex=records[j-1].sex;
records[j].birth.year=records[j-1].birth.year;
records[j].birth.month=records[j-1].birth.month;
records[j].birth.day=records[j-1].birth.day;
strcpy(records[j].addr.post_num,records[j-1].addr.post_num);
strcpy(records[j].addr.addr,records[j-1].addr.addr);
strcpy(records[j].telephone,records[j-1].telephone);
}
Data_Input(k); /*声明增加数据函数*/
i++;/*将记录数目加一*/
break;
case '6': Data_Save();
printf("\n"); /*声明保存函数*/
exit(0); break; /*保存后退出*/
case '7': printf("\n\tsave or not?:(y/n)");
ch=getch(); /*获得输入字符*/
if(ch=='y') Data_Save();
fclose(fp); /*关闭record.txt文件*/
exit(0); /*退出程序*/
default: printf("Please choose1-4\n"); /*输入的如果不是数字1-4,让其重新输入*/
}
}
while(1); /*每次都从第一个功能开始,循环操作*/
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风情DD0jf
2014-06-07 · 超过53用户采纳过TA的回答
知道答主
回答量:113
采纳率:0%
帮助的人:52.4万
展开全部
我这里有一个,你看看吧,满意的给分哦(在visual c++6.0上运行)
#include<stdlib.h>
#include<string.h> /*使用字符串函数*/
#include<conio.h> /*使用通过控制台进行数据输入和数据输出的函数*/
#include<stdio.h>
#include<dos.h> /*使用DOS函数*/

int i; /*定义一个全局变量i*/

struct addr /*定义通讯地址结构体*/
{ char post_num[10]; /*邮编*/
char addr[60]; /*家庭地址*/
};

struct birth /*定义出生年月结构体*/
{ int year; /*年份*/
int month; /*月份*/
int day; /*日期*/
};

struct record1 /*定义电子通讯录结构体*/
{ int number; /*序号*/
char name[20]; /*姓名*/
char sex; /*性别*/
struct birth birth; /*出生年月*/
struct addr addr; /*通信地址*/
char telephone[13]; /*联系电话*/
}records[50];

FILE *fp; /*定义指向file类型结构体的指针变量*/

void Data_Load() /*定义载入数据函数*/
{ int j;
long k;
fp=fopen("record.txt","r+t"); /*打开文件record.txt,进行读写*/
if(fp!=NULL) /*如果文件不为空*/
{ for(i=1;i<50;i++)
{ j=fgetc(fp); /*从"records.txt"文件读入整型数字*/
if(j==EOF) /*判断是否到了文件尾*/
return; /*如果到了结尾,返回*/
k=i-1;
fseek(fp,k*sizeof(struct record1),SEEK_SET); /*将位置指针移到record1结构体所含字节

的第k倍个字节处*/

fread(&records[i],sizeof(struct record1),1,fp); /*读取一条记录*/
}
}
else
{ fp=fopen("record.txt","w"); /*打开文件record.txt,只写*/
i=1;
}
}

void Data_Show(int j) /*定义显示数据函数*/
{
printf("\n\n\tNo:%3d\n",records[j].number); /*序号*/
printf("\n\tname:%2s\n",records[j].name); /*姓名*/
printf("\n\tbirthday (y/m/d):%4d%2d%2d", records[j].birth.year, records[j].birth.month,

records[j].birth.day); /*打印第j个成员的出生年月日*/
printf("\n\tpost code:%-10s",records[j].addr.post_num); /*邮编*/
printf("\n\taddress:%-40s",records[j].addr.addr); /*家庭地址*/
printf("\n\tphone%-13s",records[j].telephone); /*联系电话*/
}

void Data_Input(int j) /*定义添加数据函数*/
{
fflush(stdin); /*清空输入缓冲区*/
records[j].number=j;
printf("\n\n\n\tinputNo %d ",j);
printf("\n\tname:"); /*输入姓名*/
scanf("%s",records[j].name);
fflush(stdin); /*清空输入缓冲区*/
printf("\tsex(m/f):"); /*输入性别*/
scanf("%c",&records[j].sex);
printf("\t---birthday---"); /*输入出生年月*/
printf("\n\tyear:");
scanf("%d",&records[j].birth.year);
printf("\tmonth:");
scanf("%d",&records[j].birth.month);
printf("\tday:");
scanf("%d",&records[j].birth.day);
printf("\tpost code:"); /*输入邮编*/
scanf("%s",records[j].addr.post_num);
printf("\taddress:"); /*输入家庭地址*/
scanf("%s",records[j].addr.addr);
printf("\tphone:"); /*输入联系电话*/
scanf("%s",records[j].telephone);

}

void Data_Save() /*定义保存函数*/
{
int j;
fp=fopen("record.txt","w"); /*打开文件record.txt,只写*/
for(j=1;j<=i;j++)
{ fwrite(&records[j],sizeof(struct record1),1,fp); /*将结构体变量records的确定个数字节输

入到record.txt文件中,个数为结构体friend1所含字节数*/
}
}

void main() /*主函数*/
{
int j,k;
char ch;
char search_name[40]; /*定义字符串变量*/

Data_Load(); /*声明载入数据函数*/
i--;
do
{ printf("********************************* MENU ***************************************\n");
printf("------------------------! WELLCOME TO THE SYSTEM !------------------------------");
printf("\n*\tSelect Function: *");
printf("*\t1.Add New *");
printf("*\t2.View the data *");
printf("*\t3.Delete *");
printf("*\t4.Search *");
printf("*\t5.Insert *");
printf("*\t6.Save and quit *");
printf("*\t7.Quit *");
printf("\n******************************** MENU ****************************************\n");
printf("\tPlease choose the option you need:");
ch=getche(); /*输入字符*/
switch(ch)
{
case '1':
{ int p;
printf("\n\tPlease input the number of people you want to add:");
scanf("%d",&p);/*增加记录*/
printf("\tPlease press ENTER again");
while(getch()!=0x1b&&i<p)
{ i++;
Data_Input(i);
printf("Please press Enter again to continue\n");
}
if(i==p)printf("\n\tThe data is full\n");
} /*记录完后显示通讯录已满*/
break;

case '2': j=1; /*打印所有记录*/
while(getch()!=0x1b&&j<=i) Data_Show(j++); /*声明打印数据函数*/
if(j>i) printf("\n\tThe system is end\n"); /*显示记录末尾*/
break;

case '3': /*删除通讯录中的记录*/
if(i<1)
{ printf("\n\tno record\n"); /*显示无记录*/
break;
}
printf("\n\tplease input the number you want to delect:");
scanf("%d",&k);
printf("\tsucceed!\n");
for(j=k;j<i;j++) /*将删除位置后的元素顺序前移,即后一数据复制到前一位置,循环操作*/
{ strcpy(records[j].name,records[j+1].name);
records[j].sex=records[j+1].sex;
records[j].birth.year=records[j+1].birth.year;
records[j].birth.month=records[j+1].birth.month;
records[j].birth.day=records[j+1].birth.day;
strcpy(records[j].addr.post_num,records[j+1].addr.post_num);
strcpy(records[j].addr.addr,records[j+1].addr.addr);
strcpy(records[j].telephone,records[j+1].telephone);
}
i--; /*元素总数减1*/
break;
case '4': /*通讯录搜索功能*/
printf("\n\tPlease input the name:"); /*输入名字*/
scanf("%s", search_name); /*获得名字到指针型字符串变量*/
for(j=1;j<=i;j++)
{
if(strcmp(search_name,records[j].name)==0) /*比较字符串,即查看是否与记录中名字

相同*/
{ Data_Show(j);
printf("\n"); /*搜索成功,打印记录结束循环*/
break;
}
}
if(j>i) /*搜索失败*/
printf("\n\tNo Record "); /*显示无此记录*/
break;
case '5':
printf("\n\tInsert No:"); /*录入插入位置*/
scanf("%d",&k);
for(j=k+1;j<i;j++) /*将插入位置后的元素顺序后移,即将其复制到后一位置,循环操作*/
{ strcpy(records[j].name,records[j-1].name);
records[j].sex=records[j-1].sex;
records[j].birth.year=records[j-1].birth.year;
records[j].birth.month=records[j-1].birth.month;
records[j].birth.day=records[j-1].birth.day;
strcpy(records[j].addr.post_num,records[j-1].addr.post_num);
strcpy(records[j].addr.addr,records[j-1].addr.addr);
strcpy(records[j].telephone,records[j-1].telephone);
}
Data_Input(k); /*声明增加数据函数*/
i++;/*将记录数目加一*/
break;
case '6': Data_Save();
printf("\n"); /*声明保存函数*/
exit(0); break; /*保存后退出*/
case '7': printf("\n\tsave or not?:(y/n)");
ch=getch(); /*获得输入字符*/
if(ch=='y') Data_Save();
fclose(fp); /*关闭record.txt文件*/
exit(0); /*退出程序*/
default: printf("Please choose1-4\n"); /*输入的如果不是数字1-4,让其重新输入*/
}
}
while(1); /*每次都从第一个功能开始,循环操作*/
}
请采纳答案,支持我一下。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式