C语言课程设计-选修课程系统
#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语言课程设计-选修课程系统相关推荐
- 考勤管理系统c语言,C语言课程设计学生考勤系统最终版(范文1)
<C语言课程设计学生考勤系统.doc>由会员分享,可免费在线阅读全文,更多与<C语言课程设计学生考勤系统(最终版)>相关文档资源请在帮帮文库(www.woc88.com)数亿文 ...
- C语言课程设计:通讯录系统
C语言课程设计:通讯录系统 [题目4]通讯录程序设计 设计一个实用的小型通讯录程序,具有添加,查询和删除功能.由姓名,籍贯,电话号码1,电话号码2,电子邮箱组成,姓名可以由字符和数字混合编码.电话号码 ...
- java学生选课系统课程设计报告_Java语言程序设计课程设计-学生选课系统
<Java语言程序设计课程设计-学生选课系统>由会员分享,可在线阅读,更多相关<Java语言程序设计课程设计-学生选课系统(23页珍藏版)>请在人人文库网上搜索. 1.10届 ...
- c语言程序设计论文背单词系统,C语言课程设计-背单词系统(含程序)
C语言课程设计-背单词系统(含程序) 综合性程序设计报告 设计题目: 背单词系统 指导教师: XXX 班 级: 学 号: 设 计 者: XXX 成 绩: _______________ 设计时间: 年 ...
- c语言写考勤系统,C语言课程设计学生考勤系统
<C语言课程设计学生考勤系统.doc>由会员分享,可免费在线阅读全文,更多与<C语言课程设计学生考勤系统>相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里搜 ...
- c语言作业制作仓库管理系统,C语言课程设计 仓库管理系统
<C语言课程设计 仓库管理系统>由会员分享,可在线阅读,更多相关<C语言课程设计 仓库管理系统(22页珍藏版)>请在人人文库网上搜索. 1.C语言程序设计实训报告实训题目: 仓 ...
- 如何用C语言编写学生选修课程系统?
假定有 n 门课程,每门课程有:课程编号,课程名称,课程性质(公共课.必 修课.选修课),总学时,授课学时,实验或上机学时,学分,开课学期等信 息,学生可按要求(如总学分不得少于 60)自由选课. 1 ...
- c语言编程银行排队系统,C语言_课程设计银行排队系统.doc
C语言_课程设计银行排队系统 #include #include #include #include #include #define n 3 int vip1=0; int y,z; float s ...
- ★C/C++语言期末课程设计★——万年历显示系统(详细报告+源代码+详细注释)
万年历显示系统报告 一.描述 大家好!我是小浝仔,今天给大家分享C/C++语言期末课程设计--万年历显示系统,这个程序是用C/C++语言程序编写的,运行环境为VisualC++6.0, ...
最新文章
- 使用CSS3美化复选框checkbox
- 将数据库改为使用登录名密码登陆
- flutter 版本控制fvm
- Boost:projection years投影年的测试程序
- 服务化改造实践(三) | Dubbo + Zipkin
- 第14课 跳绳达人 《小学生C++趣味编程》
- java list 有向图_Java检测循环有向图
- python Raw I/O
- TensorFlow tf.keras.callbacks.EarlyStopping
- 再读《Java编程思想 》
- unbutu服务器误删文件,ubuntu中恢复rm命令误删文件
- Win10科大讯飞语音合成系统( Interphonic 5.0)安装方法及报错解决
- 《股票大作手操盘术--杰西.利弗莫尔》
- 使用CA签发的服务器证书搭建Tomcat双向SSL认证服务
- 前端表格里的数据不换行
- 第二本书unit5 lvm管理
- 计算机教学在教学方面的作用,浅谈信息技术在教学中的重要作用
- 网页 插件 html,HTML 插件
- guava之基本工具
- git 如何将主分支(master)合并到子分支上
热门文章
- 解决Safari在线观看视频卡顿的问题
- android 未读短信app,Android APP桌面启动图标未读信息小红点实现——在巨人的肩膀上淌坑...
- 什么情况下会导致内存泄露
- 不管你信不信,这就是996的真实内幕!
- 也许我们不是最优秀的人才,但我们要做最努力的人
- 怎么用计算机唱歌 百度网盘,【唱歌教程】唱歌技巧和发声方法初学者唱歌 百度云...
- js中in关键字的作用
- 【NLP】3000篇搜狐新闻语料数据预处理器的python实现
- 27 个你需要知道的人工智能术语
- java电子发票版式文件,电子发票ofd格式转pdf方法