p2->Class=p1->Class; strcpy(p2->sex,p1->sex); strcpy(p2->room,p1->room); p2->age=p1->age;
for(j=0;j
strcpy(p2->cou[j].num,p1->cou[j].num); strcpy(p2->cou[j].name,p1->cou[j].name); p2->cou[j].final=p1->cou[j].final;
p2->cou[j].performance=p1->cou[j].performance; p2->cou[j].total=p1->cou[j].total; p2->cou[j].credit=p1->cou[j].credit; strcpy(p2->cou[j].re,p1->cou[j].re); if(strcmp(p1->cou[j].re,\ {
for(i=0;i
strcpy(p2->cou[j].ag[i].term,p1->cou[j].ag[i].term); p2->cou[j].ag[i].total=p1->cou[j].ag[i].total; }
p2->cou[j].times=p1->cou[j].times; } }
stu=p2;//ce shi
{n++; printf(\---------\\n\
printf(\第%d个学生的信息+++++++++++++++++++++++++++++++++++\\n\
printf(\---------\\n\
printf(\①个人基本信息:\\n\printf(\printf(\班级:%-5d 学号:%-15s宿舍号码:%-11s性别:%-5s\\n 年龄:%-5d 姓名:%-15s电话号码:%-11s科
数:%-5d\\n\\n\stu->phone ,stu->subject );
for(j=0,l=1;j
printf(\---------\\n\
printf(\②选课具体信息:\printf(\第%d科####\\n\printf(\
printf(\课程编号:%-20s课程名称:%-20s\\n\printf(\考试成绩:%-20.1f平时成
绩:%-20.1f\\n\printf(\综合成绩:%-20.1f学
分 :%-20d\\n\\n\
printf(\③考试情况(若是fail则需重修):%s\\n\printf(\if(strcmp(\ for(i=0;i
数:%-20.1f\\n\ }
}//ce shi
if(stu->Class
printf(\这是第 [%d] 位学生的全部具体信息,是否要复制,若要请输入 [1] ,否则输入任一数字\
scanf(\ }
fwrite(p2,sizeof(struct student),1,fp); p3->next=p2; p3=p2;
p2=(struct student*)malloc(sizeof(struct student));//////// }
system(\//ce shi
p1=p1->next; }
fclose(fp); p2=NULL;
return(stu2); }
//##################################### 十八
######################################################## //#############################打开处复制的文件信息##################################################
struct student *out2() {
FILE *fp;
struct student *head,*p1,*stu;
int n=0,k=0; system(\ p1=head=NULL;
if((fp=fopen(\学生基本信息2.txt\ {
printf(\没 有 文 件 信 息\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\打开文件 exit(0); } else {
while(!feof(fp)) {
n++;
stu=(struct student*)malloc(sizeof(struct student));//开辟空间 fread(stu,sizeof(struct student),1,fp); if(n==1)
head=stu; else
p1->next=stu; p1=stu;//构建学生链 }
p1=stu=NULL; fclose(fp); }
return(head); }
//######################################## 十九 ################################################
//###################################删除复制的所有信息#########################################
void shan2() {
FILE*fp; char ch[11]; system(\
fp=fopen(\学生基本信息2.txt\ printf(\输出值:%d\\n\
printf(\所有复制的的学生信息都已被删除了**************************\\n\\n\\n\\n\\n\\n\\n\\n\\n\ fclose(fp); }
//####################################### 二十 ################################################
//###############################输出复制的学生基本信息########################################
void read2(struct student *head )//从文件中输出数据 {struct student*stu; int n=0,i,j,k,l; stu=head;
printf(\以下是复制的学生的个人基本信息以及具体选课信息\\n\
printf(\**********\\n\while(stu!=NULL) {
if(stu->Class
printf(\---------\\n\
printf(\第%d个学生的信息++++++++++++++++++++++++++++++++++++\\n\
printf(\---------\\n\
printf(\①个人基本信息:\\n\printf(\printf(\班级:%-5d 学号:%-15s宿舍号码:%-11s性别:%-5s\\n 年龄:%-5d 姓名:%-15s电话号码:%-11s科
数:%-5d\\n\\n\stu->phone ,stu->subject );
for(j=0,l=1;j
{printf(\----------\\n\
printf(\②选课具体信息:\printf(\第%d科####\\n\printf(\
printf(\课程编号:%-20s课程名称:%-20s\\n\printf(\考试成绩:%-20.1f平时成
绩:%-20.1f\\n\printf(\综合成绩:%-20.1f学
分 :%-20d\\n\\n\
printf(\③考试情况(若是fail则需重修):%s\\n\printf(\if(strcmp(\
{printf(\重修次数:%-20d\\n\for(i=0;i
数:%-20.1f\\n\\n\} }
}stu=stu->next; }
printf(\----------\
printf(\这 是 已 复 制 了 的 [%d] 位 学 生的 信 息\\n\}
//##################################### 二十一
###################################################### //############################从文件中写出但不显示信息###############################################
struct student *out3() {
FILE *fp;
struct student *head,*p1,*stu; int n=0,k=0; system(\ p1=head=NULL;
if((fp=fopen(\学生基本信息3.txt\ return(head); else {
while(!feof(fp)) {
n++;
printf(\//ce shi
stu=(struct student*)malloc(sizeof(struct student));//开辟空间 fread(stu,sizeof(struct student),1,fp);
printf(\//ce shi
if(n==1)
head=stu; else
p1->next=stu; p1=stu;//构建学生链 }
p1=stu=NULL;