#include<stdlib.h>
#define MAX 100
struct addr{
char name[30]
char street[40]
char city[20]
char state[3]
unsigned long int zip
}add_list[MAX]
void init_list(void),enter(void)
void delete(void),list(void)
void load(void),save(void)
int menu_select(void),find_free(void)
int main(void)
{
char choice
init_list()/*initialize the structure array*/
for(){
choice=menu_select()
switch(choice){
case 1:enter()
break
case 2:delete()
break
case 3:list()
break
case 4:save()
break
case 5:load()
break
case 6:exit(0)
}
}
return 0
}
/*Initialize the list*/
void init_list(void)
{
register int t
for(t=0t<MAX++t)
add_list[t].name[0]='0'
}
/*Get a menu selection*/
int menu_select(void)
{
char s[80]
int c
printf("1.Enter a name\n")
printf("2.Delete a name\n")
printf("3.List the file\n")
printf("4.Save the file\n")
printf("5.Load the file\n")
printf("6.Quit\n")
do{
printf("\nEnter your choice:")
gets(s)
c=atoi(s)
}while(c<0||c>6)
return c
}
/*Input addresses into the list*/
void enter(void)
{
int slot
char s[80]
slot=find_free()
if(slot==-1){
printf("\nList Full")
return
}
printf("Enter name:")
gets(add_list[slot].name)
printf("Enter street:")
gets(add_list[slot].street)
printf("Enter city:")
gets(add_list[slot].city)
printf("Enter state:")
gets(add_list[slot].state)
printf("Enter zip:")
gets(s)
add_list[slot].zip=strtoul(s,'\0',10)
}
/*Find an unused structure*/
int find_free(void)
{
register int t
for(t=0add_list[t].name[0]&&t<MAX++t)
if(t==MAX)
return -1/*no slots free*/
return t
}
/*Delete an address*/
void delete(void)
{
register int slot
char s[80]
printf("enter record # :")
gets(s)
slot=atoi(s)
if(slot>=0&&slot<MAX)
add_list[slot].name[0]='\0'
}
/*Display the list on the screen*/
void list(void)
{
register int t
for(t=0t<MAX++t){
if(add_list[t].name[0]){
printf("%s\n",add_list[t].name)
printf("%s\n",add_list[t].street)
printf("%s\n",add_list[t].city)
printf("%s\n",add_list[t].state)
printf("%s\n",add_list[t].zip)
}
}
printf("\n\n")
}
/*Save the list*/
void save(void)
{
FILE *fp
register int i
if((fp=fopen("maillist","wb"))==NULL)
printf("Cannot open file\n")
return
for(i=0i<MAXi++)
if(*add_list[i].name)
if(fwrite(&add_list[i],sizeof(struct addr),1,fp)!=1)
printf("File write error\n")
fclose(fp)
}
/*Load the file*/
void load(void)
{
FILE *fp
register int i
if((fp=fopen("maillist","rb"))==NULL){
printf("Cannot open file\n")
return
}
init_list()
for(i=0i<MAXi++)
if(fread(&add_list[i],sizeof(struct addr),1,fp)!=1){
if(feof(fp))break
printf("File read error\n")
}
fclose(fp)
}
#include<stdio.h>#include<string.h>
struct student
{
int id //学号
char name[10]//姓名
int brithday
char sub[10]
int banji
char adress[20]
int dom
}stud[3]
void save()
{
FILE *p
int i
if((p=fopen("aa","wb"))==NULL)
{
printf("cannot open file")
return
}
for(i=0i<3i++)
if(fwrite(&stud[i],sizeof(struct student),1,p)!=1)
printf("file write error\n")
fclose(p)
}
void message()//输学生的基本信息
{
int i
for(i=0i<=2i++)
{ printf("请输入第%d位学生的信息,",i+1)
printf("请输入学号:")
scanf("%d",&stud[i].id)
printf("姓名:")
scanf("%s",stud[i].name)
printf("请输入生日:")
scanf("%d",&stud[i].brithday)
printf("请输入专业:")
scanf("%s",stud[i].sub)
printf("请输入班级:")
scanf("%d",&stud[i].banji)
printf("请输入地址:")
scanf("%s",stud[i].adress)
printf("请输入寝室号:")
scanf("%d",&stud[i].dom)
}
}
void main()
{
message()
save()
int i,t=0,m=0,j=0
FILE *p
if((
p=fopen("aa","rb"))==NULL)
{
printf("cannot open file\n")
return
}
printf("*******************************************************\n")
for(i=0i<=2i++)
{fread(&stud[i],sizeof(struct student),1,p)}
printf("请输入要查询的姓名:")
char a[10]
scanf("%s",&a)
for(i=0i<3i++)
if(strcmp(stud[i].name,a)==0)
printf("姓名%s、学号%d、出生年月%d、专业%s、班级%d、家庭地址%s、宿舍号码%d\n",stud[i].name,stud[i].id,stud[i].brithday,stud[i].sub,stud[i].banji,stud[i].adress,stud[i].dom)
}