| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1763 人关注过本帖
标题:请大佬把代码中的C++改成最基础的C语言
只看楼主 加入收藏
wy1208267347
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2017-6-9
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
请大佬把代码中的C++改成最基础的C语言
[问题定义] 假定有n门课程,每门课程有:课程编号,课程名称,课程性质(公共课、必修课、选修课),总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可自由选课。试设计一选修课程系统,使之能提供以下功能:     

(1)系统以菜单方式工作

(2)课程信息录入功能(课程信息用文件保存)--输入

(3)课程信息浏览功能--输出

(4)课程信息查询功能--算法

查询方式

                    按学分查询

            按课程性质查询

(5)学生选修课程(可选项)

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 10
struct course
{

       int num;

       char name[20];

       char kind[30];

       int shoutime;

       int shiyantime;

       int xuefen;

       int kaike;

}cou[N];
void shuru();
void liulan();
void chaxun();
void jinru();

/********主菜单********/

void main()
{

       int n,w;
       printf("                MENU             \n");
       printf("*********************************\n");
       printf("         1-输入课程信息          \n");
    printf("         2-浏览课程信息          \n");
    printf("         3-查询课程信息          \n");
    printf("         4-进入选课操作          \n");
       printf("            5-退出选课系统          \n");
       printf("*********************************\n");
       printf("      请输入选择的数字:         ");
       scanf("%d",&n);
    if(n<=5&&n>=1)

                     w=0;
              else
              {
                     printf("输入错误,重新输入\n");
                     main();
                    
              }

       switch(n)

              { case 1:shuru();break;
                case 2:liulan();break;
                case 3:chaxun();break;
                case 4:jinru();break;
                case 5:exit(0);
        }

}

/********课程信息录入********/

void shuru()

{

     void main();

       FILE*fp;

       int i,count,a;

       printf("输入课程门数:");

       scanf("%d",&count);

       if((fp=fopen("cou.txt","a+"))==NULL)

       { printf("cannot open this file\n");

          exit(0);

       }

       printf("课程编号      名称      性质      授课学时      实验或上机学时      学分      开课学期\n");

     for(i=0;i<count;i++)

       {  

              scanf("%d%s%s%d%d%d%d",&cou[i].num,&cou[i].name,&cou[i].kind,&cou[i].shoutime,&cou[i].shiyantime,&cou[i].xuefen,&cou[i].kaike);

              fprintf(fp,"%d\t%s\t%s\t%d\t%d\t%d\t%d\n",cou[i].num,cou[i].name,cou[i].kind,cou[i].shoutime,cou[i].shiyantime,cou[i].xuefen,cou[i].kaike);

       }

       fclose(fp);

       printf("\n1.返回主菜单;2.退出选课系统\n");

     scanf("%d",&a);

       if(a==1)

             main();

       else

             exit(0);

}

void liulan()

{

       void main();

       FILE*fp;

       int i,a;

       if((fp=fopen("cou.txt","r"))==NULL)

       {  printf("cannot open this file\n");

          exit(0);

       }

       printf("课程编号      名称      性质      授课学时      实验或上机学时      学分      开课学期\n");

       for(;!feof(fp);)

       {

           i=0;

              i++;

              fscanf(fp,"%d%s%s%d%d%d%d\n",&cou[i].num,&cou[i].name,&cou[i].kind,&cou[i].shoutime,&cou[i].shiyantime,&cou[i].xuefen,&cou[i].kaike);

              printf("%d %s %s %d %d %d %d\n",cou[i].num,cou[i].name,cou[i].kind,cou[i].shoutime,cou[i].shiyantime,cou[i].xuefen,cou[i].kaike);

              if(feof(fp)) break;

       }

    fclose(fp);

    printf("\n1.返回主菜单;2.退出选课系统\n");

    scanf("%d",&a);

       if(a==1)

             main();

       else

             exit(0);

 

}

void chaxun()

{

       void main();

       FILE*fp;

       char kind[30];

       int i,xuefen,a,n;

       printf("1.按学分方式查询\n");

       printf("2.按课程性质查询\n");

       printf("请输入数字:");

    scanf("%d",&i);

       if(i==1)

       {

              printf("请输入学分:\n");

              scanf("%d",&xuefen);

           if((fp=fopen("cou.txt","r"))==NULL)

              {  printf("cannot open this file\n");

              exit(0);

              }

              printf("课程编号      名称      性质      授课学时      实验或上机学时      学分      开课学期\n");

              n=0;

              n++;

              fscanf(fp,"%d%s%s%d%d%d%d",&cou[n].num,&cou[n].name,&cou[n].kind,&cou[n].shoutime,&cou[n].shiyantime,&cou[n].xuefen,&cou[n].kaike);

        if(cou[n].xuefen==xuefen)

              printf("%d %s %s %d %d %d %d",cou[n].num,cou[n].name,cou[n].kind,cou[n].shoutime,cou[n].shiyantime,cou[n].xuefen,cou[n].kaike);

 

    }

       else if(i==2)

       {

              printf("请输课程性质:\n");

              scanf("%s",&kind);

              if((fp=fopen("cou.txt","r"))==NULL)

              {  printf("cannot open this file\n");

              exit(0);

              }

              printf("课程编号      名称      性质      授课学时      实验或上机学时      学分      开课学期\n");

              n=0;

              n++;

              fscanf(fp,"%d%s%s%d%d%d%d",&cou[n].num,&cou[n].name,&cou[n].kind,&cou[n].shoutime,&cou[n].shiyantime,&cou[n].xuefen,&cou[n].kaike);

        if(strcmp(cou[n].kind,kind)==0)

              printf("%d %s %s %d %d %d %d",cou[n].num,cou[n].name,cou[n].kind,cou[n].shoutime,cou[n].shiyantime,cou[n].xuefen,cou[n].kaike);

 

    }

       else

       {

           printf("输入错误,重新输入\n");

        exit(1);

       }

       fclose(fp);

       printf("\n1.返回主菜单;2.退出选课系统\n");

    scanf("%d",&a);

       if(a==1)

             main();

       else

             exit(0);

}

void jinru()

{

       void main();

       FILE*fp;

       int num;

       int total=0;

       int n,a;

       printf("请输入课程编号:");

       scanf("%d",&num);

       if((fp=fopen("cou.txt","a+"))==NULL)

       {  printf("cannot open this file\n");

          exit(0);

       }

       printf("课程编号      名称      性质      授课学时      实验或上机学时      学分      开课学期\n");

       n=0;

       n++;

       fscanf(fp,"%d%s%s%d%d%d%d",&cou[n].num,&cou[n].name,&cou[n].kind,&cou[n].shoutime,&cou[n].shiyantime,&cou[n].xuefen,&cou[n].kaike);

    if(cou[n].num==num)

       printf("你所选择的课程为");

       printf("%d %s %s %d %d %d %d",cou[n].num,cou[n].name,cou[n].kind,cou[n].shoutime,cou[n].shiyantime,cou[n].xuefen,cou[n].kaike);

    fclose(fp);

    printf("\n1.返回主菜单;2.退出选课系统\n");

    scanf("%d",&a);

        if(a==1)

              main();

       else

           exit(0);

}
搜索更多相关主题的帖子: 公共课 C语言 必修课 查询方式 include 
2017-06-09 15:21
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
这就是c不是加加

DO IT YOURSELF !
2017-06-09 15:30
wy1208267347
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2017-6-9
收藏
得分:0 
回复 2楼 wp231957
我们没有学那么多...像什么fscanf, exit(0); FILE*fp; fclose(fp);#include<stdlib.h>  这些我们都没学过  就想换成最基础的
2017-06-09 15:34
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:20 
以下是引用wy1208267347在2017-6-9 15:34:17的发言:

我们没有学那么多...像什么fscanf, exit(0); FILE*fp; fclose(fp);#include  这些我们都没学过  就想换成最基础的
你提得这些  我和你说啊

fscanf 区别于scanf 前者是针对文件操作的 具体用法可以百度
exit(0) 不怎么常见  应该一些比较古董的教材可以出现  可以使用return 0 来代替
FILE* fp  这是文件操作基础中的基础
#include <stdlib.h>  这就是有些函数需要这个库 所以引用之

DO IT YOURSELF !
2017-06-09 15:57
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
第一次见到调用main()的程序,好新奇的样子。

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-06-09 19:24
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 5楼 renkejun1942
vc6好像不支持递归调用main~main是由控制台调用的~没开电脑测试~说错了勿喷~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-06-09 19:27
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
回复 6楼 九转星河
main函数可以递归的。

汗……我难道这么喜欢喷人?

我只是见到一些依旧被纠正了,以及说了无数次的错误感到厌烦,才语气重一点。

[此贴子已经被作者于2017-6-9 19:31编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-06-09 19:30
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 7楼 renkejun1942
我汗~我的问题原来已经在回复打标签了~那当然没必要对特定的人这么说了~~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-06-09 23:51
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9032
专家分:54061
注 册:2011-1-18
收藏
得分:0 
以下是引用九转星河在2017-6-9 19:27:46的发言:
vc6好像不支持递归调用main~main是由控制台调用的~没开电脑测试~说错了勿喷~


C标准可以
C++标准不可以
2017-06-10 08:42
快速回复:请大佬把代码中的C++改成最基础的C语言
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034312 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved