c语言函数通讯 c语言编写的程序

c语言问题,我正在做一个通讯录,这段函数是提取的,好像有问题 。#include"stdio.h"#include"string.h"#include"stdlib.h"typedefstruct{//通讯录结点类型charnum[5];//编号charname[9];//姓名charsex[3];//性别charphone[13];//电话charaddr[31];//地址}DataType;typedefstructnode{//结点类型定义DataTypedata;//结点数据域structnode*next;//结点指针域}ListNode;typedefListNode*LinkList;LinkListhead;ListNode*p;//函数说明intmenu_select();LinkListCreateList(void);voidInsertNode(LinkListhead,ListNode*p);ListNode*ListFind(LinkListhead);voidDelNode(LinkListhead);voidprintList(LinkListhead);//主函数voidmain(){for(;;){switch(menu_select()){case1:printf("**********************************\n");printf("*通讯录链表的建立*\n");printf("**********************************\n");head=CreateList();break;case2:printf("**********************************\n");printf("*通讯者信息的添加*\n");printf("**********************************\n");printf("编号(4)姓名(8)性别(3)电话(11)地址(31)\n");printf("*************************************\n");p=(ListNode*)malloc(sizeof(ListNode));//申请新结点scanf("%s%s%s%s%s",p-data.num,p-data.name,p-data.sex,p-data.phone,p-data.addr);InsertNode(head,p);break;case3:printf("***********************************\n");printf("*通讯录信息的查询*\n");printf("***********************************\n");p=ListFind(head);if(p!=NULL){printf("编号姓名性别联系电话地址\n");printf("--------------------------------------------------\n");printf("%s,%s,%s,%s,%s\n",p-data.num,p-data.name,p-data.sex,p-data.phone,p-data.addr);printf("---------------------------------------------------\n");}elseprintf("没有查到要查询的通讯者!\n");break;case4:printf("***********************************\n");printf("*通讯录信息的删除*\n");printf("***********************************\n");DelNode(head);//删除结点break;case5:printf("************************************\n");printf("*通讯录链表的输出*\n");printf("************************************\n");printList(head);break;case0:printf("\t再见!\n");return;}}}/*******************//*菜单选择函数程序*//***************************/intmenu_select(){intsn;printf("通讯录管理系统\n");printf("===================\n");printf("1.通讯链表的建立\n");printf("2.通讯者结点的插入\n");printf("3.通讯者结点的查询\n");printf("4.通讯者结点的删除\n");printf("5.通讯录链表的输出\n");printf("0.退出管理系统\n");printf("==========================\n");printf("请选择0-5:");for(;;){scanf("%d",sn);if(sn5)printf("\n\t输入错误,重选0-5:");elsebreak;}returnsn;}/**************************//*用尾插法建立通讯录链表函数*//**************************/LinkListCreateList(void){//尾插法建立带头结点的通讯录链表算法LinkListhead=(ListNode*)malloc(sizeof(ListNode));//申请头结点ListNode*p,*rear;intflag=0;//结束标志置0rear=head;//尾指针初始指向头结点while(flag==0){p=(ListNode*)malloc(sizeof(ListNode));//申新结点printf("编号(4)姓名(8)性别电话(11)地址(31)\n");printf("--------------------------------------------------------------------------------------\n");scanf("%s%s%s%s%s",p-data.num,p-data.name,p-data.sex,p-data.phone,p-data.addr);rear-next=p;//新结点连接到尾结点之后rear=p;//尾指针指向新结点printf("结束建表吗?(1/0):");scanf("%d",flag);}rear-next=NULL;//终端结点指针置空returnhead;//返回链表头指针}/******************************//*在通讯录链表head中插入结点*//******************************/voidInsertNode(LinkListhead,ListNode*p){ListNode*p1,*p2;p1=head;p2=p1-next;while(p2!=NULLstrcmp(p2-data.num,p-data.num)next;//p2指向表的下一个结点}p1-next=p;//插入p所指向的结点p-next=p2;//连接表中剩余的结点}/******************************************//*有序通讯录链表的查找*//******************************************/ListNode*ListFind(LinkListhead){//有序通讯录链表上的查找ListNode*p;charnum[5];charname[9];intxz;printf("==================\n");printf("1.按编号查询\n");printf("2.按姓名查询\n");printf("==================\n");printf("请选择:");p=head-next;//假定通讯录表带头结点scanf("%d",xz);if(xz==1){printf("请输入要查找者的编号:");scanf("%s",num);while(pstrcmp(p-data.num,num)next;if((p==NULL)||strcmp(p-data.num,num))0;p=NULL;//没有查到要查找的通讯者}elseif(xz==2){printf("请输入要查找者的姓名:");scanf("%s",name);while(pstrcmp(p-data.name,name)!=0)p=p-next;}returnp;}/*******************************//*通讯录链表上的结点删除*//*********************************/voidDelNode(LinkListhead){charjx;ListNode*p,*q;p=ListFind(head);//调用查找函数if(p==NULL){printf("没有查到要删除的通讯者!\n");return;}printf("真的要删除该结点吗?(y/n):");scanf("%c",jx);if(jx=='y'||jx=='Y'){q=head;while((q!=NULL)(q-next!=p))q=q-next;q-next=p-next;//删除结点free(p);//释放被删结点空间printf("通讯者已被删除!\n");}}/**********************************//*通讯录链表的输出函数*//**********************************/voidprintList(LinkListhead){ListNode*p;p=head-next;printf("编号姓名性别联系电话地址\n");printf("--------------------------------------------------------------------------------\n");while(p!=NULL){printf("%s,%s,%s,%s,%s\n",p-data.num,p-data.name,p-data.sex,p-data.phone,p-data.addr);printf("---------------------------------------------------------------------------------\n");p=p-next;//后移一个结点}}
用C语言编写通讯录时用到哪些库函数?。?/h2>"gotoxy()","moveto()"包含在#include conio.h中c语言函数通讯了.
转载一个程序给你:(ZT)
算法:将当前时间显示到屏幕 , 当时间发生变化时,清屏,显示新c语言函数通讯的时间(当有键盘操作时退出程序) 。
显示时间格式:小时:分钟:秒
/* DEV CWin XP*/
#include stdio.h
#include stdlib.h
#include conio.h
#include time.h
typedef struct
{
int x;
int y;
}Point;
time_t now;
struct tm *pt,t1,t2;
int printpoint(Point p)
{
Point p1;
p1.x=p.x 2; p1.y=p.y 4;
gotoxy(p1.x,p1.y); printf("%c%c",2,2);
gotoxy(p1.x, p1.y 1); printf("%c%c",2,2);
p1.y =4;
gotoxy(p1.x,p1.y); printf("%c%c",2,2);
gotoxy(p1.x,p1.y 1); printf("%c%c",2,2);
return 0;
}
int print0(Point p)
{
int i=0;
for(;i13;i)
{
gotoxy(p.x 1, p.y i);
if(i==0||i==12)
printf("%c%c%c%c%c%c",2,2,2,2,2,2);
else
printf("%c%4s%c",2," ",2);
}
return 0;
}
int print1(Point p)
{
int i=0;
for(;i13;i)
{
gotoxy(p.x 1, p.y i);
printf("%5s%c"," ",2);
}
return 0;
}
int print2(Point p)
{
int i=0;
for(;i13;i)
{
gotoxy(p.x 1, p.y i);
if(i==0||i==6||i==12)
printf("%c%c%c%c%c%c",2,2,2,2,2,2);
else if(i0i6)
printf("%5s%c"," ",2);
else
printf("%c",2);
}
return 0;
}
int print3(Point p)
{
int i=0;
for(;i13;i)
{
gotoxy(p.x 1, p.y i);
if(i==0||i==6||i==12)
printf("%c%c%c%c%c%c",2,2,2,2,2,2);
else
printf("%5s%c"," ",2);
}
return 0;
}
int print4(Point p)
{
int i=0;
for(;i13;i)
{
gotoxy(p.x 1, p.y i);
if(i6) printf("%c%4s%c",2," ",2);
else if(i==6)
printf("%c%c%c%c%c%c",2,2,2,2,2,2);
else printf("%5s%c"," ",2);
}
return 0;
}
int print5(Point p)
{
int i=0;
for(;i13;i)
{
gotoxy(p.x 1, p.y i);
if(i==0||i==6||i==12)
printf("%c%c%c%c%c%c",2,2,2,2,2,2);
else if(i0i6)
printf("%c",2);
else
printf("%5s%c"," ",2);
}
return 0;
}
int print6(Point p)
{
int i=0;
for(;i13;i)
{
gotoxy(p.x 1, p.y i);
if(i==0||i==6||i==12)
printf("%c%c%c%c%c%c",2,2,2,2,2,2);
else if(i0i6)
printf("%c",2);
else
printf("%c%4s%c",2," ",2);
}
return 0;
}
int print7(Point p)
{
int i=0;
for(;i13;i)
{
gotoxy(p.x 1, p.y i);
if(i==0) printf("%c%c%c%c%c%c",2,2,2,2,2,2);
else printf("%5s%c"," ",2);
}
return 0;
}
int print8(Point p)
{
int i=0;
for(;i13;i)
{
gotoxy(p.x 1, p.y i);
if(i==0||i==6||i==12)
printf("%c%c%c%c%c%c",2,2,2,2,2,2);
else printf("%c%4s%c",2," ",2);
}
return 0;
}
int print9(Point p)
{
int i=0;
for(;i13;i)
{
gotoxy(p.x 1, p.y i);
if(i==0||i==6||i==12)
printf("%c%c%c%c%c%c",2,2,2,2,2,2);
else if(i0i6)
printf("%c%4s%c",2," ",2);
else
printf("%5s%c"," ",2);
}
return 0;
}
int clear(Point p)
{
int i=0;
for(;i13;i)
gotoxy(p.x,p.y i); printf("s"," ");
return 0;
}
int printtime(Point p, int n)
{
int a,b;
Point pp;
a=n/10, b=n;
pp.x=p.x 8, pp.y=p.y;
switch(a)
{
case 0: print0(p); break;
case 1: print1(p); break;
case 2: print2(p); break;
case 3: print3(p); break;
case 4: print4(p); break;
case 5: print5(p); break;
}
switch(b)
{
case 0: print0(pp); break;
case 1: print1(pp); break;
case 2: print2(pp); break;
case 3: print3(pp); break;
case 4: print4(pp); break;
case 5: print5(pp); break;
case 6: print6(pp); break;
case 7: print7(pp); break;
case 8: print8(pp); break;
case 9: print9(pp); break;
}
return 0;
}
int main()
{
Point phour, pmin, psec,point1,point2;
phour.x=9, pmin.x=32, psec.x=55;
phour.y=pmin.y=psec.y=7;
point1.x=25, point2.x=49;
point1.y=point2.y=7;
clrscr();
textbackground(BLUE);
textcolor(YELLOW);
now=time(0);
pt=localtime(now);
t1=*pt;
printtime(phour, t1.tm_hour);
printpoint(point1);
printtime(pmin, t1.tm_min);
printpoint(point2);
printtime(psec, t1.tm_sec);
while(1)
{
now=time(0);
pt=localtime(now);
t2=*pt;
if(t2.tm_sec!=t1.tm_sec)
{
t1=t2;
clrscr();
printtime(phour, t1.tm_hour);
printpoint(point1);
printtime(pmin, t1.tm_min);
printpoint(point2);
printtime(psec, t1.tm_sec);
}
if(bioskey(1)==0) continue;
else exit(0);
}
return 0;
}
大神看看我的C语言通讯录查找函数 。输入电话号码查找永远是未查找到这段代码没有问题
c语言函数通讯你需要检查一下链表c语言函数通讯的数据内容c语言函数通讯,在调用本函数前,用输出语句先遍历一下链表看一下内容吧 , 估计是建表有问题,或是输入的数据存储不正确 。
C语言利用链表建立一个通讯录,包括添加,修改,删除 , 学号查找,姓名查找五个功能,用五个调用函数 。#includestdio.h
#includestdlib.h
#includeconio.h
#includestring.h
struct student
{
char num[20];//学号
char name[20];//用户姓名
char phone[20];//电话号码
char addr[100];//通讯地址
struct student *next;
};
void insert(student* head)//添加一条记录
{
student *p=head;
student *newStud=(student*)malloc(sizeof(student));
printf("输入添加用户信息\n");
printf("学号:");
scanf("%s",newStud-num);
printf("姓名:");
scanf("%s",newStud-name);
printf("电话:");
scanf("%s",newStud-phone);
printf("地址:");
scanf("%s",newStud-addr);
while(p-next!=NULL)
{
if(strcmp(p-num,newStud-num)==0)
{
printf("此学号的用户已存在!\n");
return;
}
p=p-next;
}
p-next=newStud;
newStud-next=NULL;
printf("添加成功\n");
}
void update(student *head)//修改一条记录
{
student *p=head-next;
char num[20];
printf("输入待修改用户学号:");
scanf("%s",num);
while(p!=NULL)
{
if(strcmp(p-num,num)==0)
{
printf("输入修改后信息\n");
printf("学号:");
scanf("%s",p-num);
printf("姓名:");
scanf("%s",p-name);
printf("电话:");
scanf("%s",p-phone);
printf("地址:");
scanf("%s",p-addr);
printf("修改成功\n");
return;
}
p=p-next;
}
printf("不存在此学号的用户");
}
void delRecord(student *head)//删除一条记录
{
student *p1,*p2;
p1=head;
p2=p1-next;
char num[20];
printf("输入待删除用户学号:");
scanf("%s",num);
while(p2!=NULL)
{
if(strcmp(p2-num,num)==0)//找到则删除此用户
{
p1-next=p2-next;
free(p2);
printf("删除成功\n");
return;
}
p1=p2;//没找到则继续遍历
p2=p2-next;
}
printf("不存在此学号的用户\n");
}
void findByNum(student *head)//按学号查找
{
student *p=head-next;
char num[20];
printf("输入待查找用户学号:");
scanf("%s",num);
while(p!=NULL)
{
if(strcmp(p-num,num)==0)
{
printf("学号:%s\n",p-num);
printf("姓名:%s\n",p-name);
printf("电话:%s\n",p-phone);
printf("地址:%s\n",p-addr);
return;
}
p=p-next;
}
printf("不存在此学号的用户\n");
}
void findByName(student *head)//按姓名查找
{
student *p=head-next;
char name[20];
printf("输入待查找用户姓名:");
scanf("%s",name);
while(p!=NULL)
{
if(strcmp(p-name,name)==0)
{
printf("学号:%s\n",p-num);
printf("姓名:%s\n",p-name);
printf("电话:%s\n",p-phone);
printf("地址:%s\n",p-addr);
return;
}
p=p-next;
}
printf("不存在此姓名的用户\n");
}
void main()
{
student *head=(student*)malloc(sizeof(student));
head-next=NULL;
char choice;
printf("\t*****************************\n");
printf("\t1,添加一条记录\n");
printf("\t2,修改一条记录\n");
printf("\t3,删除一条记录\n");
printf("\t4,按学号查找\n");
printf("\t5,按姓名查找\n");
printf("\t6,退出\n");
printf("\t请按键选择\n");
printf("\t*****************************\n");
while(true)
{
printf("请按键选择操作:\n");
fflush(stdin); //清除缓冲区
choice=getch();
switch(choice)
{
case '1':
insert(head);
break;
case '2':
update(head);
break;
case '3':
delRecord(head);
break;
case '4':
findByNum(head);
break;
case '5':
findByName(head);
break;
case '6':
exit(0);
default:
printf("输入错误\n");
}
}
}
c语言函数通讯你的num应该是char类型吧?
还有c语言函数通讯,name数组长度不用那么大啊c语言函数通讯,好浪费空间c语言函数通讯!
我测试了下 , 没什么问题 , 要是有什么问题可以hi我
【c语言函数通讯 c语言编写的程序】关于c语言函数通讯和c语言编写的程序的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读