好友信息管理C代码Word文档格式.docx

上传人:b****6 文档编号:21385182 上传时间:2023-01-30 格式:DOCX 页数:20 大小:19.72KB
下载 相关 举报
好友信息管理C代码Word文档格式.docx_第1页
第1页 / 共20页
好友信息管理C代码Word文档格式.docx_第2页
第2页 / 共20页
好友信息管理C代码Word文档格式.docx_第3页
第3页 / 共20页
好友信息管理C代码Word文档格式.docx_第4页
第4页 / 共20页
好友信息管理C代码Word文档格式.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

好友信息管理C代码Word文档格式.docx

《好友信息管理C代码Word文档格式.docx》由会员分享,可在线阅读,更多相关《好友信息管理C代码Word文档格式.docx(20页珍藏版)》请在冰豆网上搜索。

好友信息管理C代码Word文档格式.docx

/*电话号码*/

charaddress[20];

/*地址*/

}TELEBOOK;

voidmenu()/*主菜单*/

system("

cls"

);

/*调用DOS命令,清屏.与clrscr()功能相同*/

textcolor(13);

/*在文本模式中选择新的字符颜色*/

gotoxy(10,5);

/*在文本窗口中设置光标*/

cprintf("

Thetelephone-bookManagementSystem\n"

gotoxy(10,8);

*************************Menu********************************\n"

gotoxy(10,9);

*1inputrecord2displayrecord*\n"

gotoxy(10,10);

*3deleterecord4searchrecord*\n"

gotoxy(10,11);

*5modifyrecord6insertrecord*\n"

gotoxy(10,12);

*7sortrecord8saverecord*\n"

gotoxy(10,13);

*0quitsystem*\n"

gotoxy(10,14);

*************************************************************\n"

/*cprintf()送格式化输出至文本窗口屏幕中*/

}

/*格式化输出表头*/

voidprintheader()

printf(HEADER1);

printf(HEADER2);

printf(HEADER3);

/*格式化输出表中数据*/

voidprintdata(TELEBOOKpp)

TELEBOOK*p;

p=&

pp;

printf(FORMAT,DATA);

/*显示数组temp[]中存储的电话簿记录,内容为telebook结构中定义的内容*/

voidDisp(TELEBOOKtemp[],intn)

inti;

if(n==0)/*表示没有电话簿记录*/

printf("

\n=====>

Nottelephonerecord!

\n"

getchar();

return;

printf("

\n\n"

printheader();

/*输出表格头部*/

i=0;

while(i<

n)/*逐条输出数组中存储的电话簿记录*/

printdata(temp[i]);

i++;

getchar();

voidWrong()/*输出按键错误信息*/

\n\n\n\n\n***********Error:

inputhaswrong!

pressanykeytocontinue**********\n"

voidNofind()/*输出未查找此记录的信息*/

Notfindthistelephonerecord!

/*************************************************************

作用:

用于定位数组中符合要求的记录,并返回保存该记录的数组元素下标值

参数:

findmess[]保存要查找的具体内容;

nameorphonenum[]保存按什么在数组中查找;

**************************************************************/

intLocate(TELEBOOKtemp[],intn,charfindmess[],charnameorphonenum[])

inti=0;

if(strcmp(nameorphonenum,"

phonenum"

)==0)/*按电话号码查询*/

while(i<

n)

{

if(strcmp(temp[i].phonenum,findmess)==0)/*若找到findmess值的电话号码*/

returni;

}

elseif(strcmp(nameorphonenum,"

name"

)==0)/*按姓名查询*/

if(strcmp(temp[i].name,findmess)==0)/*若找到findmess值的姓名*/

return-1;

/*若未找到,返回一个整数-1*/

/*输入字符串,并进行长度验证(长度<

lens)*/

voidstringinput(char*t,intlens,char*notice)

charn[255];

do{

printf(notice);

/*显示提示信息*/

scanf("

%s"

n);

/*输入字符串*/

if(strlen(n)>

lens)printf("

\nexceedtherequiredlength!

\n"

/*进行长度校验,超过lens值重新输入*/

}while(strlen(n)>

lens);

strcpy(t,n);

/*将输入的字符串拷贝到字符串t中*/

/*增加电话簿记录*/

intAdd(TELEBOOKtemp[],intn)

charch,num[10];

inti,flag=0;

system("

Disp(temp,n);

/*先打印出已有的电话簿信息*/

while

(1)/*一次可输入多条记录,直至输入编号为0的记录才结束添加操作*/

while

(1)/*输入记录编号,保证该编号没有被使用,若输入编号为0,则退出添加记录操作*/

stringinput(num,10,"

inputnumber(press'

0'

returnmenu):

"

/*格式化输入编号并检验*/

flag=0;

if(strcmp(num,"

0"

)==0)/*输入为0,则退出添加操作,返回主界面*/

{returnn;

i=0;

n)/*查询该编号是否已经存在,若存在则要求重新输入一个未被占用的编号*/

if(strcmp(temp[i].num,num)==0)

flag=1;

break;

if(flag==1)/*提示用户是否重新输入*/

{getchar();

==>

Thenumber%sisexisting,tryagain?

(y/n):

num);

%c"

&

ch);

if(ch=='

y'

||ch=='

Y'

continue;

else

returnn;

{break;

strcpy(temp[n].num,num);

/*将字符串num拷贝到temp[n].num中*/

stringinput(temp[n].name,15,"

Name:

stringinput(temp[n].phonenum,15,"

Telephone:

stringinput(temp[n].address,15,"

Adress:

saveflag=1;

n++;

/*按编号或姓名,查询电话簿记录*/

voidQur(TELEBOOKtemp[],intn)

intselect;

/*1:

按姓名查,2:

按电话号码查,其他:

返回主界面(菜单)*/

charsearchinput[20];

/*保存用户输入的查询内容*/

intp=0;

if(n<

=0)/*若数组为空*/

Notelephonerecord!

\n=====>

1Searchbyname=====>

2Searchbytelephonenumber\n"

pleasechoice[1,2]:

scanf("

%d"

select);

if(select==1)/*按姓名查询*/

stringinput(searchinput,10,"

inputtheexistingname:

p=Locate(temp,n,searchinput,"

/*在数组temp中查找编号为searchinput值的元素,并返回该数组元素的下标值*/

if(p!

=-1)/*若找到该记录*/

printheader();

printdata(temp[p]);

printf(END);

pressanykeytoreturn"

Nofind();

elseif(select==2)/*按电话号码查询*/

stringinput(searchinput,15,"

inputtheexistingtelephonenumber:

=-1)

else

Wrong();

/*删除电话簿记录:

先找到保存该记录的数组元素的下标值,然后在数组中删除该数组元素*/

intDel(TELEBOOKtemp[],intn)

intsel;

charfindmess[20];

intp=0,i=0;

=0)

{system("

Disp(temp,n);

1Deletebyname=====>

2Deletebytelephonenumber\n"

sel);

if(sel==1)

stringinput(findmess,10,"

p=Locate(temp,n,findmess,"

for(i=p+1;

i<

n;

i++)/*删除此记录,后面记录向前移*/

{

strcpy(temp[i-1].num,temp[i].num);

strcpy(temp[i-1].name,temp[i].name);

strcpy(temp[i-1].phonenum,temp[i].phonenum);

strcpy(temp[i-1].address,temp[i].address);

\n==>

deletesuccess!

n--;

elseif(sel==2)/*先按电话号码查询到该记录所在的数组元素的下标值*/

stringinput(findmess,15,"

/*修改电话簿记录。

先按输入的联系人姓名查询到该记录,

然后提示用户修改该记录编号之外的值,编号不能修改*/

voidModify(TELEBOOKtemp[],intn)

Notelephonenumberrecord!

return;

modifytelephonebookrecorder"

stringinput(findmess,10,"

/*输入并检验该姓名*/

p=Locate(temp,n,findmess,"

/*查询到该数组元素,并返回下标值*/

if(p!

=-1)/*若p!

=-1,表明已经找到该数组元素*/

Number:

%s,\n"

temp[p].num);

%s,"

temp[p].name);

stringinput(temp[p].name,15,"

inputnewname:

temp[p].phonenum);

stringinput(temp[p].phonenum,15,"

inputnewtelephone:

temp[p].address);

stringinput(temp[p].address,30,"

inputnewaddress:

modifysuccess!

{Nofind();

return;

/*插入记录:

按编号查询到要插入的数组元素的位置,然后在该记录编号之后插入一个新数组元素。

*/

intInsert(TELEBOOKtemp[],intn)

charch,num[10],s[10];

/*s[]保存插入点位置之前的记录编号,num[]保存输入的新记录的编号*/

TELEBOOKnewinfo;

intflag=0,i=0,kkk=0;

while

(1)

{stringinput(s,10,"

pleaseinputinsertlocationaftertheNumber:

n)/*查询该编号是否存在,flag=1表示该编号存在*/

if(strcmp(temp[i].num,s)==0){kkk=i;

flag=1;

break;

if(flag==1)

/*若编号存在,则进行插入之前的新记录输入操作*/

Thenumber%sisnotexisting,tryagain?

s);

{continue;

/*以下新记录的输入操作与Add()相同*/

{stringinput(num,10,"

inputnewNumber:

flag=0;

if(strcmp(temp[i].num,num)==0){flag=1;

Sorry,Thenumber%sisexisting,tryagain?

strcpy(newinfo.num,num);

/*将字符串num拷贝到newinfo.num中*/

stringinput(newinfo.name,15,"

stringinput(newinfo.phonenum,15,"

stringinput(newinfo.address,15,"

/*在main()有对该全局变量的判断,若为1,则进行存盘操作*/

for(i=n-1;

i>

kkk;

i--)/*从最后一个组织元素开始往向移一个元素位置*/

strcpy(temp[i+1].num,temp[i].num);

strcpy(temp[i+1].name,temp[i].name);

strcpy(temp[i+1].phonenum,temp[i].phonenum);

strcpy(temp[i+1].address,temp[i].address);

strcpy(temp[kkk+1].num,newinfo.num);

/*在kkk的元素位置后插入新记录*/

strcpy(temp[kkk+1].name,newinfo.name);

strcpy(temp[kkk+1].phonenum,newinfo.phonenum);

strcpy(temp[kkk+1].address,newinfo.address);

/*利用选择排序法实现数组的按记录编号或姓名的升序排序*/

voidSelectSort(TELEBOOKtemp[],intn)

inti=0,j=0,flag=0,indexmin,select;

charcharflag[10];

TELEBOOKnewinfo;

/*显示排序前的所有记录*/

==>

1SORTBYNUMBER==>

2SORTBYNAME\n"

if(select==1)/*按记录编号排序*/

for(i=0;

n-1;

i++)

flag=32767;

indexmin=0;

for(j=i;

j<

j++)

{if(atoi(temp[j].num)<

flag)

{flag=atoi(temp[j].num);

indexmin=j;

strcpy(newinfo.nu

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1