commu.c
上传用户:bjtelijie
上传日期:2010-01-01
资源大小:87k
文件大小:3k
- # include <stdio.h>
- # include <stdlib.h>
- # define MAX 100
- struct addr
- {
- char name[20];
- char street[40];
- char city[20];
- char state[4];
- unsigned long zip;
- } addr_list[MAX];
- void init_list(void);
- void enter(void);
- void dele(void);
- void list(void);
- void save(void);
- void load(void);
- int menu_select(void);
- int find_free(void);
- void 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);
- }
- }
- }
- void init_list(void)
- {
- register int t;
- for(t=0; t<MAX; t++)
- addr_list[t].name[0] = '';
- }
- void enter(void)
- {
- 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, '', 10);
- }
- void dele(void)
- {
- register int slot;
- char str[80];
- printf("Enter record #: ");
- gets(str);
- slot = atoi(str);
- if(slot>=0 && slot<MAX)
- addr_list[slot].name[0] = '';
- }
- void list(void)
- {
- register int t;
- for(t=0; t<MAX; t++)
- {
- if(addr_list[t].name[0])
- {
- printf("%sn", addr_list[t].name);
- printf("%sn", addr_list[t].street);
- printf("%sn", addr_list[t].city);
- printf("%sn", addr_list[t].state);
- printf("%snn", addr_list[t].zip);
- }
- }
- printf("nn");
- }
- void save(void)
- {
- FILE *fp;
- register int i;
- if((fp=fopen("maillist", "wb"))==NULL)
- printf("Cannot open file.n");
- for(i=0; i<MAX; i++)
- if(*addr_list[i].name)
- if(fwrite(&addr_list[i], sizeof(struct addr), 1, fp)!=1)
- printf("File write error.n");
- fclose(fp);
- }
- void load(void)
- {
- FILE *fp;
- register int i;
- if((fp=fopen("maillist", "rb"))==NULL)
- printf("Cannot open file.n");
- init_list();
- for(i=0; i<MAX; i++)
- if(fread(&addr_list[i], sizeof(struct addr), 1, fp)!=1)
- {
- if(feof(fp))
- break;
- printf("File read error.n");
- }
- fclose(fp);
- }
- int menu_select(void)
- {
- char str[80];
- int c;
- printf("1. Enter a namen");
- printf("2. Delete a namen");
- printf("3. List the filen");
- printf("4. Save the filen");
- printf("5. Load the filen");
- printf("6. Quitn");
- do{
- printf("nEnter your choice: ");
- gets(str);
- c = atoi(str);
- } while(c<0 || c>6);
-
- return c;
- }
- int find_free(void)
- {
- register int t;
- for(t=0; addr_list[t].name[0]&&t<MAX; t++);
- if(t==MAX)
- return -1;
- return t;
- }