62_综合实例
来源:互联网 发布:软件开源有什么用 编辑:程序博客网 时间:2024/05/21 18:45
//_62_综合实例//_62_main.cpp//简单的通讯录程序#include <stdio.h>#include <stdlib.h>#define MAX 100struct adress{char name[20];char street[40];char city[10];char state[4];unsigned long zip;}addr_list[MAX];void init_list();void enter();void dele();void list();void save();void load();int menu_select();int find_free();int main(){char choice;init_list();for(;;){choice = menu_select();switch(choice){case 1:enter();break;case 2: dele();break;case 3: list();break;case 4:save();break;case 5:load();break;case 6:exit(0);default:exit(1);}}system("pause");return 0;}void init_list(){register int t;for(t=0;t<MAX;t++)addr_list[t].name[0]='\0';//将所有通讯录中结构体名字初始化}void enter(){int slot;char str[80];slot = find_free();if(slot == -1)printf("\nList Full.");printf("Enter name: ");gets(addr_list[slot].name);printf("Enter street: ");gets(addr_list[slot].street);printf("Enter city: ");gets(addr_list[slot].city);printf("Enter state: ");gets(addr_list[slot].state);printf("Enter zip: ");gets(str);addr_list[slot].zip = strtoul(str,'\0',10);}void dele(){register int solt;char str[80];printf("Enter record #:");gets(str);solt = atoi(str);if(solt>=0&&solt<MAX)addr_list[solt].name[0]='\0';}void list(){register int t;for(t=0;t<MAX;t++){if(addr_list[t].name[0]){printf("%s\n",addr_list[t].name);printf("%s\n",addr_list[t].street);printf("%s\n",addr_list[t].city);printf("%s\n",addr_list[t].state);printf("%s\n\n",addr_list[t].zip);}}printf("\n\n");}void save(){FILE *fp;register int i;if((fp=fopen("maillist","wb"))==NULL)printf("Can not open the file.\n");for(i=0;i<MAX;i++)if(*addr_list[i].name)if(fwrite(&addr_list[i],sizeof(struct adress),1,fp)!=1)printf("File write error");fclose(fp);}void load(){FILE *fp;register int i;if((fp=fopen("maillist","rb"))==NULL)printf("Can not open the file.\n");init_list();for(i=0;i<MAX;i++)if(fread(&addr_list[i],sizeof(struct adress),1,fp)!=1){if(feof(fp))break;printf("File read error.\n");}fclose(fp);}int menu_select(){char str[80];int c;printf("1. Enter a name\n");printf("2. Delete a name\n");printf("3. List the file\n");printf("4. Sava the file\n");printf("5. Load the file\n");printf("6. Quit\n");do{printf("Enter your choice :");gets(str);c = atoi(str);//将字符串转换成整型数}while(c<0||c>6);return c;}int find_free(){register int t;for(t=0;addr_list[t].name[0]&&t<MAX;t++);if(t==MAX)return -1;return t;}
0 0
- 62_综合实例
- 34_综合实例
- 44_综合实例
- 35_综合实例2
- C语言_综合实例
- 18_有关循环结构的综合实例
- Arduino综合实例之一_避障小车
- 综合实例
- 13_综合技术
- UML综合实例
- ExtJs EditGridPanle 综合实例
- dom修改综合实例
- cookie的综合实例
- 13_JavaWeb综合实例
- java3d综合实例
- HTML表单综合实例
- jquery综合应用实例
- 浮动综合实例练习
- CentOS5.6下使用cmake编译MySQL5.5.13源码和安装笔录
- 61_错误处理
- 不相交集 POJ1182 食物链
- poj1703Find them, Catch them
- POJ 1692 Crossed Matchings(dp).
- 62_综合实例
- 儒家思想与企业文化
- listview android:cacheColorHint,listSelector属性作用 分享
- 63_动态分配函数
- hdu3038How Many Answers Are Wrong
- 探寻C++最快的读取文件的方案
- hdu 2502 月之数
- java 图片压缩、缩放
- 未捕获的异常