c语言电话簿课程设计(c语言课程设计电话簿管理系统报告)

今天给各位分享c语言电话簿课程设计的知识,其中也会对c语言课程设计电话簿管理系统报告进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

1、c语言 电话簿管理系统2、用C语言编写一个手机电话本程序3、C语言课程设计 电话薄管理系统 加一个更新数据4、c语言课程设计—学生通讯录管理系统设计 设计一个学生通信录,学生通5、课程设计 c++ 关于模板实现电话簿管理 急急急啊,求助各位大哥啦6、C语言课程设计—电话薄管理(C语言高手进)

c语言 电话簿管理系统

#includestdio.h

#includestdlib.h

#includestring.h

#include iostream

//主函数

int main()

{

LinkQueue Q;

initAddressBook(Q);

int flag=0;

while(flag!=8)

{

printf(“※※※※※主※※※※※菜※※※※※单※※※※※\n”);

printf(“※1、增加联系人 2、删除联系人 ※\n”);

printf(“※3、修改联系人 4、清空通讯录 ※\n”);

printf(“※5、查找联系人 6、按组显示 ※\n”);

printf(“※7、显示全部联系人 8、退出 ※\n”);

printf(“※※※※※※※※※※※※※※※※※※※※※※※\n”);

printf(“请输入编号(1-8):\n”);

scanf(“%d”,flag);

if(flag1||flag8)

{

printf(“输入错误请重新输入!\n”);

continue;

}

else

{

switch(flag){

case 1:

if(enAddressBook(Q))

printf(“增加联系人成功!\n”);

else

printf(“增加联系人失败!\n”);

break;

case 2:

if(delPerson(Q))

printf(“删除联系人成功!\n”);

else

printf(“联系人删除失败!\n”);

break;

case 3:

if(update(Q))

printf(“修改联系人成功!\n”);

else

printf(“修改联系人失败!\n”);

break;

case 4:

if(clearAddressBook(Q))

printf(“通讯录已清空!\n”);

else

printf(“通讯录清空失败!\n”);

break;

case 5:

findByName(Q);

break;

case 6:

findByGroup(Q);

break;

case 7:

disAll(Q);

break;

case 8:

system(“cls”);

break;

}

}

}

printf(“※※※※※感谢您使用本系统!※※※※※※\n”);

return 0;

}

//初始化通讯录

void initAddressBook(LinkQueue Q)

{

Q.front=Q.rear=(QNode *)malloc(sizeof(QNode));

if(!Q.front)

exit(1);

else

Q.front-next=NULL;

}

//清空通讯录

bool clearAddressBook(LinkQueue Q)

{

system(“cls”);

while(addressBookLength(Q)!=0)

{

QNode *p;

p=Q.front-next;

Q.front-next=p-next;

if(p==Q.rear)

Q.rear=Q.front;

free(p);

}

return true;

}

//通讯录当前人数

int addressBookLength(LinkQueue Q)

{

int i=0;

QNode *p;

p=Q.front;

if(Q.front==Q.rear)

i=0;

else

{

while(p!=Q.rear)

{

p=p-next;

i++;

}

}

return i;

}

//删除联系人

bool delPerson(LinkQueue Q)

{

char _name[20];

system(“cls”);

printf(“请输入要删除的联系人的姓名:\n”);

scanf(“%s”,_name);

QNode *p,*q;

if(Q.front==Q.rear)

{

printf(“通讯录为空!\n”);

return false;

}

else

{

p=Q.front;

q=Q.front-next;

while(q!=Q.rear){

if(strcmp(q-name,_name)==0)

{

p-next=q-next;

free(q);//删除节点

return true;

}

else

{

p=p-next;

q=q-next;

}

}

if((strcmp(q-name,_name)==0))

{

free(q);

Q.front=Q.rear;

return true;

}

else

{

printf(“无此联系人!\n”);

return false;

}

}

}

//查找联系人

bool findByName(LinkQueue Q)

{

system(“cls”);

if(Q.front==Q.rear)

{

printf(“手机中无联系人!\n”);

return false;

}

else

{

char _name[20];

printf(“请输入要查询的联系人姓名:\n”);

scanf(“%s”,_name);

QNode *p;

p=Q.front-next;

while(p-next!=NULL)

{

if(strcmp(p-name,_name)==0)

{

printf(“姓名:%s 号码:%s 分组:%s\n”,p-name,p-tel,p-group);

return true;

}

p=p-next;

}

if(strcmp(p-name,_name)==0){

printf(“姓名:%s 号码:%s 分组:%s\n”,p-name,p-tel,p-group);

return true;

}

else

{

printf(“查无此人!\n”);

return false;

}

}

}

//按组显示联系人

bool findByGroup(LinkQueue Q)

{

system(“cls”);

if(Q.front==Q.rear)

{

printf(“手机中无联系人!\n”);

return false;

}

else

{

char _group[20];

printf(“请输入要查询的分组:\n”);

scanf(“%s”,_group);

QNode *p;

p=Q.front-next;

while(p-next!=NULL)

{

if(strcmp(p-group,_group)==0)

{

printf(“姓名:%s 号码:%s \n”,p-name,p-tel);

}

p=p-next;

}

if(strcmp(p-group,_group)==0){

printf(“姓名:%s 号码:%s \n”,p-name,p-tel);

return true;

}

else

{

printf(“无此分组!\n”);

return false;

}

}

}

//增加联系人

bool enAddressBook(LinkQueue Q)

{

system(“cls”);

QNode *p;

p=(QNode *)malloc(sizeof(QNode));

if(!p)

return false;

else

{

printf(“请输入联系人姓名:\n”);

scanf(“%s”,p-name);

printf(“请输入联系人号码:\n”);

scanf(“%s”,p-tel);

printf(“请输入联系人分组:\n”);

scanf(“%s”,p-group);

if(Q.front-next==NULL)

{

Q.front-next=p;

Q.rear=p;

Q.rear-next=NULL;

}

else

{

p-next=NULL;

Q.rear-next=p;

Q.rear=p;

}

return true;

}

}

//修改联系人

bool update(LinkQueue Q)

{

system(“cls”);

if(Q.front==Q.rear)

{

printf(“手机中无联系人!\n”);

return false;

}

else

{

char _name[20];

printf(“请输入要修改的联系人姓名:\n”);

scanf(“%s”,_name);

QNode *p;

p=Q.front-next;

while(p-next!=NULL)

{

if(strcmp(p-name,_name)==0)

{

printf(“请输入新联系人姓名:\n”);

scanf(“%s”,p-name);

printf(“请输入新联系人号码:\n”);

scanf(“%s”,p-tel);

printf(“请输入新联系人分组:\n”);

scanf(“%s”,p-group);

return true;

}

p=p-next;

}

if(strcmp(p-name,_name)==0){

printf(“请输入新联系人姓名:\n”);

scanf(“%s”,p-name);

printf(“请输入新联系人号码:\n”);

scanf(“%s”,p-tel);

printf(“请输入新联系人分组:\n”);

scanf(“%s”,p-group);

return true;

}

else

{

printf(“查无此人!\n”);

return false;

}

}

}

//显示所有联系人

void disAll(LinkQueue Q)

{

system(“cls”);

int i=0;

QNode *p;

p=Q.front-next;

if(Q.front==Q.rear)

printf(“无联系人!\n”);

else

{

printf(” 姓名 号码 分组\n”);

while(p!=NULL){

printf(“%15s %15s %15s\n”,p-name,p-tel,p-group);

p=p-next;

}

}

}

用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] = ; void input(CON * s, int mask) { if(mask BNAME) if(mask BUNIT) if(mask BTELE) if(mask BMAIL) }/*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语言课程设计 电话薄管理系统 加一个更新数据

#includestdio.h

#includestdlib.h

#includestring.h

#includeconio.h

struct record

{

char name[20]; //姓名

char phone[12]; //电话

char address[50]; //家庭地址

char group[8]; //分组信息

}student[100]; //假设最大数为100.

//定义全局变量num,表示已经输入的人数 。

int num; //这里使用数组解决通讯录的问题,实际上使用链表更好。

int menu_select()

{

char s[80];

int a;/*定义整形变量*/

system(“cls”);

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. Quit\n”);

printf(“\t\t***********************************************\n\n”);

do{

printf(“Enter you choice(1~7):”);

scanf(“%s”,s);

a=atoi(s);

}

while (a1 || 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].address);

printf(“\t\t\t输入分组信息:\n”);

scanf(“%s”,student[num].group);

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].address);

printf(“\t\t\t分组:%s\n”,student[i].group);

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].address);

printf(“\t\t\t分组: %s”,student[i].group);

printf(“\t\t\t************************************************\n”);

mark++;

if((i+1)num)

{

printf(“\t\t\t是否继续查找相同名字的用户信息:(y/n)\n”);

if(getch()==’y’ || getch()==’Y’)

{

continue;

}

else

return(0);

}

else

{

printf(“\t\t\t按任意键返回主菜单”);

getch();

return(0);

}

}

}

if(mark == 0)

{

printf(“\t\t\t没有相同姓名的用户纪录\n”);

printf(“\t\t\t按任意键返回主菜单\n”);

getch();

return(0);

}

return 0;

}

int searchbyphone()

{

int mark=0;

int i;

printf(“\t\t\t****************** 按电话查找 ******************\n”);

char phone[10];

printf(“\t\t\t请输入电话号码:\n”);

scanf(“%s”,phone);

for(i=0;inum;i++)

{

if (strcmp(student[i].phone,phone)==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].address);

printf(“\t\t\t分组: %s”,student[i].group);

printf(“\t\t\t************************************************\n”);

printf(“\t\t\t按任意键返回主菜单\n”);

mark++;

getch();

return(0);

}

}

if (mark==0)

{

printf(“\t\t\t没有改用户的信息\n”);

printf(“\t\t\t按任意键返回主菜单\n”);

getch();

return(0);

}

return(0);

}

void deletebyphone()

{

int i,j;

int deletemark=0;

char phone[20];

printf(“\t\t\t请输入要删除用户电话号码:\n”);

scanf(“%s”,phone);

if(num==0)

{

printf(“\t\t\t对不起,文件中无任何纪录\n”);

printf(“\t\t\t按任意键返回主菜单\n”);

getch();

return;

}

for (i=0;inum;i++)

{

if (strcmp(student[i].phone,phone)==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].address);

printf(“\t\t\t分组: %s”,student[i].group);

printf(“\t\t\t是否删除?(y/n)”);

if (getch()==’y’ || getch()==’Y’)

{

for (j=i;jnum-1;j++)

student[j]=student[j+1];

num–;

deletemark++;

printf(“\t\t\t删除成功”);

printf(“\t\t\t是否继续删除?(y/n)”);

if (getch()==’y’ || getch()==’Y’)

deletebyphone();

return;

}

else

return;

}

continue;

}

if (deletemark==0)

{

printf(“\t\t\t没有该用户的纪录”);

printf(“\t\t\t是否继续删除?(y/n)”);

if(getch()==’y’ || getch()==’Y’)

deletebyphone();

return;

}

return;

}

void deletebyname()

{

int a=0;

int findmark=0;

int j;

int deletemark=0;

int i;

char name[20];

printf(“\t\t\t请输入要删除用户姓名:\n”);

scanf(“%s”,name);

for (i=a;inum;i++)

{

if(strcmp(student[i].name,name)==0)

{

printf(“\t\t\t以下是您要删除的用户纪录:”);

findmark++;

printf(“\t\t\t________________________________”);

printf(“\t\t\t姓名: %s”,student[i].name);

printf(“\t\t\t电话: %s”,student[i].phone);

printf(“\t\t\t地址: %s”,student[i].address);

printf(“\t\t\t分组: %s”,student[i].group);

printf(“\t\t\t________________________________”);

printf(“\t\t\t是否删除?(y/n)”);

if (getch()==’y’ || getch() == ‘Y’)

{

for(j=i;jnum-1;j++)

student[j]=student[j+1];

num–;

deletemark++;

printf(“\t\t\t删除成功”);

if((i+1)num)

{

printf(“\t\t\t是否继续删除相同姓名的用户信息?(y/n)”);

if (getch()==’y’)

{

a=i;

continue;

}

}

printf(“\t\t\t是否继续删除?(y/n)”);

if (getch()==’y’)

deletebyname();

return;

}

if((i+1)num)

{

printf(“\t\t\t是否继续删除相同姓名的用户信息?(y/n)”);

if (getch()==’y’ || getch() == ‘Y’)

{

a=i;

continue;

}

}

}

else

continue;

}

if ((deletemark==0)(findmark==0))

{

printf(“\t\t\t没有该用户的纪录”);

printf(“\t\t\t是否继续删除?(y/n)”);

if(getch()==’y’ || getch() == ‘Y’)

deletebyphone();

return;

}

else if (findmark!=0)

{

printf(“\t\t\t没有重名信息”);

printf(“\t\t\t没有该用户的纪录”);

printf(“\t\t\t是否继续删除?(y/n)”);

if(getch()==’y’ || getch() == ‘Y’)

deletebyphone();

return;

}

}

int dele()

{

char choic;

printf(“\t\t\t1-按电话号码删除 2-按姓名删除”);

printf(“\t\t\t请选择:”);

choic=getch();

switch (choic)

{

case ‘1’:deletebyphone();break;

case ‘2’:deletebyname();break;

}

return(0);

}

int main()

{

printf(“\t\t************************************************\n”);

printf(“\t\t***************欢饮使用通讯录*******************\n”);

printf(“\t\t************************************************\n”);

printf(“按任意键进入主菜单\n”);

getch();

int selectnum;

while(1)

{

selectnum = menu_select();

switch(selectnum)

{

case 1:

{

adduser();

break;

}

case 2:

{

list();

break;

}

case 3:

{

searchbyname();

break;

}

case 4:

{

searchbyphone();

break;

}

case 5:

{

adduser();

break;

}

case 6:

{

dele();

break;

}

case 7:

{

printf(“BYE BYE!\n”);

system(“pause”);

getchar();

exit(0);

}

}

}

getchar();

return 0;

}

c语言电话簿课程设计(c语言课程设计电话簿管理系统报告)

c语言课程设计—学生通讯录管理系统设计 设计一个学生通信录,学生通

/*10.3.2源程序*//******头文件(.h)***********/#include”stdio.h”/*I/O函数*/#include”stdlib.h”/*标准库函数*/#include”string.h”/*字符串函数*/#include”ctype.h”/*字符操作函数*/#defineM50/*定义常数表示记录数*/typedefstruct/*定义数据结构*/{charname[20];/*姓名*/charunits[30];/*单位*/chartele[10];/*电话*/}ADDRESS;/******以下是函数原型*******/intenter(ADDRESSt[]);/*输入记录*/voidlist(ADDRESSt[],intn);/*显示记录*/voidsearch(ADDRESSt[],intn);/*按姓名查找显示记录*/intdelete(ADDRESSt[],intn);/*删除记录*/intadd(ADDRESSt[],intn);/*插入记录*/voidsave(ADDRESSt[],intn);/*记录保存为文件*/intload(ADDRESSt[]);/*从文件中读记录*/voiddisplay(ADDRESSt[]);/*按序号查找显示记录*/voidsort(ADDRESSt[],intn);/*按姓名排序*/voidqseek(ADDRESSt[],intn);/*快速查找记录*/voidcopy();/*文件复制*/voidprint(ADDRESStemp);/*显示单条记录*/intfind(ADDRESSt[],intn,char*s);/*查找函数*/intmenu_select();/*主菜单函数*//******主函数开始*******/main(){inti;ADDRESSadr[M];/*定义结构体数组*/intlength;/*保存记录长度*/clrscr();/*清屏*/for(;;)/*无限循环*/{switch(menu_select())/*调用主菜单函数,返回值整数作开关语句的条件*/{case0:length=enter(adr);break;/*输入记录*/case1:list(adr,length);break;/*显示全部记录*/case2:search(adr,length);break;/*查找记录*/case3:length=delete(adr,length);break;/*删除记录*/case4:length=add(adr,length);break;/*插入记录*/case5:save(adr,length);break;/*保存文件*/case6:length=load(adr);break;/*读文件*/case7:display(adr);break;/*按序号显示记录*/case8:sort(adr,length);break;/*按姓名排序*/case9:qseek(adr,length);break;/*快速查找记录*/case10:copy();break;/*复制文件*/case11:exit(0);/*如返回值为11则程序结束*/}}}/*菜单函数,函数返回值为整数,代表所选的菜单项*/menu_select(){chars[80];intc;gotoxy(1,25);/*将光标定为在第25行,第1列*/printf(“pressanykeyentermenu\n”);/*提示压任意键继续*/getch();/*读入任意字符*/clrscr();/*清屏*/gotoxy(1,1);printf(“********************MENU*********************\n\n”);printf(“0.Enterrecord\n”);printf(“1.Listthefile\n”);printf(“2.Searchrecordonname\n”);printf(“3.Deletearecord\n”);printf(“4.addrecord\n”);printf(“5.Savethefile\n”);printf(“6.Loadthefile\n”);printf(“7.displayrecordonorder\n”);printf(“8.sorttomakenewfile\n”);printf(“9.Quickseekrecord\n”);printf(“10.copythefiletonewfile\n”);printf(“11.Quit\n”);printf(“***********************************************\n”);do{printf(“\nEnteryouchoice(0~11):”);/*提示输入选项*/scanf(“%s”,s);/*输入选择项*/c=atoi(s);/*将输入的字符串转化为整型数*/}while(c11);/*选择项不在0~11之间重输*/returnc;/*返回选择项,主程序根据该数调用相应的函数*/}/***输入记录,形参为结构体数组,函数值返回类型为整型表示记录长度*/intenter(ADDRESSt[]){inti,n;char*s;clrscr();/*清屏*/printf(“\npleaseinputnum\n”);/*提示信息*/scanf(“%d”,n);/*输入记录数*/printf(“pleaseinputrecord\n”);/*提示输入记录*/printf(“nameunittelephone\n”);printf(“————————————————\n”);for(i=0;in-1)/*如果整数i值大于n-1,说明没找到*/printf(“notfound\n”);elseprint(t[i]);/*找到,调用显示函数显示记录*/}/*显示指定的一条记录*/voidprint(ADDRESStemp){clrscr();printf(“\n\n********************************************\n”);printf(“nameunittelephone\n”);printf(“————————————————\n”);printf(“%-20s%-30s%-10s\n”,temp.name,temp.units,temp.tele);printf(“**********************end***********************\n”);}/*查找函数,参数为记录数组和记录条数以及姓名s*/intfind(ADDRESSt[],intn,char*s){inti;for(i=0;in-1)/*如果in-1超过了数组的长度*/printf(“nofoundnotdeleted\n”);/*显示没找到要删除的记录*/else{print(t[i]);/*调用输出函数显示该条记录信息*/printf(“Areyousuredeleteit(1/0)\n”);/*确认是否要删除*/scanf(“%d”,ch);/*输入一个整数0或1*/if(ch==1)/*如果确认删除整数为1*/{for(j=i+1;j=i;j–)/*从最后一个结点开始向后移动一条*/{strcpy(t[j+1].name,t[j].name);/*当前记录的姓名拷贝到后一条*/strcpy(t[j+1].units,t[j].units);/*当前记录的单位拷贝到后一条*/strcpy(t[j+1].tele,t[j].tele);/*当前记录的电话拷贝到后一条*/}strcpy(t[i].name,temp.name);/*将新插入记录的姓名拷贝到第i个位置*/strcpy(t[i].units,temp.units);/*将新插入记录的单位拷贝到第i个位置*/strcpy(t[i].tele,temp.tele);/*将新插入记录的电话拷贝到第i个位置*/n++;/*记录数加1*/returnn;/*返回记录数*/}/*保存函数,参数为结构体数组和记录数*/voidsave(ADDRESSt[],intn){inti;FILE*fp;/*指向文件的指针*/if((fp=fopen(“record.txt”,”wb”))==NULL)/*打开文件,并判断打开是否正常*/{printf(“cannotopenfile\n”);/*没打开*/exit(1);/*退出*/}printf(“\nSavingfile\n”);/*输出提示信息*/fprintf(fp,”%d”,n);/*将记录数写入文件*/fprintf(fp,”\r\n”);/*将换行符号写入文件*/for(i=0;i=0id0)/*比较大小*/{flag=1;strcpy(temp.name,t[j].name);/*交换记录*/strcpy(temp.units,t[j].units);strcpy(temp.tele,t[j].tele);strcpy(t[j].name,t[j+1].name);strcpy(t[j].units,t[j+1].units);strcpy(t[j].tele,t[j+1].tele);strcpy(t[j+1].name,temp.name);strcpy(t[j+1].units,temp.units);strcpy(t[j+1].tele,temp.tele);}if(flag==0)break;/*如果标志为0,说明没有发生过交换循环结束*/}printf(“sortsucess!!!\n”);/*显示排序成功*/}/*快速查找,参数为结构体数组和记录数*/voidqseek(ADDRESSt[],intn){chars[20];intl,r,m;printf(“\nPleasesortbeforeqseek!\n”);/*提示确认在查找之前,记录是否已排序*/printf(“pleaseenternameforqseek\n”);/*提示输入*/scanf(“%s”,s);/*输入待查找的姓名*/l=0;r=n-1;/*设置左边界与右边界的初值*/while(lr)/*如果左边界大于右边界时*/printf(“notfound\n”);/*显示没找到*/}/*复制文件*/voidcopy(){charoutfile[20];/*目标文件名*/inti,n;ADDRESStemp[M];/*定义临时变量*/FILE*sfp,*tfp;/*定义指向文件的指针*/clrscr();/*清屏*/if((sfp=fopen(“record.txt”,”rb”))==NULL)/*打开记录文件*/{printf(“cannotopenfile\n”);/*显示不能打开文件信息*/exit(1);/*退出*/}printf(“Enteroutfilename,forexamplec:\\f1\\te.txt:\n”);/*提示信息*/scanf(“%s”,outfile);/*输入目标文件名*/if((tfp=fopen(outfile,”wb”))==NULL)/*打开目标文件*/{printf(“cannotopenfile\n”);/*显示不能打开文件信息*/exit(1);/*退出*/}fscanf(sfp,”%d”,n);/*读出文件记录数*/fprintf(tfp,”%d”,n);/*写入目标文件数*/fprintf(tfp,”\r\n”);/*写入换行符*/for(i=0;i

课程设计 c++ 关于模板实现电话簿管理 急急急啊,求助各位大哥啦

#includestring

using namespace std;

//电话本

class book

{

public:

void dis();

void set();

void input();

book();

book(string,string,string,string,string);

protected:

string birthday,number,sex,name,address;

};

book::book()

{

birthday=”无出生日期或未输入”;

number=”无电话号码或未输入”;

sex=”无性别或未输入”;

name=”无名字或未输入”;

address=”无地址或未输入”;

}

book::book(string na,string s,string b,string num,string add):name(na),sex(s),birthday(b),number(num),address(add){}

void book::dis() //显示输入的内容

{

cout”姓名:”p-nameendl;

cout”性别:”p-sexendl;

cout”出生日期:”p-birthdayendl;

cout”电话号码:”p-numberendl;

cout”家庭住址:”p-addressendl;

}

void book::set() //开始界面

{

int chose;

cout”***********************”endl;

cout”*** 输入数据,请按1 ***”endl;

cout”*** 查询数据,请按2 ***”endl;

cout”*** 修改数据,请按3 ***”endl;

cout”*** 退出程序,请按4 ***”endl;

cout”***********************”endl;

coutendl”please chose:”;

cinchose;

switch(chose)

{

case 1:input(); //输入函数

case 2:dis(); //查询显示函数

case 3:edit(); //修改函数,这个函数不会写。

case 4:exit(0);

}

}

void input()

{

FILE *in;

in=fopen(“c:\phone.txt”,”at”);

book *p=temp;

for(char quit;quit!=’N’||quit!=’n’;)

{

cout”请输入数据:”endl”姓名:”;

cinp-name;

coutendl”性别(m or f):”;

cinp-sex;

coutendl”出生日期:”;

cinp-birthday;

coutendl”电话号码:”;

cinp-number;

coutendl”家庭住址:”;

cinp-address;

//下面写入文件

fprintf(in,”%4s,%4s,%4s,%4s,%4s”,p-name,p-sex,p-birthday,p-number,p-address);

coutendlendl”继续输入?(y/n)”;

cinquit;

}

}

int main()

{

void input(),edit();

p-set();

p-input();

p-dis();

delete p;

return 0;

}

C语言课程设计—电话薄管理(C语言高手进)

/*

vc 6.0运行通过-原创

链表做的

*/

#include stdio.h

#include stdlib.h

#include malloc.h

#include string.h

#define ID struct id

struct id

{

char name[20];

char tele[20];

ID *next;

};

int pc=0;

ID *creat()

{

ID *p1,*p2,*head;

char str[20];

p1=p2=head=NULL;

printf(“\t\t\t 开始输入记录(姓名 # 结束)!\n”);

while(1)

{

printf(“请输入姓名:\n”);scanf(“%s”,str);getchar();

if(strcmp(str,”#”)==0) break;

p1=(ID*)malloc(sizeof(ID));

strcpy(p1-name,str);

printf(“请输入电话号码:\n”);scanf(“%s”,p1-tele);getchar();

if(head==NULL)

{

head=p1;

p2=p1;

}

else

{

p2-next=p1;

p2=p1;

}

pc++;

}

p2-next=NULL;

return(head);

}

/*输入/添加记录*/

ID *insert(ID *head)

{

ID *temp,*p1,*p2;

printf(“插入操作开始!!!\n”);

temp=(ID *)malloc(sizeof(ID));

printf(“请输入姓名:\n”);scanf(“%s”,temp-name);getchar();

printf(“请输入电话号码:\n”);scanf(“%s”,temp-tele);getchar();

if (head==NULL)

{

head=temp;

temp-next=NULL;

}

else

{

p1=head;

while(p1!=NULL)

{

p2=p1;

p1=p1-next;

}

p2-next=temp;

temp-next=p1;

}

printf(“插入成功”);

pc++;

return (head);

}

/*删除记录*/

ID *delet(ID *head)

{

ID *p1,*p2;

char str[20];

printf(“请输入要删除的电话号码:”);scanf(“%s”,str);getchar();

p1=head;

if (head==NULL)

{

printf(“没有记录\n”);

goto end;

}

while(p1!=NULL strcmp(p1-tele,str))

{

p2=p1;p1=p1-next;

}

if(p1==NULL)

printf(“未找到符合记录!\n”);

else if(strcmp(p1-tele,str)==0)

{

if (p1==head)

head=p1-next;

else

p2-next=p1-next;

printf(“删除成功!!!\n”);

pc–;

}

end:return head;

}

/*查找记录*/

ID *search(ID *head)

{

ID *p1,*p2;

int flag=0;

char c;

printf(“请输入姓名的首字母:”);scanf(“%c”,c);getchar();

p1=head;

while( p1!=NULL)

{

if(p1-name[0]==c)

{

printf(“姓名:%s\t电话号码:%s\n”,p1-name,p1-tele);

flag=1;

}

p2=p1;p1=p1-next;

}

if(flag==0) printf(“未找到符合记录!\n”);

return head;

}

/*修改记录*/

ID *modify(ID *head)

{

ID *p1,*p2;

int mode;

char str[20];

printf(“请输入要修改记录的姓名:”);scanf(“%s”,str);getchar();

p1=head;

while( p1!=NULL)

{

if(strcmp(p1-name,str)==0)

{

printf(“1.姓名:%s\t2.电话号码:%s\n”,p1-name,p1-tele);

printf(“请选择要修改选项:\n”);

scanf(“%d”,mode);getchar();

if(mode==1)

{

printf(“请输入修改后的姓名\n”);

scanf(“%s”,p1-name);getchar();

}

else if(mode==2)

{

printf(“请输入修改后的电话号码\n”);

scanf(“%s”,p1-tele);getchar();

}

else

printf(“输入有误!\n”);

break;

}

p2=p1;p1=p1-next;

}

if(p1==NULL) printf(“未找到符合要求的记录!\n”);

return head;

}

/*显示结果函数*/

void print(ID *head)

{

ID *p;

p=head;

printf(“\t\t\t*****************\n”);

printf(“显示结果是:\n”);

printf(“姓名\t电话号码\n”);

if(head!=NULL)

do

{

printf(“%s\t%s\n”,p-name,p-tele);

p=p-next;

} while(p!=NULL);

}

void main()

{

ID *head=NULL;

int choise;

printf(“\t\t\t* * * * C语言课设* * * *\n”);

while(1)

{

printf(“\t\t 电话簿管理系统\n”);

printf(“~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\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 0.退出\n”);

printf(“\n”);

printf(“~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n”);

printf(“请选择(0-6):”);

scanf(“%d”,choise);getchar();

switch(choise)

{

case 1: head=creat();

break;

case 2: print(head);

break;

case 3: head=search(head);

break;

case 4: head=insert(head);

break;

case 5: head=delet(head);

break;

case 0:

exit(0);

break;

default :printf(“输入错误,请重新输入!\n”);

}

}

}

c语言电话簿课程设计的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言课程设计电话簿管理系统报告、c语言电话簿课程设计的信息别忘了在本站进行查找喔。

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年4月5日 00:37:23
下一篇 2024年4月5日 00:45:36

相关推荐

  • c语言改写模式,c语言实现修改功能

    c语言程序修改? 1、这个程序有4个错误,我都加粗了,第一个是m没有赋初值,第二个是while表达式中的ch=getchar()需要括号括起来,第三个是m=m*10+ch-0中的0也需要用单引号括起来,第四个是第2个while中为m!=0。 2、define容易造成误会,因为不符合一般的编程习惯,false 0, true 1;scanf放在你的那个地方是达…

    2024年5月23日
    4100
  • c语言控制代码的换码序列,c语言交换代码

    求C语言编程大神解答一下下面这个编程代码? k==5,用5去除125余0,所以r=125%5中r为0。由于!0为1,所以执行while循环体:先打印出5(k的值),再n=n/k==125/5=25;由于251则再打印出*号。这一循环结果输出是5*。 下面是我的代码,三个函数分别对应三个问题。 在实现基本要求的前提下,拓展了可以从键盘输入的功能,以下为各题代码…

    2024年5月23日
    5800
  • c语言扫描io脚状态,c语言端口扫描

    求51单片机的上升沿和下降沿C语言检测程序列子,端口就是普通IO口。 上升沿触发是当信号有上升沿时的开关动作,当电位由低变高而触发输出变化的就叫上升沿触发。也就是当测到的信号电位是从低到高也就是上升时就触发,叫做上升沿触发。 单片机怎么计算1s内下降沿的个数的C语言程序或者计算两个下降沿的时间(检测脉冲频率)计算1s内下降沿的个数方法是,一个定时器设置定时1…

    2024年5月23日
    4500
  • c语言mallloc使用的简单介绍

    C语言中使用malloc必须加#includemallo.h? 1、在C语言中使用malloc函数进行动态内存分配。malloc的全称是memory allocation,中文叫动态内存分配。原型:extern void malloc(unsigned int num_bytes);功能:分配长度为num_bytes字节的内存块。 2、你可以看一下C语言那本…

    2024年5月23日
    4500
  • c语言三位小数,C语言三位小数

    怎样用C++语言输出精确到小数点后三位的数? 1、用C++语言输出精确到小数点后三位的数,可以参考下面给出的代码:coutsetiosflags(ios:fixed)setprecision(3)。其中 setiosflags中set是设置的意思。ios是iostream的缩写,即输入输出流。flags是标志的意思。 2、要精确到小数点后若干位,则数据类型为…

    2024年5月23日
    7500
  • c语言21点游戏,二十一点游戏代码c语言

    如何使用C语言编写简单小游戏? 1、数学知识:长方形的面积S=a*b 长方形周长L=2*(a+b)其中a b分别为长方形的宽和高。算法分析:长方形面积及周长均依赖于宽和高,所以先要输入宽高值,然后根据公式计算,输出结果即可。 2、/*也不知道你是什么级别的,我是一个新手,刚接触编程语言,以下是我自己变得一个小程序,在所有c语言的编译器(vc++0、turbo…

    2024年5月23日
    6500
  • c语言当中的null,C语言当中的符号

    C/C++中,NULL和null的区别是什么? nul 和 null要看编译器,不同的编译器有所区别。 所以C或者C++中都使用一个特殊定义NULL表示无效值,其本质就是未定义具体数据类型的0值。 null是是什么都没有的意思。在java中表示空对象。 本意是“空的;元素只有零的”意思。计算机中通常表示空值,无结果,或是空集合。\x0d\x0a在ASCII码…

    2024年5月23日
    4700
  • 包含c语言对txt文件命名的词条

    如何在C语言编程里面修改源文件名字 如果你是在WINDOWS的话,简单了,随便用个编辑器,比如记事本,然后写c源程序,保存到你想要保存的位置。如果你在DOS下,可以用edit,写好以后,按alt键,选择文件菜单,然后保存。 用open打开文件,注意操作模式使用“修改”或者“添加” 用write或者fprintf向文件中写入你的内容。 用close关闭文件。 …

    2024年5月23日
    5000
  • 学c语言编程,学c语言编程用什么软件

    编程开发必须要学C语言吗? 1、要学习。编程开发的学习内容主要包括c语言、python和c+语言。C语言作为一种简单灵活的高级编程语言,它是一个面向过程的语言,一般是作为计算机专业的基础入门语言课程。 2、C语言。对于刚接触编程的人来说,先学习C语言是非常重要的。C语言可以说是是计算机编程语言的鼻祖,其他的编程语言几乎全是由C语言变化衍生出来的。 3、不需要…

    2024年5月23日
    3500
  • c语言用string定义字符串,c语言中用string类型来处理字符串类型

    C++怎样定义定义字符串 1、第一是字符数组来表示字符串。用下面的语句声明:char a[10];C语言中字符数组与字符串的唯一区别是字符串末尾有一个结束符\0,而字符数组不需要。 2、在C中定义字符串有下列几种形式:字符串常量,char数组,char指针 字符串常量 即:位于一对双括号中的任何字符。双引号里的字符加上编译器自动提供的结束标志\0字符,作为 …

    2024年5月23日
    4500

发表回复

登录后才能评论



关注微信