case 9:shan();break; //删除所有信息 case
10:head=out();head=chuli(head);writeshan(head);head=out();read2(head);break;//复制信息
case 11:head=out2();read2(head);break;//打开复制信息 case 12:exit(0);
defaul: system(\输入错误\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\出错 }
function=0;
printf(\^^^^^^^^^^^^^^\\n\
printf(\此操作已结束,若要继续操作其他功能,请按回车键,回到主菜单***********\\n\是否退出程序
printf(\————————————————————————————————————————\\n\
fflush(stdin);//清除缓存 getchar();
fflush(stdin);//清除缓存
system(\ } }
//#################################### 二
##################################################### //##################################输入信息
###################################################
struct student *creat()//构建学生成绩链表 {
struct student*head=NULL, *stu,*p1;//声明学生结构体指针 int j=0,i=0,con=1,n=0,k; char c[4];
system(\
stu=(struct student*)malloc(sizeof(struct student));//开辟空间 printf(\现在开始输入学生基本信息###########################\\n\\n\开始输入学生信息 while(con==1) {
printf(\真的要输入信息吗?如果不想输入,请输入 0 ,否则输入其它任一数字 \ scanf(\
if(k==0) return(head); system(\
printf(\、请输入你的班级(数字):\
printf(\****************\\n\
printf(\请注意:\\n\\n 第一位代表年级;第二位代表专业 (1、网络工程 2、软件工程 \\n\\n 3、计算机科学与技术 4、地理信息系统 5、教技 6、工业工程 7、信管 \\n\\n 8、测绘 9、软件工程(软件学院));第三位代表班级!\\n\\n\ printf(\如 112表示09网络工程(2)班 \\n\
printf(\************\\n\
scanf(\班级 printf(\
printf(\、请输入你的学号(最多11位符号):\ scanf(\学号 printf(\
printf(\、请输入你的性别, 男 或 女:\ scanf(\性别 printf(\
while((strcmp(\男\女\ {
printf(\输入错误,请重新输入:\ scanf(\性别 printf(\ }
printf(\、请输入你的年龄:\ scanf(\年龄 printf(\
printf(\、请输入你的姓名(最多19位符号):\ scanf(\姓名 printf(\
printf(\、请输入你的宿舍号码(最多19位符号):\ scanf(\宿舍号码 printf(\
printf(\、请输入你的电话号码(最多14位符号):\ scanf(\电话号码 printf(\
printf(\、请输入你所选的课程的门数:\
scanf(\输入学生选修的课程数 printf(\
for(j=0;j
printf(\、输入课程编码(最多10):\ scanf(\课程编号 printf(\
printf(\、输入课程名称(最多20位):\ scanf(\课程名称 printf(\
printf(\、输入学生的考试成绩:\
scanf(\考试成绩 printf(\
printf(\、输入学生的平时成绩:\
scanf(\平时成绩 printf(\
printf(\、输入学生的综合成绩:\ scanf(\总成绩 printf(\
printf(\、输入学生的已修的总学分:\ scanf(\学分 printf(\
if((stu->cou[j].total<60.0)&&(stu->cou[j].total>0)) strcpy(stu->cou[j].re,\
else strcpy(stu->cou[j].re,\是否通过考试 if(strcmp(\ {
printf(\、学生没考过这门课\\n\ printf(\、请输入重修次数:\ scanf(\ printf(\
for(i=0;i
printf(\、输入重修的学期(不超过3个字符,按先后顺序):\ scanf(\重修学期 printf(\
printf(\、输入考试分数:\
scanf(\重修分数 printf(\ } } }
printf(\、如果输入的信息正确,请输入 y ,否则请输入 n :\
printf(\
printf(\ printf(\ scanf(\ printf(\
if(strcmp(c,\ { n++;
if(n==1)
head=stu; else
p1->next=stu; p1=stu;
}//构建学生链
stu=(struct student*)malloc(sizeof(struct student));//开辟空间 printf(\、如果停止输入学生基本信息,请输 0 ;否则请输入 1 :\ printf(\ printf(\ printf(\ printf(\
scanf(\是否结束输入学生信息 printf(\
system(\//ce shi }
p1=NULL; //ceshi stu=NULL;
return(head);//返回头指针 }
//##################################### 三
################################################### //###################################保存信息
#################################################
void write(struct student *head)//写入磁盘文件 {
FILE *fp;
struct student *stu; stu=head;
system(\
fp=fopen(\学生基本信息.txt\打开文本 if(head==NULL); else {
while(stu!=NULL) {
fwrite(stu,sizeof(struct student),1,fp); stu=stu->next;//下一个学生 } }
fclose(fp);//关闭文件 }
//####################################### 四 ################################################ //#################################输出学生基本信息##########################################
void read(struct student *head )//从文件中输出数据 {struct student*stu; int n=0,i,j,k,l,f; system(\stu=head;
if(head==NULL) {
printf(\对不起,还没有学生的信息,请问是否输入新信息,若要请输入‘1’;否则请输入‘0’\\n\\n\ scanf(\ if(k==1) {
head=creat(); write(head); system(\
printf(\信息输入完毕,请问是否马山打开,若是请输入 1 否则输入任一数字\\n\\n\ scanf(\
if(f==1){head=out();read(head);} else {system(\ }
else {system(\}
printf(\以下是所有学生的个人基本信息以及具体选课信息\\n\printf(\**********\while(stu!=NULL) {
if(stu->Class
printf(\---------\\n\
printf(\第%d位学生的信息++++++++++++++++++++++++++++++++++++\\n\
printf(\---------\\n\
printf(\①个人基本信息:\\n\printf(\
printf(\班级:%-5d 学号:%-11s宿舍号码:%-19s性别:%-5s\\n\\n 年龄:%-5d 姓