用C语言编写通讯录,求程序代码

用C语言编写通讯录,求程序代码,第1张

分析:

跟据楼主的意思!我们可以得出,这个程序只要求我们写查询通迅录的内容

而通迅录的内容,可以通过初始化得出!

简而言之:写一个查询函数

呵呵···把问题相通了,我们就开始写算法吧let's go!!!

----------------------------------------------------------------

算法:

1获得用户的输入 (就是要查询的对象的名字)

2查询 (在这我用穷举通迅录的方式查询了,^_^&&^_^)

3输出查询结果

算法就这样被我们征服了!!!呵呵~~好有成就感哇!!

但我们现在还不能开始编码,我得们先想好怎么编,要做到胸有成竹!!!

那我现在来想一下该怎么编码吧!let's go!!!

----------------------------------------------------------------

要保存通迅的信息,那么我们得用一个结构体吧:

struct friends

{

char name[20]; / 名字不能写得太长哦 /

char province[20]; / 省份 /

char city[20]; / 所在城市 /

char nation[20]; / 民族 /

char sex[2]; / 性别 M/F /

int age; / 年龄 /

};

要获得用户输入,要用个 char search_name[20];

查询结果反回一个数,记录对象在通迅录中的位置:int index;

查询中有用要循环,用一个记数器: int i;

----------------------------------------------------------------

OK,该用的变量我们都想好了!算法我们也想好了。还等什么呢,开始编码吧

呵呵~~是不是等这个时候都等得急了~~~~~

-------------------------------------------------------------------

程序实现:

#include <stdioh>

#include <stringh>

#include <stdlibh>

/ 定义保存通迅录的信息 /

struct friends

{

char name[20]; / 名字 /

char province[20]; / 省份 /

char city[20]; / 所在城市 /

char nation[20]; / 民族 /

char sex[2]; / 性别 M/F /

int age; / 年龄 /

};

void getname (char search_name[]);

int search (struct friends friend_list[], char search_name[]);

void print_result(struct friends friend_list[], int index);

int main (void)

{

int index;

char search_name[20];

struct friends friend_list[4] = {

{"lihan", "liaoning", "huluodao","han","M",19},

{"zhuqiang", "jiangsu", "changzhu", "han","M",19},

{"wangjiangang", "liaoning", "anshan","han","M",20},

{"zhanghongwei", "shandong", "zhucheng", "han","M",21},

};

(void) getname (search_name); / 获得用户输入 /

index = search (friend_list, search_name); / 查询 /

(void) print_result (friend_list,index); / 打印结果 /

return 0;

}

/

函数名:getname

功能:获得用户要查询的对象的名字

/

void getname (char search_name[])

{

printf ("Pleace enter the name of your friends you want to search>>");

scanf ("%s", search_name);

}

/

函数名:search

功能:查询对象

/

int search (struct friends friend_list[], char search_name[])

{

int i;

/ 穷举通迅录 /

for (i = 0; i < 4; ++i)

{

if (strcmp(friend_list[i]name, search_name) == 0)

{

return (i);

}

}

if (i == 4)

{

printf ("I am sorry! there is nobody by the name you enter!\n");

fflush(stdin);

getchar();

exit (0);

}

}

/

函数名:print_result

功能:打印结果

/

void print_result(struct friends friend_list[], int index)

{

printf ("the imformation of %s:\n", friend_list[index]name);

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

printf (" NAME: %-s\n", friend_list[index]name);

printf ("PROVINCE: %-s\n", friend_list[index]province);

printf (" CITY: %-s\n", friend_list[index]city);

printf (" NATION: %-s\n", friend_list[index]nation);

printf (" SEX: %-s\n", friend_list[index]sex);

printf (" AGE: %-d\n", friend_list[index]age);

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

fflush(stdin);

getchar();

}

呵呵~~一口气把它写出来了!!!前期写算法是很重要的!!

现在还没结束!!我们要先来测试一下!!

--------------------------------------

Pleace enter the name of your friends you want to search>>lihan

the imformation of lihan:

------------------------------------------------

NAME: lihan

PROVINCE: liaoning

CITY: huluodao

NATION: han

SEX: M

AGE: 19

-------------------------------------------------

--------------------------------------

Pleace enter the name of your friends you want to search>>lbmzwyy

I am sorry! there is nobody by the name you enter!

说明成功了~~~呵呵~~太高兴了~~

--------------------------------------

请记注一点:克制编码的诱惑

无论多么小的问题都要先分析好问题,想好算法,才能开始编码!!!我相信这样做一定对你有好处的!

1、涉及到通讯,就要有通讯协议

2、你的485模块是接在单片机吗

3、如果485模块接在单片机,要做好485使能端的控制,不能让485出现死锁现象。

4、根据通讯协议完成相应的控制功能。

5、祝你成功,嘿嘿

一个server端

Private Sub Command1_Click()

End

End Sub

Private Sub Command2_Click()

WinsockserverSendData Text4Text + ":" + textsendText

textgetText = textgetText + vbCrLf + Text4Text + ":" + textsendText + " " + Str(Time)

textsendText = ""

End Sub

Private Sub Form_Load()

Command2Visible = False

textsendVisible = False

Text4Visible = False

textgetVisible = False

Label1Visible = False

WinsockserverLocalPort = 1001

WinsockserverListen

End Sub

Private Sub textsend_Change()

'WinsockserverSendData textsendtext

End Sub

Private Sub textsend_KeyPress(KeyAscii As Integer)

'If KeyAscii = 13 Then

'WinsockserverSendData textsendtext

'textsendtext = ""

If KeyAscii = 13 Then

WinsockserverSendData textsendText

' Text1text = Text1text + vbCrLf + Text4text + ": " + Text2text + " " + Str(Time)

textsendText = ""

End If

End Sub

Private Sub Timer1_Timer()

If Text4Text = "" Then Text4Text = "no name"

End Sub

Private Sub Winsockserver_Close()

WinsockserverClose

End

End Sub

Private Sub Winsockserver_ConnectionRequest(ByVal requestID As Long)

Command2Visible = True

textsendVisible = True

textgetVisible = True

Text4Visible = True

Label1Visible = True

If WinsockserverState <> sckClosed Then WinsockserverClose

WinsockserverAccept requestID

End Sub

Private Sub Winsockserver_DataArrival(ByVal bytesTotal As Long)

Dim tmpstr As String

WinsockserverGetData tmpstr

'textgettext = textget + tmpstr + textsend

textgetText = textgetText + vbCrLf + tmpstr + " " + Str(Time)

End Sub

'(1)Command1:退出按钮;

'(2)textsend:发送数据文本框;

'(3)Winsockserver: 服务器Winsock;

'(4)textget :接收数据文本框。

一个clien

汇编语言肯定是可行的,你现在用C语言开发,然后用现成的MDK开发环境编译汇编后运行的,如果你能够调试,你可以看到调试部分是把你的C代码转换为汇编代码运行的,最终在单片机里面运行的是机器码0、1

#include<stdioh>

#define LL sizeof(struct Information)

#include<stdlibh>

struct Information

{

char name[25];

int number;

double Tel_number;

struct Information next;

};

int n,t;

struct Information creat()

{

struct Information head,p1,p2;

n=0;

p1=p2=(struct Information )malloc(LL);

printf("请输入第 %d 个学生通讯信息:\n",n+1);

printf("姓名\t学号\t电话号码\n");

scanf("%s%d%lf",p1->name,&p1->number,&p1->Tel_number);

getchar();

head=NULL;

while(p1->number!=0)

{

n++;

if(n==1)head=p1;

else

p2->next=p1;

p2=p1;

p1=(struct Information )malloc(LL);

scanf("%s%d%lf",p1->name,&p1->number,&p1->Tel_number);

getchar();

}

p2->next=NULL;

free(p1);

p1=NULL;

return head;

}

void output(struct Information p3)

{

printf("\n你建立的是多少人的通讯录: n=%d\n ",n);

printf("\n输出存入的通信信息:\n");

printf("\n姓名\t学号\t电话号码\n");

while(p3!=NULL)

{

printf("%s\t%d\t%0lf\n",p3->name,p3->number,p3->Tel_number);

p3=p3->next;

}

}

void file(struct Information p8)

{

FILE fp;

int i;

t=n;

if((fp=fopen("Infordat","wb"))==NULL)

{

printf("此文件无法打开!\n");

exit(0);

}

for(i=0;i<t;i++)

{

if(fwrite(&p8->name,LL,1,fp)!=1)

if(fwrite(&p8->number,LL,1,fp)!=1)

if(fwrite(&p8->Tel_number,LL,1,fp)!=1)

p8=p8->next;

else

printf("此文件写入错误\n");

}

fclose(fp);

}

void Insert(struct Information head,struct Information node,int num1)

{

struct Information p;

if(head==NULL)

{

head=node;

node->next=NULL;

n++;

printf("你插入后总共有结点:n=%d\n",n);

}

p=head;

while(p->number!=num1 && p->next!=NULL)

{

p=p->next;

}

if(p->number==num1)

{

node->next=p->next;

p->next=node;

n++;

printf("你插入后总共有结点:n=%d\n",n);

}

else

printf("\nthe num1 is't found!\n");

printf("\n输出插入一个学生的通讯信息后的通讯录:\n");

printf("\n姓名\t学号\t电话号码\n");

p=head;

while(p!=NULL)

{

printf("%s\t%d\t%0lf\n",p->name,p->number,p->Tel_number);

p=p->next;

}

}

void Delete(struct Information head,int num2)

{

struct Information p5,p6,p7;

if(head==NULL)

{

printf("\nthis is a null list!\n");

}

p6=head;

while(p6->number!=num2 && p6->next!=NULL)

{

p5=p6;

p6=p6->next;

}

if(p6->number==num2)

{

if(head==p6)

{

head=head->next;

}

else

p5->next=p6->next;

n--;

printf("你 删除 后总共有结点:n=%d\n",n);

}

else

printf("\nthe %d didn't been found!\n");

printf("\n输出 删除 一个学生的通讯信息后的通讯录:\n");

printf("\n姓名\t学号\t电话号码\n");

free(p6);

p6=NULL;

p7=head;

while(p7!=NULL)

{

printf("%s\t%d\t%0lf\n",p7->name,p7->number,p7->Tel_number);

p7=p7->next;

}

}

int main()

{

struct Information p0,p4;

int r,m;

p0=creat();

output(p0);

file(p0);

printf("请输入要 插入 信息:\n");

p4=(struct Information )malloc(LL);

scanf("%s%d%lf",p4->name,&p4->number,&p4->Tel_number);

getchar();

printf("请输入 插在 那个学号:\n");

scanf("%d",&r);

Insert(p0,p4,r);

printf("请输入 删除 那个学号:\n");

scanf("%d",&m);

Delete(p0,m);

return 0;

}

以上就是关于用C语言编写通讯录,求程序代码全部的内容,包括:用C语言编写通讯录,求程序代码、485通讯程序怎么写、VB实现串口通讯程序代码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9719001.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存