qq_34226561 2016-03-16 00:45 采纳率: 100%
浏览 1621
已采纳

求c语言大神帮忙看看哪里出错了

#include
#include
#include

struct course
{
int num; //选题编号
char name[20];//课题名称
char kind[10];//课程性质
int taltime,ttime,etime,mark,term;//课程时间,学分,开课信息
};
struct student
{
int snum; //学生学号
int cnum; //所选课题编号
char cname[20];//所选课题名称
};
//函数原型
void fl();
void menu();
void browser();
void search();
void xuan_ti();
void xuanti_information();
void input();

void fl()
{
printf("\n 选题编号课题名称课程性质授课学时实验或上机学时总学时学分开课学期:\n");
}
void menu()
{
printf("\n\n\n");
printf(" 欢迎使用毕业设计选题管理系统! \n");
printf(" 1-浏览选题信息 2-查询选题信息\n");
printf(" 3-进入选题操作 4-选题情况统计\n");
printf(" 5-录入选题信息 0-退出选题系统\n");
printf(" 请选择输入选项编号(请选择5进行课程信息录入):");
}

void main()
{
int n;
menu();
scanf("%d",&n);
//防止错误,提示重新输入
for(;n>5||n {
printf("\n 输入错误,请重新输入! ");
scanf("%d",&n);
}
while(n>0&&n {
switch(n)
{
case 1:browser();break;//浏览选题信息
case 2:search();break; //查询选题信息
case 3:xuan_ti();break;//进入选题信息
case 4:xuanti_information();break;//选题情况统计
case 5:input();break;//录入选题信息
}
scanf("%d",&n);
for(;n>5||n {
printf("\n 输入错误,请重新输入! ");
scanf("%d",&n);
}
system("cls");//清除屏幕
}
if(n==0)
exit(0);//退出系统
}
//浏览选题信息
void browser()
{
FILE*fp;//定义指向文件的指针
struct course c;//定义课程结构体变量c
if((fp=fopen("course.txt","r"))==NULL)
{
printf("\nCannot open course!\n");
}
fl();
for(;!feof(fp);)//直到文件结束
{
fscanf(fp,"%d%s%s%d%d%d%d%d\n",&c.num,&c.name,&c.kind,&c.ttime,&c.etime,&c.taltime,&c.mark,&c.term);//格式化输出
}
fclose(fp);//关闭文件
menu();
}
//查询选题信息
void search()
{
FILE*fp;//定义文件指针变量
struct course c;//定义学生结构体变量c
int score;
char kind[10];
char name[20];
int b;
//输入需要的查询选题信息的方式
printf("\n 1.按学分查询\n");
printf("\n 2.按课程性质查询\n");
printf("\n 3.按课程名称查询\n");
printf("\n 请选择查询方式,输入选项数字:");
scanf("%d",&b);
for(;b3;)
{
printf("\n 输入错误,请重新输入! ");
scanf("%d",&b);
}
//按学分查询
if(b==1)
{
printf("\n 请输入您要查询的学分:");
scanf("%d",&score);
if((fp=fopen("course.txt","r"))==NULL)
printf("\nCannot open coruse!\n");
fl();
for(;!feof(fp);)
{
fscanf(fp,"%d%s%s%d%d%d%d%d\n",&c.num,&c.name,&c.kind,&c.ttime,&c.etime,&c.taltime,&c.mark,&c.term);
if(c.mark==score)
printf("%5d%12s%9s%9d%12d%13d%8d%9d\n",c.num,c.name,c.kind,c.ttime,c.etime,c.taltime,c.mark,c.term);
}
}
//按课程性质查询
else if(b==2)
{
printf("\n 请输入您要查询的课程性质:");
scanf("%s",&kind);
if((fp=fopen("course.txt","r"))==NULL)
printf("\nCannot open coruse!\n");
fl();
for(;!feof(fp);)
{
fscanf(fp,"%d%s%s%d%d%d%d%d\n",&c.num,&c.name,&c.kind,&c.ttime,&c.etime,&c.taltime,&c.mark,&c.term);
if(strcmp(c.kind,kind)==0)
printf("%5d%12s%9s%9d%12d%13d%8d%9d\n",c.num,c.name,c.kind,c.ttime,c.etime,c.taltime,c.mark,c.term);
}
}
//按选题名称查询
else if(b==3)
{
printf("\n 请输入您要查询的选题名称:");
scanf("%s",&name);
if((fp=fopen("course.txt","r"))==NULL)
printf("\nCannot open coruse!\n");
fl();
for(;!feof(fp);)
{
fscanf(fp,"%d%s%s%d%d%d%d%d\n",&c.num,&c.name,&c.kind,&c.ttime,&c.etime,&c.taltime,&c.mark,&c.term);
if(strcmp(c.name,name)==0)
printf("%5d%12s%9s%9d%12d%13d%8d%9d\n",c.num,c.name,c.kind,c.ttime,c.etime,c.taltime,c.mark,c.term);
}
}
else{
printf("输入错误!");
exit(1);
}
fclose(fp);
menu();//调用menu函数
}
//进入选题操作
void xuan_ti()
{
struct student s;//定义学生结构体变量s
struct course c;
FILE*fp;
printf("\n请输入您的学号及您要选择的课题编号(用空格分开):");
scanf("%d%d,&s.snum,&s.cnum");
if((fp=fopen("course.txt","r"))==NULL)//打开选题记录文件
{
printf("\nCannot open course!\n");
}
for(;feof(fp);)
{
fscanf(fp,"%d%s%s%d%d%d%d%d\n",&c.num,&c.name,&c.kind,&c.ttime,&c.etime,&c.taltime,&c.mark,&c.term);
if(s.cnum==c.num)
break;
}
fclose(fp);//关闭选题记录文件
if((fp=fopen("student.txt","a+"))==NULL)
{
printf("\nCannot open student!\n");
}//将学生选题信息输入文件
fprintf(fp,"%d%d%s\n",s.snum,s.cnum,c.name);
fclose(fp);
printf("\n 恭喜您选题成功!\n");
menu();
}
//选题情况统计
void xuanti_infomation()
{
int total=0;//人数统计变量
FILE*fp;
struct student s;
if((fp=fopen("student.txt","r"))==NULL)
{
printf("\nCannot open student!\n");
}
printf("\n 学号选题编号名称\n");
for(;!feof(fp);)
{
fscanf(fp,"%d%d%s\n",&s.snum,&s.cnum,&s.cname);
total++;
printf("%22d%17d%18s\n",s.snum,s.cnum,s.cname);
}
printf("\n 选题学生总人数:%d人",total);
fclose(fp);
menu();
}
//录入课题信息
void input()
{
FILE*fp;
struct course c;
int count;
int i;
if((fp=fopen("course.txt","a+"))==NULL)//建立文件设计题目的信息
{
printf("cannot open file\n");
}
printf("\n (录入选题信息)请输入课题数量:");
scanf("%d",&count);
printf("\n (各项目间用空格分开)");
fl();
for(i=0;i<count;i++)
{
scanf("%d%s%s%d%d%d%d%d\n",&c.num,&c.name,&c.kind,&c.ttime,&c.etime,&c.taltime,&c.mark,&c.term);
fprintf(fp,"%d%s%s%d%d%d%d%d\n",c.num,c.name,c.kind,c.ttime,c.etime,c.taltime,c.mark,c.term);
}
fclose(fp);
printf("\n 录入信息成功!");
menu();
}

  • 写回答

5条回答 默认 最新

  • 小小小小小学生 2016-03-16 09:51
    关注

    // 你这不是抄的我跟你信 ,给你改了。自己运行看看
    //

    #include
    #include
    #include
    struct course
    {
    int num; //选题编号
    char name[20];//课题名称
    char kind[10];//课程性质
    int taltime,ttime,etime,mark,term;//课程时间,学分,开课信息
    };
    struct student
    {
    int snum; //学生学号
    int cnum; //所选课题编号
    char cname[20];//所选课题名称
    };
    //函数原型
    void fl();
    void menu();
    void browser();
    void search();
    void xuan_ti();
    void xuanti_information();
    void input();
    void fl()
    {
    printf("\n 选题编号课题名称课程性质授课学时实验或上机学时总学时学分开课学期:\n");
    }
    void menu()
    {
    printf("\n\n\n");
    printf(" 欢迎使用毕业设计选题管理系统! \n");
    printf(" 1-浏览选题信息 2-查询选题信息\n");
    printf(" 3-进入选题操作 4-选题情况统计\n");
    printf(" 5-录入选题信息 0-退出选题系统\n");
    printf(" 请选择输入选项编号(请选择5进行课程信息录入):");
    }
    void main()
    {
    int n;
    menu();
    scanf("%d",&n);
    //防止错误,提示重新输入
    if(n>5)
    {
    printf("\n 输入错误,请重新输入! ");
    scanf("%d",&n);
    }
    while(n>0&&n) {
    switch(n)
    {
    case 1:browser();break;//浏览选题信息
    case 2:search();break; //查询选题信息
    case 3:xuan_ti();break;//进入选题信息
    case 4:xuanti_information();break;//选题情况统计
    case 5:input();break;//录入选题信息
    }
    scanf("%d",&n);
    if(n>5)
    {
    printf("\n 输入错误,请重新输入! ");
    scanf("%d",&n);
    }
    system("cls");//清除屏幕
    }
    if(n==0)
    exit(0);//退出系统
    }
    //浏览选题信息
    void browser()
    {
    FILE*fp;//定义指向文件的指针
    struct course c;//定义课程结构体变量c
    if((fp=fopen("course.txt","r"))==NULL)
    {
    printf("\nCannot open course!\n");
    }
    fl();
    for(;!feof(fp);)//直到文件结束
    {
    fscanf(fp,"%d%s%s%d%d%d%d%d\n",&c.num,&c.name,&c.kind,&c.ttime,&c.etime,&c.taltime,&c.mark,&c.term);//格式化输出
    }
    fclose(fp);//关闭文件
    menu();
    }
    //查询选题信息
    void search()
    {
    FILE*fp;//定义文件指针变量
    struct course c;//定义学生结构体变量c
    int score;
    char kind[10];
    char name[20];
    int b;
    //输入需要的查询选题信息的方式
    printf("\n 1.按学分查询\n");
    printf("\n 2.按课程性质查询\n");
    printf("\n 3.按课程名称查询\n");
    printf("\n 请选择查询方式,输入选项数字:");
    scanf("%d",&b);
    for(;b>3;)
    {
    printf("\n 输入错误,请重新输入! ");
    scanf("%d",&b);
    }
    //按学分查询
    if(b==1)
    {
    printf("\n 请输入您要查询的学分:");
    scanf("%d",&score);
    if((fp=fopen("course.txt","r"))==NULL)
    printf("\nCannot open coruse!\n");
    fl();
    for(;!feof(fp);)
    {
    fscanf(fp,"%d%s%s%d%d%d%d%d\n",&c.num,&c.name,&c.kind,&c.ttime,&c.etime,&c.taltime,&c.mark,&c.term);
    if(c.mark==score)
    printf("%5d%12s%9s%9d%12d%13d%8d%9d\n",c.num,c.name,c.kind,c.ttime,c.etime,c.taltime,c.mark,c.term);
    }
    }
    //按课程性质查询
    else if(b==2)
    {
    printf("\n 请输入您要查询的课程性质:");
    scanf("%s",&kind);
    if((fp=fopen("course.txt","r"))==NULL)
    printf("\nCannot open coruse!\n");
    fl();
    for(;!feof(fp);)
    {
    fscanf(fp,"%d%s%s%d%d%d%d%d\n",&c.num,&c.name,&c.kind,&c.ttime,&c.etime,&c.taltime,&c.mark,&c.term);
    if(strcmp(c.kind,kind)==0)
    printf("%5d%12s%9s%9d%12d%13d%8d%9d\n",c.num,c.name,c.kind,c.ttime,c.etime,c.taltime,c.mark,c.term);
    }
    }
    //按选题名称查询
    else if(b==3)
    {
    printf("\n 请输入您要查询的选题名称:");
    scanf("%s",&name);
    if((fp=fopen("course.txt","r"))==NULL)
    printf("\nCannot open coruse!\n");
    fl();
    for(;!feof(fp);)
    {
    fscanf(fp,"%d%s%s%d%d%d%d%d\n",&c.num,&c.name,&c.kind,&c.ttime,&c.etime,&c.taltime,&c.mark,&c.term);
    if(strcmp(c.name,name)==0)
    printf("%5d%12s%9s%9d%12d%13d%8d%9d\n",c.num,c.name,c.kind,c.ttime,c.etime,c.taltime,c.mark,c.term);
    }
    }
    else{
    printf("输入错误!");
    exit(1);
    }
    fclose(fp);
    menu();//调用menu函数
    }
    //进入选题操作
    void xuan_ti()
    {
    struct student s;//定义学生结构体变量s
    s.cnum=0;
    s.snum=0;
    struct course c;
    FILE*fp;
    printf("\n请输入您的学号及您要选择的课题编号(用空格分开):");
    scanf("%d%d,&s.snum,&s.cnum");
    if((fp=fopen("course.txt","r"))==NULL)//打开选题记录文件
    {
    printf("\nCannot open course!\n");
    }
    for(;feof(fp);)
    {
    fscanf(fp,"%d%s%s%d%d%d%d%d\n",&c.num,&c.name,&c.kind,&c.ttime,&c.etime,&c.taltime,&c.mark,&c.term);
    if(s.cnum==c.num)
    break;
    }
    fclose(fp);//关闭选题记录文件
    if((fp=fopen("student.txt","a+"))==NULL)
    {
    printf("\nCannot open student!\n");
    }//将学生选题信息输入文件
    fprintf(fp,"%d%d%s\n",s.snum,s.cnum,c.name);
    fclose(fp);
    printf("\n 恭喜您选题成功!\n");
    menu();
    }
    //选题情况统计
    void xuanti_infomation()
    {
    int total=0;//人数统计变量
    FILE*fp;
    struct student s;
    if((fp=fopen("student.txt","r"))==NULL)
    {
    printf("\nCannot open student!\n");
    }
    printf("\n 学号选题编号名称\n");
    for(;!feof(fp);)
    {
    fscanf(fp,"%d%d%s\n",&s.snum,&s.cnum,&s.cname);
    total++;
    printf("%22d%17d%18s\n",s.snum,s.cnum,s.cname);
    }
    printf("\n 选题学生总人数:%d人",total);
    fclose(fp);
    menu();
    }
    //录入课题信息
    void input()
    {
    FILE*fp;
    struct course c;
    int count;
    int i;
    if((fp=fopen("course.txt","a+"))==NULL)//建立文件设计题目的信息
    {
    printf("cannot open file\n");
    }
    printf("\n (录入选题信息)请输入课题数量:");
    scanf("%d",&count);
    printf("\n (各项目间用空格分开)");
    fl();
    for(i=0;i<count;i++)
    {
    scanf("%d%s%s%d%d%d%d%d\n",&c.num,&c.name,&c.kind,&c.ttime,&c.etime,&c.taltime,&c.mark,&c.term);
    fprintf(fp,"%d%s%s%d%d%d%d%d\n",c.num,c.name,c.kind,c.ttime,c.etime,c.taltime,c.mark,c.term);
    }
    fclose(fp);
    printf("\n 录入信息成功!");
    menu();
    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?