C语言程序设计实例

Python09

C语言程序设计实例,第1张

#include<stdio.h>

#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)

}