2 u012722818 u012722818 于 2014.01.05 11:02 提问

求改正,不知道为什么导不出文件

#include
#include
#include
#include
#include
#include
#include
typedef struct student
{
char name[10];
int schoolnumber;
int classnumber;
float score[10];
struct student next;
} stu,*stupt;
stupt st=NULL;//学生信息的头指针
stupt qt=NULL;//学生信息的尾指针
FILE
fp;//文件指针

typedef struct user
{
char logname[10];
char passwd[6];
}*userpt,user;

void clear(void)//清空缓冲区函数
{
char ch;
do
{
ch=getchar();
}
while(ch!='\n');
}

void Printf_help()//主菜单
{
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");
printf(" |*尊敬的用户请您选择操作: |\n");
printf(" |
1.手动输入学生作业的分数 |\n");
printf(" |
2.从文件导入学生信息 |\n");
printf(" |
3.输入学号,显示某位学生作业完成情况 |\n");
printf(" |
4.输入班级的班号,显示该班所有学生的作业完成情况 |\n");
printf(" |
5.输入学生的学号,修改该学生的各类信息 |\n");
printf(" |
6.输入学生的学号,删除该学生的信息 |\n");
printf(" |
7.显示各类统计信息 |\n");
printf(" |
8.菜单 |\n");
printf(" |
9.清屏 |\n");
printf(" |
a.导出至文件 |\n");
printf(" |
0.退出系统 *|\n");
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");
printf(":");
}
//1.输入成绩
void inpu(stupt p)
{
int n;
int m=0;
int flag;
while(m {
p->score[m]=0;
m++;
}
printf("请您输入姓名:");
scanf("%s",p->name);
clear();
printf("请您输入学号:");
scanf("%d",&p->schoolnumber);
clear();
printf("请您输入班级号(如:101):");
scanf("%d",&p->classnumber);
clear();
do
{
printf("请您输入第几次作业(1~10):");
scanf("%d",&n);
clear();
printf("请您输入该次作业成绩:");
scanf("%f",&p->score[n-1]);
clear();//清空缓冲区
printf("您是否继续输入该生成绩,退出请按q,其他键继续:");
flag=getchar();
clear();//清空缓冲区堆积
}
while(flag!='q');
}

void input(stupt st,stupt qt)
{
char flag;
stupt p,q;
p=q=NULL;
printf("请问您确认输入?y.是 n.取消(注意大小写)\n");
while((flag=getchar())!='n')
{
clear();//清空缓冲区
if(flag=='y')
{
p=(stupt)malloc(sizeof(st));//动态申请空间
if(p==NULL)
exit(1);
inpu(p);
if(st==NULL)
st=qt=p;
else if(qt!=NULL)
{
qt->next=p; //尾指针非空(及链表已存在)接着尾指针建立链表
qt=p;
}
}
else
{
printf("温馨提示:您存在非法输入,请进入菜单界面重新选择(按8或9):");
return;
}
printf("请问您是否继续输入?y.是 n.否(注意大小写)\n");
}
if(flag=='n')
{
Printf_help();
clear();
}
if(p!=NULL&&qt!=NULL)
{
qt->next=NULL;
}

}
//2.导入成绩、
void read1(stupt p,FILE* fp)
{
fscanf(fp,"%s",&p->name);
fscanf(fp,"%d",&p->schoolnumber);
fscanf(fp,"%d",&p->classnumber);
fscanf(fp,"%f",&p->score[0]);
fscanf(fp,"%f",&p->score[1]);
fscanf(fp,"%f",&p->score[2]);
fscanf(fp,"%f",&p->score[3]);
fscanf(fp,"%f",&p->score[4]);
fscanf(fp,"%f",&p->score[5]);
fscanf(fp,"%f",&p->score[6]);
fscanf(fp,"%f",&p->score[7]);
fscanf(fp,"%f",&p->score[8]);
fscanf(fp,"%f",&p->score[9]);
}
//从文件导入数据
void filep_read_to_st(stupt st,FILE* fp)
{
stupt p;
st=NULL;//置空st,准备从文件中导入学生信息
while(1)
{
p=(stupt)malloc(sizeof(stu));
read1(p,fp);
if(feof(fp)) //如果文件结束,则结束(feof:检测流上的文件结束符)
break;
if(st==NULL)

st=qt=p;
else if(qt!=NULL)
{
qt->next=p; //尾指针非空(即链表已存在)接着尾指针建立链表
qt=p;
}
}
if(feof(fp))
{
qt->next=NULL; //如果文件结束,尾指针next指空
}
if(st!=NULL&&feof(fp))
printf("温馨提示:您的文件导入成功!\n");
else
printf("温馨提示:您的文件导入失败,请重新导入!\n");
}
void readfile(stupt st,FILE* fp)//写入数据方式
{
char flag,flag_1;
char filename[90];
printf("温馨提示:您如果在导入前有过手动输入,请先导出至文件后再进行导入,否则输入那部分数据将丢失。\n");
printf("按任意键继续,退出请按q:");
flag_1=getchar();
clear();
if(flag_1=='q')
{
return;
}
printf("程序默认路径导入:");
clear();
fp=fopen("student_homework_infor.txt","r");
if(access("student_homework_infor.txt",0)==1)
{
printf("温馨提示:您的文件不存在!\n");
}
if(fp==NULL)
{
printf("温馨提示:打开程序所在目录下的student_homework_infor.txt文件失败,请返回主菜单重试!\n");
return;
}
else filep_read_to_st(st,fp);
fclose(fp);

}
//3.按学号查询
void printf_score(stupt p)//输出该学号学生的成绩
{
int n=0;
printf("前十次成绩如下:\n");
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
while(n {
printf("%f ",p->score[n]);
n++;
}
printf("\n");
}

void search(stupt st,int snum)//判断学号是否合法
{
stupt p,q;
if(st==NULL)
{
printf("未建立学生信息表,请返回主菜单输入或导入所有学生的信息\n");
return;
}
else
{
p=st;
q=p->next;
}
if(p->schoolnumber==snum)
{
printf_score(p); //查找成功输出并返回上级函数
return;
}
while(q!=NULL)
{
if(q->schoolnumber==snum)
{
printf_score(q); //查找成功输出并返回上级函数
return;
}
q=q->next;//下一个
}
printf("查询失败,该学号学生信息不存在\n");
}

void school_num_search(stupt st)
{
int snum;
char flag;
do
{
printf("请输入要查找的学生学号(如221):");
scanf("%d",&snum);
clear();//清空scanf结束时进入缓冲的enter符
search(st,snum);
printf("退出请按q,其它任意键继续查找:");
flag=getchar();
clear();//清空回车符
}
while(flag!='q');
if(flag=='q')
{
Printf_help();
}
}
//4.给定班级查询
void printf_infor(stupt p) //输出函数
{
printf("%-5d%-8s%-5d%-6.1f%-6.1f%-6.1f%-6.1f%-6.1f%-6.1f%-6.1f%-6.1f%-6.1f%-6.1f\n",p->classnumber,p->name,p->schoolnumber,p->score[0],p->score[1],p->score[2],p->score[3],p->score[4],p->score[5],p->score[5],p->score[7],p->score[8],p->score[9]);
printf("──────────────────────────────────────\n");
}
void search_2(stupt st,int clnum)
{
stupt p,q;
int f=0;
if(st==NULL)
{
printf("未建立学生信息表,请返回主菜单输入所有学生的信息\n");
return;
}
else
{
p=st;
q=p->next;
}
printf("班级 姓名 学号 成绩1 成绩2 成绩3 成绩4 成绩5 成绩6 成绩7 成绩8 成绩9 成绩10\n");
printf("──────────────────────────────────────\n");
if(p->classnumber==clnum)
{
printf_infor(p);
f++;
}//查找成功输出
while(q!=NULL)
{
if(q->classnumber==clnum)
{
printf_infor(q);
f++;
}//查找成功输出
q=q->next;//下一个

}
if(f==0)
{
    printf("没有该班级学生信息\n");
}

}

void class_num_search(stupt st)//查找班级
{
int clnum;
char flag;
do
{
printf("请输入班级(如101):");
scanf("%d",&clnum);
clear();//清空scanf结束时进入缓冲的enter符
search_2(st,clnum);
printf("退出请按q,其它任意键继续查找:");
flag=getchar();
clear();//清空回车符
}
while(flag!='q');
if(flag=='q')
{
Printf_help();
}
}
//5.修改姓名班级成绩
void change_name(stupt p)//修改姓名
{
printf("原姓名为:%s\n",p->name);
printf("请输入新姓名:");
scanf("%s",p->name);
clear();
}
void change_class(stupt p)//修改班级
{
printf("原班级为:%d\n",p->classnumber);
printf("请输入新班级:");
scanf("%d",&p->classnumber);
clear();
}
void change_score(stupt p)//修改分数
{
int n;
char flag;
do
{
printf("请输入:要修改的作业的次数(1~10):");
scanf("%d",&n);
clear();//清空缓冲区
printf("原成绩为:%f\n",p->score[n-1]);
printf("请输入:该次作业新成绩:");
scanf("%f",&p->score[n-1]);
clear();//清空缓冲区
printf("是否继续修改该生成绩,退出请按q,其他键继续");
flag=getchar();
clear();
}
while(flag!='q');
}
void printf_help_2()//帮助列表
{
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");
printf(" |* 请选择操作: |\n");
printf(" |
1.修改姓名 |\n");
printf(" |
2.修改班级 |\n");
printf(" |
3.修改成绩 |\n");
printf(" |
0.返回 *|\n");
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");
printf(":");
}
void change(stupt p)
{
char a;
printf_help_2();
while((a=getchar())!='0')
{

    clear();
    printf("班级  姓名 学号 成绩1 成绩2 成绩3 成绩4 成绩5 成绩6 成绩7 成绩8 成绩9 成绩10\n");
    printf("──────────────────────────────────────\n");
    printf_infor(p);
    switch(a)
    {
    case '1':
    {
        printf("您选择了:1.修改姓名\n");
        change_name(p);
        break;
    }
    case '2':
    {
        printf("您选择了:2.修改班级\n");
        change_class(p);
        break;
    }
    case '3':
    {
        printf("您选择了:3.修改成绩\n");
        change_score(p);
        break;
    }

    default:
    {
        printf("非法输入,请重新选择!\n");
        break;
    }
    }
    printf_help_2();
}
if(a=='0')
{
    clear();
    printf("您选择了:0.返回\n");
}

}
void search_3(stupt st,int snum)
{
stupt p,q;
int f=0;
if(st==NULL)
{
printf("未建立学生信息表,请返回主菜单输入或导入所有学生的信息\n");
return;
}
else
{
p=st;
q=p->next;
}
if(p->schoolnumber==snum)
{
change(p); //查找成功并修改
f++;
return;
}
while(q!=NULL)
{
if(q->schoolnumber==snum)
{
change(q); //查找成功并修改
return;
}
q=q->next;//下一个
}
if(f==0)
{
printf("没有该学生信息\n");
}
}
void school_num_change(stupt st)
{
int snum;
char flag;
do
{
printf("请输入要修改学生学号(如101):");
scanf("%d",&snum);
clear();//清空scanf结束时进入缓冲的enter符
search_3(st,snum);
printf("退出请按q,其它任意键继续按学号查找修改信息:");
flag=getchar();
clear();//清空回车符
}
while(flag!='q');
if(flag=='q')
{
Printf_help();
}
}
//6.删除学生信息

void delete_pt(stupt st,int snum)//判断并删除
{
stupt p,q;
if(st==NULL)
{
printf("未建立学生信息表,请返回主菜单输入或导入所有学生的信息\n");
return;
}
else
{
p=st;
q=p->next;
}
if(p->schoolnumber==snum)//按照学号删除
{
st=q; //查找成功删除并返回上级函数
printf("班级 姓名 学号 成绩1 成绩2 成绩3 成绩4 成绩5 成绩6 成绩7 成绩8 成绩9 成绩10\n");
printf("──────────────────────────────────────\n");
printf_infor(p);
free(p);
printf("上面信息删除成功!\n");
return;
}
while(q!=NULL)
{
if(q->schoolnumber==snum)
{
p->next=q->next; //查找成功删除并返回上级函数
printf("班级 姓名 学号 成绩1 成绩2 成绩3 成绩4 成绩5 成绩6 成绩7 成绩8 成绩9 成绩10\n");
printf("──────────────────────────────────────\n");
printf_infor(q);
free(q);
printf("上面信息删除成功!\n");
return;
}
else//下一个
{
p=q;
q=p->next;
}
}
printf("删除失败,该学号学生信息不存在\n");

}

void school_num_delete(stupt st)
{
int snum;
char flag;
do
{
printf("请输入要删除的学生学号(如221):");
scanf("%d",&snum);
clear();//清空scanf结束时进入缓冲的enter符
delete_pt(st,snum);
printf("返回请按q,其它任意键继续删除:");
flag=getchar();
clear();//清空回车符
}
while(flag!='q');
if(flag=='q')
{
Printf_help();
}
}
//7.查询成绩,按学号班级,降序

void printf_help_3()//帮助菜单
{
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");
printf(" |*请选择操作: |\n");
printf(" |
1.按学号查看学生平均成绩 |\n");
printf(" |
2.按班级查看学生平均成绩 |\n");
printf(" |
3.按平均成绩降序排序(操作执行后将会对学生信息排序 )*|\n");
printf(" |* 0.返回主菜单 *|\n");
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");
printf(":");
}
int aver(stupt p)//平均成绩
{
int n=0;
float sum=0;//和初始化为0
while(n {
sum+=p->score[n];
n++;
}
return sum;
}
void search_4(stupt st,int snum)
{
stupt p,q;
int f=0;
int sum;
printf("-----------------------------------------------------------------------------\n");//分行符
if(st==NULL)
{
printf("未建立学生信息表,请返回主菜单输入或导入所有学生的信息\n");
return;
}
else
{
p=st;
q=p->next;
}
if(p->schoolnumber==snum)
{
sum=aver(p);
printf("姓名:%-10s学号:%-10d班级:%-10d作业完成平均成绩:%d\n",p->name,p->schoolnumber,p->classnumber,sum/10);
f++;
printf("-----------------------------------------------------------------------------\n");//分行符
return;
}//查找成功并输出平均值
while(q!=NULL)
{
if(q->schoolnumber==snum)
{
sum=aver(q);
printf("姓名:%-10s学号:%-10d班级:%-10d作业完成平均成绩:%d\n",q->name,q->schoolnumber,q->classnumber,sum/10);
f++;
printf("-----------------------------------------------------------------------------\n");//分行符
return;
}//查找成功并输出平均值
q=q->next;//下一个
}
if(f==0)
{
printf("没有该学生信息\n");
}

}
void snum_check_aver(stupt st)//按学号输出学生平均成绩
{
int snum;
printf("请输入学号:");
scanf("%d",&snum);
clear();//清空scanf结束时进入缓冲的enter符
search_4(st,snum);
}

void search_5(stupt st,int cnum)
{
stupt p,q;
int f=0;
int sum;
printf("-----------------------------------------------------------------------------\n");//分行符
if(st==NULL)
{
printf("未建立学生信息表,请返回主菜单输入或导入所有学生的信息\n");
return;
}
else
{
p=st;
q=p->next;
}
if(p->classnumber==cnum)
{
sum=aver(p);
printf("姓名:%-10s学号:%-10d班级:%-10d作业完成平均成绩:%d\n",p->name,p->schoolnumber,p->classnumber,sum/10);
f++;
}//查找成功并输出平均值
while(q!=NULL)
{
if(q->classnumber==cnum)
{
sum=aver(q);
printf("姓名:%-10s学号:%-10d班级:%-10d作业完成平均成绩:%d\n",q->name,q->schoolnumber,q->classnumber,sum/10);
f++;
}//查找成功并输出平均值
q=q->next;//下一个
}
if(f==0)
{
printf("没有该班级的信息\n");
}
printf("-----------------------------------------------------------------------------\n");//分行
}
void cnum_check_aver(stupt st)
{
int cnum;
printf("请输入班级:");
scanf("%d",&cnum);
clear();//清空scanf结束时进入缓冲的enter符
search_5(st,cnum);
}

void insert_emp1(stupt emp1,stupt q)
{
stupt pt1,pt2;
pt1=emp1;
pt2=pt1->next;
while(pt2!=NULL)
{
if(aver(q)>aver(pt2))//插到pt2之前
{
pt1->next=q;
q->next=pt2;
return;
}
else//指针后移
{
pt1=pt2;
pt2=pt1->next;
}
}
pt1->next=q;//比所有的都不大,插到末尾
q->next=NULL;
}
void descending_order_check(stupt st)
{
stupt emp1,head1,head2,pt;
float sum;
printf("-----------------------------------------------------------------------------\n");//分行符
if(st==NULL)
{
printf("未建立学生信息表,请返回主菜单输入或导入所有学生的信息\n");
return;
}
head1=(stupt)malloc(sizeof(stu));
head2=(stupt)malloc(sizeof(stu));//另一个空链表头指针,将st有序插入到head2
head1->next=st->next;
st->next=NULL;
head2->next=st;
pt=head1->next;
while(pt!=NULL)
{
head1->next=pt->next;
insert_emp1(head2,pt);
pt=head1->next;
}
emp1=head2->next;
st=emp1;
while(emp1!=NULL)
{
sum=aver(emp1);
printf("姓名:%-10s学号:%-10d班级:%-10d作业完成平均成绩:%-10.3f\n",emp1->name,emp1->schoolnumber,emp1->classnumber,sum/10);
emp1=emp1->next;
}
printf("-----------------------------------------------------------------------------\n");//分行符

}
//-----------------------------------------------------------------------------------------------
void statistics_result(stupt st)
{
char flag;
printf_help_3();
while((flag=getchar())!='0')
{

    clear();
    switch(flag)
    {
    case '1':
    {
        printf("您选择了:1.按学号查看学生平均成绩\n");
        snum_check_aver(st);
        break;
    }
    case '2':
    {
        printf("您选择了:2.按班级查看学生平均成绩\n");
        cnum_check_aver(st);
        break;
    }
    case '3':
    {
        printf("您选择了:3.查看学生平均成绩降序序列\n");
        descending_order_check(st);
        break;
    }

    default:
    {
        printf("非法输入,请重新选择!\n");
        clear();
        break;
    }
    }
    printf_help_3();
}
if(flag=='0')
{
    printf("您选择了:0.返回主菜单\n");
    clear();
    Printf_help();
}

}
//导出
void fileprintf(stupt st,FILE* fp)
{
stupt pt;
pt=st;
while(pt!=NULL)
{
fprintf(fp,"%s %d %d %f %f %f %f %f %f %f %f %f %f\n",pt->name,pt->schoolnumber,pt->classnumber,pt->score[0],pt->score[1],pt->score[2],pt->score[3],pt->score[4],pt->score[5],pt->score[6],pt->score[7],pt->score[8],pt->score[9]);
pt=pt->next;
}
printf("文件导出成功 !\n");

}
void creat_files(stupt st,FILE* fp)
{

char flag;
char filename[90];
printf("默认路径保存(为当前目录下的student_homework_infor.txt)");
clear();
fp=fopen(".\\student_homework_infor.txt","a");
if(fp==NULL)
{
    printf("创建文件至程序所在目录下的student_homework_infor.txt文件失败,请返回主菜单重试!");
    return;
}
else fileprintf(st,fp);
fclose(fp);

}
//注册登录
void printf_log()
{
printf("\t\t\t~~~~~~~~~~~~~~~~~~~~~~~~ \n");
printf("\t\t\t|* 请选择操作: |\n");
printf("\t\t\t|
1.登录 |\n");
printf("\t\t\t|
2.注册 |\n");
printf("\t\t\t|
0.退出 |\n");
printf("\t\t\t~~~~~~~~~~~~~~~~~~~~~~~~ \n");
printf(":");
}
void write_in_file(char *a,char *name,FILE *fp)
{
fprintf(fp,"%s %s\n",a,name);
fclose(fp);
printf("您已注册成功!\n");
}
void read_passwd(char *a,char *name,FILE *fp)
{
fscanf(fp,"%s",a);
fscanf(fp,"%s",name);
}
int log()
{
char ch;
char a[7]={'0'};
char name[12]={'0'};//初始化
char b[7]={'0'};
FILE
fp;
int i;

fp=fopen("passwd.txt","r");
if(fp==NULL)
{   
    printf("注册文件无法打开,请在程序当前目录下创建passwd.txt文件并重新注册!\n"); 
    exit(1);

}
ch=getc(fp);
if(ch==EOF)
{
    printf("未注册,请注册!\n");
    return 1;
}
fclose(fp);
fp=fopen("passwd.txt","r");
if(fp==NULL)
{
    fp=fopen("passwd.txt","a");
    exit(1);
    fclose(fp);
}
read_passwd(a,name,fp);
fclose(fp);
printf("用户名:%s\n",name);
printf("请输入密码:(6个字符)");
for(i=0;i<6;i++)
{
    b[i]=getch();
    printf("*");
}
b[6]='\0';
clear();
if(strcmp(a,b)==0)
{
    printf("登陆成功!\n");
    return 0;
}
else
{
    printf("密码错误,请重新登录\n"); 
    return 1; 
}

}
void login()
{
char a[7]={'0'};
char b[7]={'0'};
char name[12]={'0'};//初始化
FILE* fp;
char ch;
int i;
fp=fopen("passwd.txt","r");
if(fp==NULL)
{
printf("注册文件无法打开或已损坏,请在程序当前目录下创建passwd.txt文件!\n");
return;
}
ch=getc(fp);
fclose(fp);
if(ch!=EOF)
{
printf("账户已存在,请返回登陆菜单!\n");
return;
}
printf("请输入用户名:(小于12字符)");
scanf("%s",name);
clear();
lab_3:printf("请输入密码:(6个字符)");
for(i=0;i<6;i++)
{
a[i]=getch();
printf("*");
}
clear();
printf("请确认密码:(6个字符)");
for(i=0;i<6;i++)
{
b[i]=getch();
printf("*");
}
clear();
if(strcmp(a,b)!=0)
{
printf("两次输入密码不一致,请重新输入!\n");
goto lab_3;
}
fp=fopen("passwd.txt","wb");
write_in_file(a,name,fp);
}
int user_log()
{
char flag;
int f;
do
{
printf_log();
flag=getchar();
clear();
if(flag=='1')
{
f=log();
if(f==0)
{
return 0;
}
}
else if(flag=='2')
{
login();
}
else if(flag=='0')
{
return 1;
}
else
{
printf("非法输入!,请重新新选择:\n");
}
}
while(1);

}
////////////////////////////////////////////////-main-//////////////////////////////////////////////////
int main()
{
char a,ch;

printf("                 ┄欢迎您使用学生作业完成情况管理程序┄                     \n");
if(user_log()==1)
{
    printf("                           ┄谢谢您的使用┄                                  \n");
    return 0;
}

lab_3:
Printf_help();
while((a=getchar())!='0')
{
clear();
switch(a)
{
case '1':
{
printf("您选择了:1.手动输入学生作业的分数\n");
input(st,qt);
break;
}

case '2':
{
printf("您选择了:2.从文件导入学生信息\n");
readfile(st,fp);
Printf_help();
break;
}
case '3':
{
printf("您选择了:3.给定学号,显示某位学生作业完成情况\n");
school_num_search(st);
break;
}
case '4':
{
printf("您选择了:4.输入班级的班号,显示该班所有学生的作业完成情况\n");
class_num_search(st);
break;
}
case '5':
{
printf("您选择了:5.输入学生的学号,修改该学生的作业完成信息\n");
school_num_change(st);
break;
}
case '6':
{
printf("您选择了:6.输入学生的学号,删除该学生的信息\n");
school_num_delete(st);
break;
}
case '7':
{
printf("您选择了:7.显示各类统计信息\n");
statistics_result(st);
break;
}
case '8':
{
printf("您选择了:8.菜单\n");
Printf_help();
break;
}
case '9':
{
printf("您选择了:9.清屏\n");
system("CLS");
Printf_help();
break;
}
case 'a':
{
printf("您选择了:a.导出文件\n");
creat_files(st,fp);
Printf_help();
break;
}
default:
{
printf("非法输入,请重新选择!\n");
Printf_help();
break;
}

    }
}
if(a=='0')
{
    printf("您选择了:0.退出系统\n");
    printf("退出系统时需要导出文件,否则之前操作无效!\n");
    printf("按q返回,其它任意键继续\n");
    clear();
    if((ch=getchar())=='q')
    {
        clear();
        goto lab_3;
    }
    printf("                           ┄谢谢使用┄                                  \n");
}
return 0;

}

1个回答

u013316504
u013316504   2014.01.05 18:44

大哥,你真猛。贴这么大段代码。
建议:
1.你贴个三五行可能有人帮你分析,这么大段没人看。
2.调代码是程序员的最基本素养,要学着自己慢慢调试,刚开始可能很难,过段时间就会发现很爽的

Csdn user default icon
上传中...
上传图片
插入图片