1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4
5 #define MAX 100
6 #define TRUE 1
7 #define FALSE 0
8 #define Status int
9
10 typedef struct node
11 {
12 char name[12];
13 char addr[40];
14 char mphone[12];
15 char tel[14];
16 char sex;
17 unsigned char age;
18 }NODE;
19
20 NODE txl[MAX];
21 int len = 0;
22
23 char *menu_1[] = {
24 "***********************\n",
25 "1.增加记录\n",
26 "2.删除记录\n",
27 "3.修改记录\n",
28 "4.查询记录\n",
29 "0.退出\n",
30 "***********************\n"
31 };
32 char *menu_query1[] = {
33 "***********************\n",
34 "1.按姓名查询\n",
35 "2.按手机号码查询\n",
36 "3.全部输出\n",
37 "0.退出\n",
38 "***********************\n"
39 };
40
41 char menu(char *str[],int len)
42 {
43 char sel;
44 int i;
45 for (i=0 ; i<len; i++)
46 {
47 printf("%s",str[i]);
48 }
49 printf("请输入您的选择:");
50 scanf(" %c",&sel);
51 getchar();
52 return sel;
53 }
54
55 Status input(void)
56 {
57 int age;
58 printf("请输入姓名:");
59 fgets(txl[len].name,12,stdin);
60 printf("请输入地址:");
61 fgets(txl[len].addr,40,stdin);
62 printf("请输入手机号:");
63 fgets(txl[len].mphone,12,stdin);
64 printf("请输入电话号码:");
65 fgets(txl[len].tel,14,stdin);
66 printf("请输入性别:");
67 scanf(" %c",&txl[len].sex);
68 printf("请输入年龄:");
69 scanf("%d",&age);
70 getchar();
71 txl[len].age = (unsigned char)age;
72 return TRUE;
73 }
74
75 Status output(int i)
76 {
77 char sex[3];
78 printf("姓名:%s",txl[i].name);
79 printf("地址:%s",txl[i].addr);
80 printf("手机号:%s",txl[i].mphone);
81 printf("电话号码:%s",txl[i].tel);
82 if ( '0' == txl[i].sex )
83 {
84 strcpy(sex,"女");
85 }
86 else if ( '1' == txl[i].sex)
87 {
88 strcpy(sex,"男");
89 }
90 else
91 {
92 strcpy(sex,"错");
93 }
94 printf("性别:%s\n",sex);
95 printf("年龄:%d\n",(int)txl[i].age);
96 return TRUE;
97 }
98 Status query(void)
99 {
100 char sel=1,name[12],mphone[12];
101 int i;
102 while('0' != sel)
103 {
104 sel = menu(menu_query1,6);
105 switch (sel)
106 {
107 case '1':
108 {
109 printf("请输入姓名:");
110 fgets(name,12,stdin);
111 for(i=0; i<len; i++)
112 {
113 if( !strcmp(name,txl[i].name) ) break;
114 }
115 output(i);
116 } break;
117 case '2':
118 {
119 printf("请输入手机号:");
120 fgets(mphone,12,stdin);
121 for(i=0; i<len; i++)
122 {
123 if( !strcmp(mphone,txl[i].mphone) ) break;
124 }
125 output(i);
126 } break;
127 case '3':
128 {
129 for(i=0; i<len; i++)
130 {
131 printf("第%d条记录\n",i+1);
132 output(i);
133 printf("\n");
134 }
135 } break;
136 case '0':break;
137 default:printf("错误输入\n");break;
138 }
139 }
140 return TRUE;
141 }
142 int main(int argc,char *argv[])
143 {
144 char sel;
145 printf("sizeof struct = %d\n",sizeof(NODE));
146 while (1)
147 {
148 sel = menu(menu_1,7);
149 switch (sel)
150 {
151 case '1':input();len++; break;
152 case '2':printf("you select 2\n");break;
153 case '3':printf("you select 3\n");break;
154 case '4':query();break;
155 case '0':exit(0);break;
156 default:printf("错误输入\n");break;
157 }
158 }
159 return 0;
160 }
C语言 结构体一个简单的通讯录程序
最新推荐文章于 2022-09-20 20:55:56 发布
本文介绍了一个简易的通讯录管理系统的设计与实现,该系统使用C语言编写,具备增加、删除、修改和查询联系人的功能。系统通过菜单引导用户进行操作,并支持按姓名或手机号查询联系人信息。
7702

被折叠的 条评论
为什么被折叠?



