printf(\ printf(\ printf(\ printf(\^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\
printf(\到 现 在 为 止 , 有 %d 位 学 生 登 录 注 册\\n\
printf(\^^^^^^^^^^^^^^^^^^^^^^^^^\\n\\n\\n\}
//##################################### 十三
######################################################## //############################从文件中写出但不显示信息###############################################
struct student *out() {
FILE *fp;
struct student *head,*p1,*stu; int n=0,k=0; system(\ p1=head=NULL;
if((fp=fopen(\学生基本信息.txt\ return(head); 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->next=NULL; fclose(fp); }
return(head); }
//########################################### 十四
#####################################################
//#####################################删除学生个人所有信息#############################################
struct student*del(struct student*head)//删除信息函数 {
struct student*p1,*p2; p1=head;
char num[12],b[7]; int n=0;
printf(\请输入你要删除的学生的学号:\\n\\n\ scanf(\ system(\
printf(\提醒:信息删除之后无法恢复,是否确定要删除?\\n\\n 若真要删请输入[ delete ],否则输入任一字符!\ scanf(\ fflush(stdin); system(\
if(strcmp(\ {
if(head==NULL) {
printf(\还 没 有 没 有 学 生 的 信 息\ return(head); }
while(strcmp(num,p1->num)!=0&&(p1->next!=NULL)) {
p2=p1;
p1=p1->next; }
if(strcmp(num,p1->num)==0) {
if(head==p1) head=p1->next; else
p2->next=p1->next; writeshan(head);
printf(\学号为[%s]的学生的信息已被删除############################\\n\\n\\n\
printf(\请问是否查看删除后剩余的学生信息,若要请输入 1 ,否则输入任一数字!\
scanf(\ system(\
if(n==1)read3(head);
} else {
printf(\对 不 起,这 里 没 有 学 号 为[ %s ]的 信 息\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\ } } else
printf(\ return(head); }
//##################################### 十五
################################################### //############################保存复制的信息信息##########################################
void writeshan(struct student *head)//写入磁盘文件 {
FILE *fp;
struct student *stu; int n=0;
fp=fopen(\学生基本信息.txt\打开文本 stu=head;
//system(\//ce shi
if(head==NULL)
{printf(\文件中还没有学生基本信息\\n\ else {
while(stu!=NULL&&stu->Class
if(stu->Class
fwrite(stu,sizeof(struct student),1,fp); printf(\
============================================\\n\
printf(\删除后剩余学生的姓名: %-2d、%-12s……\\n\
printf(\…………………………………………………………\\n\ stu=stu->next;//下一个学生
} }
printf(\
============================================\\n\
printf(\提示:若姓名为空号,则是无效的学生信息!\
printf(\============================================\\n\ //printf(\ }
fclose(fp);//关闭文件 }
//######################################## 十六 ################################################ //#####################################删除所有信息############################################# void shan() {
FILE*fp;
char ch[5],a[30],b[10]; char c[10]; system(\
printf(\请问是删除原有信息还是已复制的信息?\\n\\n\\n 若是原有信息则请输入[yuan],若是复制信息则输入[fuzhi],否则输入任一字符\
scanf(\ fflush(stdin); system(\
if(strcmp(\
else if(strcmp(\ else return;
printf(\年轻人,别冲动,悄悄一按,所有信息将瞬间永远地消失,\\n\\n\\n\\n\\n\\n 若醒悟了,还来得及,记住,不要按【 yes 】,否则全没了哈!\\n\\n\ scanf(\ system(\
if(strcmp(\ {
printf(\你还真要全删呀?最好就别那么狠哈,否则,辛辛苦苦的输入就白费了!\\n\\n\
printf(\若 果 你 确 定 真 的 要 全 删,就 输 入 [ wohaizhengyaoshanne ]\\n\\n\ scanf(\ system(\
if(strcmp(\
{
printf(\哎呀,那可真没办法了,最后输入[ jiushiyaoshan ]吧\\n\ scanf(\
if(strcmp(b,\ {
fp=fopen(\学生基本信息.txt\
printf(\所 有 学 生 信 息 已 成 功 删 除\\n\\n\\n\\n\\n\\n\\n\\n\\n\ fclose(fp); } } }
return; }
//##################################### 十七
################################################## //################################复制学生信息函数#############################################
struct student*chuli(struct student*head)//处理多余信息函数 {
struct student*p1,*p2,*stu,*stu2,*p3; FILE*fp;
fp=fopen(\学生基本信息2.txt\删除原有信息 fclose(fp);
fp=fopen(\学生基本信息2.txt\int k=0,i,j;
int n=0,l; //ce shi p1=head;
p2=(struct student*)malloc(sizeof(struct student)); stu2=p3=p2; while(p1!=NULL) {
if(p1->Class
k++;
p2->subject=p1->subject;
//printf(\shu:%-10d\\n\ strcpy(p2->num,p1->num); strcpy(p2->name,p1->name); strcpy(p2->phone,p1->phone);