#include <stdio.h>
#include <string.h>int allChoose();               //总菜单
int teacher();                  //教师端
int student();                  //学生端
int output(int m,int n);        //课程信息输出函数
int input();                    //1.课程信息录入
int allOutput();                //2.全部课程显示
int search();                   //3.课程信息查询
int change();                   //4.课程信息修改
int choose();                   //5.选修课程选择
int information();              //6.学生课程信息查看
int back();                     //返回总菜单功能struct course{                 //建立结构体int number;char name[20],nature[16];int totalTime,time1,time2;float credit;char term[10];int t;                  //用于标记是否被学生选择
}class[10];                 //最多录入10个课程int i=0;                    //使结构体添加从class[0]开始int main(){printf("+++++++++++++++++学生选修课程系统++++++++++++++++++++++++\n");allChoose();
}/*身份选择*/
int allChoose(){int n=0;printf("请选择端口:\n");printf("1.教师端\n");printf("2.学生端\n");printf("3.退出系统\n");printf("请输入数字(1/2/3):");
L1: scanf("%d",&n);if(n==1)teacher();else if(n==2){if(i==0){printf("\n请先通过教师端录入课程!\n\n");allChoose();}elsestudent();}else if(n==3)          //退出系统{printf("退出成功!");return 0;}else{printf("输入错误,请重新输入:");rewind(stdin);    //清空缓冲区的内容,防止将其他型变量输入给int型n出现错误goto L1;}return 0;
}/*教师端*/
int teacher(){int flag;printf("\n---->教师端<-----\n");printf("请选择要执行的操作:\n");printf("1.课程信息录入\n");printf("2.课程信息修改\n");printf("3.返回端口选择\n");printf("请选择(数字1/2/3):");
L2: scanf("%d",&flag);switch(flag){                       //输入的数字决定应该执行的函数case 1:input();break;                       //1.课程信息录入case 2:change();break;                        //2.课程信息修改case 3:printf("\n");allChoose();break;      //3.返回端口选择default:{printf("错误输入,请重新输入:");rewind(stdin);goto L2;}}return 0;
}/*学生端*/
int student(){int n;printf("\n---->学生端<-----\n");printf("1.全部课程显示\n");printf("2.课程信息查询\n");printf("3.选修课程选择\n");printf("4.学生课程信息\n");printf("5.返回端口选择\n");printf("请选择(数字1/2/3/4/5):");
L3: scanf("%d",&n);switch(n){case 1:allOutput();break;                //1.全部课程显示case 2:search();break;                    //2.课程信息查询case 3:choose();break;                    //3.选修课程选择case 4:information();break;               //4.学生课程信息查看case 5:printf("\n");allChoose();break;    //3.返回端口选择default:{printf("错误输入,请重新输入:");rewind(stdin);goto L3;}}return 0;
}/*1.课程信息录入*/
int input(){int n=0;printf("\n1.课程信息录入\n");printf("添加新的课程:\n");printf("输入课程编号:");scanf("%d",&class[i].number);     //课程编号printf("输入课程名称:");scanf("%s",class[i].name);          //课程名称printf("输入课程性质:");scanf("%s",class[i].nature);            //课程性质printf("输入总学时:");scanf("%d",&class[i].totalTime);     //总学时printf("输入授课学时:");scanf("%d",&class[i].time1);         //授课学时printf("输入实验/上机学时:");scanf("%d",&class[i].time2);         //实验/上机学时printf("输入学分:");scanf("%f",&class[i].credit);      //学分printf("输入开课学期:");scanf("%s",class[i].term);            //开课学期class[i].t=0;                    //默认t为0,即未被学生选择printf("录入成功!\n");i++;back();                //返回总菜单return 0;
}/*课程信息输出函数*/
int output(int m,int n){for(m=m;m<n;m++)          //循环输出目标课程{printf("课程编号:%d|名称:%s |性质:%s |总学时:%d|授课学时:%d|实验/上机学时:%d|学分:%.1f|开课学期:%s\n",class[m].number,class[m].name,class[m].nature,class[m].totalTime,class[m].time1,class[m].time2,class[m].credit,class[m].term);}return 0;
}/*2.全部课程显示*/
int allOutput(){printf("\n2.全部课程显示\n");output(0,i);                   //控制output中for循环次数使全部课程显示printf("显示成功!\n");back();                        //返回总菜单return 0;
}/*3.课程信息查询*/
int search(){int m,num,j;char name[20],nature[16];printf("\n3.课程信息查询\n");
L4: printf("请输入要查询的方式(1.课程编号/2.课程名称/3.课程性质):");scanf("%d",&m);if(m==1)                //1.课程编号查询{printf("1.根据课程编号查询\n");printf("请输入课程编号:");scanf("%d",&num);for(j=0;j<i;j++){if(num==class[j].number)           //将a与已有课程的编号number比较output(j,j+1);             //控制输出函数只输出class[j]的信息}}else if(m==2)         //2.课程名称查询{printf("2.根据课程名称查询\n");printf("请输入课程名称:");scanf("%s",name);for(j=0;j<i;j++){if(!strcmp(name,class[j].name))      //将a与已有课程的名字name比较output(j,j+1);                   //控制输出函数只输出class[j]的信息}}else if(m==3)         //3.课程性质查询{printf("3.根据课程性质查询\n");printf("请输入课程性质:");scanf("%s",nature);for(j=0;j<i;j++){if(!strcmp(nature,class[j].nature))        //将a与已有课程的性质nature比较output(j,j+1);                     //控制输出函数只输出class[j]的信息}}else                //当输入的数字不是1/2/3时重新输入{printf("错误输入,请重新输入!\n");rewind(stdin);goto L4;}back();               //返回总菜单return 0;
}/*4.课程信息修改*/
int change(){int j,n;printf("\n4.课程信息修改\n");output(0,i);                              //控制output中for循环次数使全部课程显示,便于选择修改的课程printf("\n请输入要修改的课程编号:");scanf("%d",&n);for(j=0;j<i;j++){if(n==class[j].number)          //将n与已有课程的编号number比较{output(j,j+1);                //控制输出函数只输出class[j]的信息break;}}printf("输入新的课程编号:");scanf("%d",&class[j].number);         //新的课程编号printf("输入新的课程名称:");scanf("%s",class[j].name);              //新的课程名称printf("输入新的课程性质:");scanf("%s",class[j].nature);                //新的课程性质printf("输入新的总学时:");scanf("%d",&class[j].totalTime);         //新的总学时printf("输入新的授课学时:");scanf("%d",&class[j].time1);             //新的授课学时printf("输入新的实验/上机学时:");scanf("%d",&class[j].time2);             //新的实验/上机学时printf("输入新的学分:");scanf("%f",&class[j].credit);          //新的学分printf("输入新的开课学期:");scanf("%s",class[j].term);                //新的开课学期class[j].t=0;                      //t依然为0,即未被学生选择printf("修改成功!\n");back();              //返回总菜单return 0;
}/*5.选修课程选择*/
int choose(){int j,n=0,k;printf("\n2.选修课程显示\n");output(0,i);                         //控制output中for循环次数使全部课程显示printf("请输入要选择的课程编号:");scanf("%d",&n);for(j=0;j<i;j++){if(n==class[j].number){if(class[j].t==1)          //如果t=1说明该课程已经选择printf("课程已选");else{class[j].t=1;       //用t=1等于表示学生已选printf("课程%d选择成功\n",n);break;}}}back();                //返回总菜单return 0;
}/*6.学生课程信息查看*/
int information(){int j;printf("\n4.学生课程信息\n");printf("-->已选课程<--\n");for(j=0;j<i;j++){if(class[j].t==1)      //判断结构体中t是否为1output(j,j+1);        //控制输出函数只输出class[j]的信息}printf("显示成功!\n");back();                  //返回总菜单return 0;
}/*返回总菜单*/
int back(){int t=0;printf("\n");printf("返回总菜单(请输入1):");
L5: scanf("%d",&t);if(t==1)allChoose();         //返回总菜单else{rewind(stdin);printf("错误输入,请重新输入:");goto L5;}return 0;
}

C语言课程设计-选修课程系统相关推荐

  1. 考勤管理系统c语言,C语言课程设计学生考勤系统最终版(范文1)

    <C语言课程设计学生考勤系统.doc>由会员分享,可免费在线阅读全文,更多与<C语言课程设计学生考勤系统(最终版)>相关文档资源请在帮帮文库(www.woc88.com)数亿文 ...

  2. C语言课程设计:通讯录系统

    C语言课程设计:通讯录系统 [题目4]通讯录程序设计 设计一个实用的小型通讯录程序,具有添加,查询和删除功能.由姓名,籍贯,电话号码1,电话号码2,电子邮箱组成,姓名可以由字符和数字混合编码.电话号码 ...

  3. java学生选课系统课程设计报告_Java语言程序设计课程设计-学生选课系统

    <Java语言程序设计课程设计-学生选课系统>由会员分享,可在线阅读,更多相关<Java语言程序设计课程设计-学生选课系统(23页珍藏版)>请在人人文库网上搜索. 1.10届 ...

  4. c语言程序设计论文背单词系统,C语言课程设计-背单词系统(含程序)

    C语言课程设计-背单词系统(含程序) 综合性程序设计报告 设计题目: 背单词系统 指导教师: XXX 班 级: 学 号: 设 计 者: XXX 成 绩: _______________ 设计时间: 年 ...

  5. c语言写考勤系统,C语言课程设计学生考勤系统

    <C语言课程设计学生考勤系统.doc>由会员分享,可免费在线阅读全文,更多与<C语言课程设计学生考勤系统>相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里搜 ...

  6. c语言作业制作仓库管理系统,C语言课程设计 仓库管理系统

    <C语言课程设计 仓库管理系统>由会员分享,可在线阅读,更多相关<C语言课程设计 仓库管理系统(22页珍藏版)>请在人人文库网上搜索. 1.C语言程序设计实训报告实训题目: 仓 ...

  7. 如何用C语言编写学生选修课程系统?

    假定有 n 门课程,每门课程有:课程编号,课程名称,课程性质(公共课.必 修课.选修课),总学时,授课学时,实验或上机学时,学分,开课学期等信 息,学生可按要求(如总学分不得少于 60)自由选课. 1 ...

  8. c语言编程银行排队系统,C语言_课程设计银行排队系统.doc

    C语言_课程设计银行排队系统 #include #include #include #include #include #define n 3 int vip1=0; int y,z; float s ...

  9. ★C/C++语言期末课程设计★——万年历显示系统(详细报告+源代码+详细注释)

    万年历显示系统报告 一.描述         大家好!我是小浝仔,今天给大家分享C/C++语言期末课程设计--万年历显示系统,这个程序是用C/C++语言程序编写的,运行环境为VisualC++6.0, ...

最新文章

  1. 使用CSS3美化复选框checkbox
  2. 将数据库改为使用登录名密码登陆
  3. flutter 版本控制fvm
  4. Boost:projection years投影年的测试程序
  5. 服务化改造实践(三) | Dubbo + Zipkin
  6. 第14课 跳绳达人 《小学生C++趣味编程》
  7. java list 有向图_Java检测循环有向图
  8. python Raw I/O
  9. TensorFlow tf.keras.callbacks.EarlyStopping
  10. 再读《Java编程思想 》
  11. unbutu服务器误删文件,ubuntu中恢复rm命令误删文件
  12. Win10科大讯飞语音合成系统( Interphonic 5.0)安装方法及报错解决
  13. 《股票大作手操盘术--杰西.利弗莫尔》
  14. 使用CA签发的服务器证书搭建Tomcat双向SSL认证服务
  15. 前端表格里的数据不换行
  16. 第二本书unit5 lvm管理
  17. 计算机教学在教学方面的作用,浅谈信息技术在教学中的重要作用
  18. 网页 插件 html,HTML 插件
  19. guava之基本工具
  20. git 如何将主分支(master)合并到子分支上

热门文章

  1. 解决Safari在线观看视频卡顿的问题
  2. android 未读短信app,Android APP桌面启动图标未读信息小红点实现——在巨人的肩膀上淌坑...
  3. 什么情况下会导致内存泄露
  4. 不管你信不信,这就是996的真实内幕!
  5. 也许我们不是最优秀的人才,但我们要做最努力的人
  6. 怎么用计算机唱歌 百度网盘,【唱歌教程】唱歌技巧和发声方法初学者唱歌 百度云...
  7. js中in关键字的作用
  8. 【NLP】3000篇搜狐新闻语料数据预处理器的python实现
  9. 27 个你需要知道的人工智能术语
  10. java电子发票版式文件,电子发票ofd格式转pdf方法