1、 p1=p2=(struct course *)malloc(sizeof(struct course); strcpy(p2-student_ID,student_ID);course_ID,course_ID); p2-score=score;next=NULL; p1=head_c; if(head_c=0) head_c=p2,p2- else while(strcmp(p2-student_ID, p1-student_ID)0) & (p1-next!=NULL) p=p1; p1=p1-next; if(strcmp(p2-student_ID,p1-student_ID)nex
2、t=p2; p2-next=p1; else p1- p2- ccount+;是否退出?(YN)n getchar();%c,&cho); while(cho!=ncho!N return (head_c);struct student *add_info() struct student *p1,*p2,*p;student_ID,name,telephonen%s%s%s,student_ID,name,telephone); p1=p2=(struct student *)malloc(sizeof(struct student);name,name);telephone,telepho
3、ne); p1=head_s; if(head_s=0) head_s=p2,p2- if(head_s=p1) head_s=p2; scount+;(Y/N)n return (head_s);void add() int cho;do-增加学生档案信息-n1.增加学生基本信息 n2.增加学生成绩 n0.退出nn请选择:%d switch(cho) case 1:head_s=add_info();break; case 2:head_c=add_score(); case 0:;=0);void print_c() struct course *p; printf(nNow,These
4、%d records are:n,ccount); p=head_c; if(head_c!=NULL) do printf(%s %s %dn,p-student_ID,p-course_ID,p- p=p- while(p!=NULL);void print_s() struct student*p;,scount); p=head_s; if(head_s!%s %s %snname,p-telephone);void print()-打印学生档案信息-n1.打印学生基本信息 n2.打印学生成绩 n0.退出nprint_s();print_c();void init() FILE *fp
5、1,*fp2; struct student *p1,*p2; struct course *p3,*p4; struct stud char student_ID10; char name10; char telephone12; stu; struct cour char course_ID10; int score; cou; if (fp1=fopen(E:jiguiyangbasic_info.dat,rb) = NULL) 没有学生信息数据,请添加学生信息! else fread(&stu,sizeof(struct stud),1,fp1); while ( !feof(fp1)
6、 ) p2=(struct student *)malloc(sizeof(struct student); strcpy(p2-student_ID,stu.student_ID);name,stu.name);telephone,stu.telephone); p2- if (head_s=0) head_s=p2,p1=head_s;next=p2,p1=p1- scount+; fread(& fclose(fp1); if (fp2=fopen(jiguiyangscore.dat没有学生成绩,请添加学生成绩!cou,sizeof(struct cour),1,fp2);feof(f
7、p2) ) p4=(struct course *)malloc(sizeof(struct course); strcpy(p4-student_ID,cou.student_ID);course_ID,cou.course_ID); p4-score=cou.score; if (head_c=0) head_c=p4,p3=head_c; p3-next=p4,p3=p3- ccount+; fclose(fp2);void save() struct student *p1; struct course *p2;wb if(head_s! do strcpy(stu.student_I
8、D,p1-student_ID); strcpy(stu.name,p1-name); strcpy(stu.telephone,p1- fwrite(& while(p1! fclose(fp1); p2=head_c; if(head_c! strcpy(cou.student_ID,p2-strcpy(cou.course_ID,p2-course_ID); cou.score=p2-score; p2=p2- while(p2! fclose(fp2);struct student *alter_info() void save(); if(head_s=NULL)没有%s号学生基本信
9、息!,student_ID); return head_s; 请输入要修改学生的学号:%sgetchar();p1=head_s; while(strcmp(student_ID,p1-student_ID)!=0 &next)! p1=p1- if(strcmp(student_ID,p1-student_ID)=0)%s号学生的基本信息为:%s %s %s,p1-name,p1- getchar();是否修改姓名? cho=getchar(); if(cho=Y|cho=y) printf(请输入修改后的姓名: scanf(,name); strcpy(p1-是否修改电话号码?) 请输入修
10、改后的电话号码:,telephone);信息已修改,修改后%s号学生的基本信息为:没有%s号学生信息n是否继续? cho=getchar(); while(cho= | cho=save(); return head_s;struct course *alter_score()struct course *p1;char course10;int score;char cho;if(head_c=NULL) %s %s %d,student_ID,course,score);是否修改课程?请输入修改后的课程:,course); strcpy(course,course);是否修改成绩?请输入修
11、改后的成绩: while(cho= save(); return head_c;void query_s() char n; struct student *p1;student_IDn while(strcmp(p1-student_ID,student_ID)!=0) & if(strcmp(p1-student_ID, student_ID)=0) %s号学生的基本信息:%s,%s,%sn,student_ID,p1- if(strcmp(p1-student_ID, student_ID)!=0)没有%s号学生的基本信息!是否继续?输y继续 n=getchar(); while(n=|
12、 n=void query_c() struct course *p1;%s号学生的成绩:%s,%s,%dncourse_ID,p1-没有%s号学生的成绩! | void alter()-修改学生档案信息-n1.修改学生基本信息 n2.修改学生成绩信息 n0.退出nalter_info();alter_score(); while(cho!void delet_info() struct student *p,*p1; do 请输入要删除的学生学号: p1=p=head_s; while(strcmp(student_ID,p- p- p1=p; if(strcmp(student_ID,p-
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2