学生成绩管理系统主菜单功能实现

上传人:仙*** 文档编号:231993107 上传时间:2023-09-12 格式:PPT 页数:47 大小:234.50KB
收藏 版权申诉 举报 下载
学生成绩管理系统主菜单功能实现_第1页
第1页 / 共47页
学生成绩管理系统主菜单功能实现_第2页
第2页 / 共47页
学生成绩管理系统主菜单功能实现_第3页
第3页 / 共47页
资源描述:

《学生成绩管理系统主菜单功能实现》由会员分享,可在线阅读,更多相关《学生成绩管理系统主菜单功能实现(47页珍藏版)》请在装配图网上搜索。

1、02任务二任务二 学生成绩管理系统主菜单学生成绩管理系统主菜单功能实现功能实现 学习情境学习情境 前一部分介绍了如何设计学生成绩管理系统的用户界面,本部分接着介绍如何实现主界面上的菜单选项功能。即能够根据用户的选择做出相应的动作,例如当用户选择1时,能够录入学生成绩,选择2时,能够显示学生成绩,选择3时,能够查询学生成绩等。由于目前只是实现主菜单选择功能,而不能实现各菜单项的具体功能,因此该程序只能根据用户的选择,输出对应菜单项的编号。02任务二任务二 学生成绩管理系统主菜单学生成绩管理系统主菜单功能实现功能实现第一部分第一部分 任务学习引导任务学习引导n2.1 关系运算符与关系表达式 n2.

2、2 逻辑运算符与逻辑表达式 n2.3 if语句 n2.4 switch语句 第二部分第二部分 模块实现:学生成绩管理系统主模块实现:学生成绩管理系统主菜单的实现菜单的实现 第三部分第三部分 自学与拓展自学与拓展n2.5 条件运算符和条件表达式 2.1 关系运算符与关系表达式关系运算符与关系表达式1关系运算符关系运算符 关系运算实际上是比较运算,就是将两个数据进行比较,来判定是否符合给定的条件。比较两个数据的运算符称为关系运算符。C语言中提供了(大于)、=(大于等于)、=、0,a+bc-d,x3/2,a!=(c=d)等。关系表达式的值是“真(正确)”和“假(错误)”,用“1”和“0”表示。2.1

3、 关系运算符与关系表达式关系运算符与关系表达式2关系表达式关系表达式例如:50的值为“真”,即为1。(a=3)(b=5)由于35不成立,故其值为假,即为0。(5=3)(b=5)由于05不成立,故其值为假,即为0。2.2 逻辑运算符与逻辑表达式1逻辑运算符逻辑运算符 C语言中提供了!(逻辑非)、&(逻辑与)、|(逻辑或)三种逻辑运算符。!是单目运算符,对应的运算数是一个,如!a。“!”的运算法则是,若a为非零,则!a为0;若a为零,则!a为1。注意:C语言中,任何非0数的逻辑值是1,0的逻辑值是0。2.2 逻辑运算符与逻辑表达式1逻辑运算符逻辑运算符&是双目运算符,作用在前、后两个表达式上,如a

4、&b。“&”的运算法则是,当且仅当两个表达式a、b的值都为非零(真)时,结果才为1(真);否则,只要其中有一个表达式为零(假),则结果为0(假)。例如:1&5为1;3&0和0&1都为0。2.2 逻辑运算符与逻辑表达式1逻辑运算符逻辑运算符|是双目运算符,作用在前、后两个运算表达式上,如a|b。“|”的运算法则是,当且仅当两个运算对象的值同时为0(假)时,结果才为0(假);否则,结果为1(真)。例如,5|6为1,5|0为1,0|5为1,而0|0为0。2.2 逻辑运算符与逻辑表达式l1逻辑运算符逻辑运算符 三种逻辑运算符的真值表如表所示,其中a、b是表达式。ab!aa&ba|b0010001101

5、10001110112.2 逻辑运算符与逻辑表达式1逻辑运算符逻辑运算符 与运算符&和或运算符|具有左结合性,非运算符!具有右结合性。单目运算符优先级高于双目运算符的优先级,因此非运算符!的优先级在三者中最高,其次是与运算符&,最后是或运算符|。2.2 逻辑运算符与逻辑表达式1逻辑运算符逻辑运算符 逻辑运算符和其他运算符优先级的关系从高到低排列如下。!强制类型转换运算符(类型名)、/、%+、-、=、b&cd等价于(ab)&(cd)!b=c|d等价于(!b)=c)|d2.2 逻辑运算符与逻辑表达式2逻辑表达式逻辑表达式 用逻辑运算符将表达式连接起来得到的表达式称为逻辑表达式。逻辑表达式的值是“真

6、(正确)”和“假(错误)”,用“1”和“0”表示。逻辑表达式在程序设计中常被用到。例如,判断字符变量c的值是否为数字字符,可用如下表达式c=0&c=9。若逻辑表达式的值为1,则变量c的值必为数字字符;若为0,则变量c的内容必为非数字字符。2.2 逻辑运算符与逻辑表达式2逻辑表达式逻辑表达式简单的逻辑表达式可以组合成复杂的逻辑表达式。分析复杂的逻辑表达式时,应根据逻辑运算符的优先级别逐步将其拆成较简单的逻辑表达式。例如用逻辑表达式描述下列条件。x是3的倍数。x%3=0 x是偶数。x%2=0 x是3的倍数且x是偶数。(x%3=0)&(x%2=0)x 等于10或者20。(x=10)|(x=20)某年

7、是否为闰年。某一年是否为闰年的判别条件是,如果某年能被4整除而不能被100整除,则这一年是闰年;或者能被400整除的年也是闰年。其逻辑表达式为:(year%4=0)&(year%100!=0)|(year%400=0)2.3 if语句1 if语句语句(1)if语句的第一种格式(不带else的if语句)if(条件表达式)语句功能:当条件表达式的值不等于0(即判定为“真”)时,则执行语句,否则不执行if语句,直接执行if语句的下一条语句。其中条件表达式一般是逻辑表达式或关系表达式,但也可以是其他表达式,如赋值表达式,甚至还可以是一个变量或常量。例如 if(a=6)或if(8)都是允许的。2.3 i

8、f语句1 if语句语句先计算条件表达式的值,如果表达式的值是非零数,则执行语句,否则跳过对应的语句,执行if语句的下一条语句。对应的流程图如图所示。2.3 if语句1 if语句语句【例2-1】输入两个整数,输出其中较大的一个整数。算法分析:先从键盘输入两个整数赋值给变量a、b。然后把a赋值给max。再用if语句判断,如果max比b还要小,那么就把b赋值给max。因此max存放的永远是两个数中较大的数。最后输出max。2.3 if语句1 if语句语句对应的流程如图所示。2.3 if语句1 if语句语句【例2-1】输入两个整数,输出其中较大的一个整数。算法分析:先从键盘输入两个整数赋值给变量a、b

9、。然后把a赋值给max。再用if语句判断,如果max比b还要小,那么就把b赋值给max。因此max存放的永远是两个数中较大的数。最后输出max。2.3 if语句1 if语句语句程序代码如下:#include main()int a,b,max;printf(请输入两个整数n);scanf(%d%d,&a,&b);max=a;if(maxb)max=b;printf(n两个整数中较大的数:%d,max);2.3 if语句1 if语句语句if语句如果要在满足条件时执行一组(多条)语句,就必须把这一组语句用“”、“”括起来组成一个复合语句,注意在“”之后不必再加分号。【例2-2】输入两个实数,按从小

10、到大的顺序输出。算法分析:先从键盘输入两个实数赋值给变量a、b。if语句判断,如果a比b还要大,那么就交换a、b的值。这样a中存放的永远是较小的数,b中存放的永远是较大的数。最后输出a、b。2.3 if语句1 if语句语句对应的流程图如图所示。2.3 if语句1 if语句语句程序代码如下:#include main()float a,b,t;printf(请输入两个实数:n);scanf(%f%f,&a,&b);if(ab)t=b;b=a;a=t;printf(按从小到大的顺序输出这两个数:%f,%fn,a,b);2.3 if语句1 if语句语句(2)if语句的第二种格式(if-else语句)

11、if(条件表达式)语句1;else 语句2;功能:当条件表达式的值不等于0(即判定为“真”)时,则执行语句1,然后转向if-else语句之后的下一条语句,否则执行语句2,然后转向if-else语句之后的下一条语句。2.3 if语句1 if语句语句if-else语句的具体执行过程及流程:先计算条件表达式的值,如果表达式的值是非零数,则执行语句1,然后转向下一条语句,否则执行语句2,再转向下一条语句。对应的流程图如图所示。2.3 if语句1 if语句语句【例2-3】输入两个整数,输出其中较大的数,用if-else语句找出其中较大的数。算法分析:先从键盘输入两个整数赋值给变量a、b。再用if-els

12、e语句判断,如果a大于b,那么就输出a,否则就输出b。2.3 if语句1 if语句语句对应的流程图如图所示。2.3 if语句1 if语句语句程序代码如下:#include main()int a,b;printf(请输入两个整数:n);scanf(%d%d,&a,&b);if(ab)printf(两个整数中较大的数:%dn,a);else printf(两个整数中较大的数:%dn,b);2.3 if语句1 if语句语句 if-else语句如果在满足条件时执行一组(多条)语句,就必须把这一组语句用“”、“”括起来组成一个复合语句。同样,在执行else对应的语句2时也可以使用复合语句。【例2-4】

13、给出三角形的3个边长,输出三角形的面积。算法分析:由定理值,三角形的两边之和要大于第三边。先从键盘输入三个实数赋值给变量a、b、c。再用if-else语句判断,如果有两边之和小于等于第三边,那么就输出错误,否则就计算面积并输出。2.3 if语句1 if语句语句对应的流程图如图所示。2.3 if语句1 if语句语句程序代码如下:#include#include main()float a,b,c,s,area;printf(请输入三角形的三条边:n);scanf(%f%f%f,&a,&b,&c);if(a+b=c)|(a+c=b)|(b+c=a)printf(输入错误,不能组成三角形n);els

14、e s=(a+b+c)/2.0;area=sqrt(s(s-a)(s-b)(s-c);printf(三角形的面积为:%fn,area);2.3 if语句2if语句的嵌套语句的嵌套if语句的嵌套又称if-else-if语句。当if语句中对应的某一语句又是一个if语句时,就形成了if语句的嵌套。其一般形式如下:if(条件表达式)if语句1;功能:判断条件表达式的值,如果值为真,则执行if语句1。其中if语句1是一个if语句。或者if(条件表达式)if语句1;else if语句2;功能:判断条件表达式的值,如果值为真,则执行if语句1,否则就执行if语句2。其中if语句1和if语句2又是一个if语句

15、。2.3 if语句2if语句的嵌套语句的嵌套【例2-5】根据学生的百分成绩确定五级登记成绩。85分以上为A,7084分为B,6069分为C,低于60分为D。算法分析:输入的分数不同,执行的结果不同,不同的选择,执行不同的分支,所以采用分支结构语句来实现。2.3 if语句2if语句的嵌套语句的嵌套对应的流程图如图所示。2.3 if语句2if语句的嵌套语句的嵌套程序代码如下:#include main()int score;printf(请输入成绩:n);scanf(%d,&score);if(score=85)printf(An);else if(score=70)printf(Bn);else

16、 if(score=60)printf(Cn);else printf(Dn);2.3 if语句2if语句的嵌套语句的嵌套 可见,在具有多重嵌套的分支结构程序设计中,if语句的嵌套可以出现多层分支选择,可以实现各种复杂的逻辑判断。关键是要合理确定逻辑的流程及条件表达式,如果条件设计不当,就会出现逻辑上的混乱。可以看到,在if语句嵌套中,存在else语句与if的匹配问题。为了避免二义性,C语言规定,else总是与在它上面、距它最近、且尚未与其他else语句匹配的if配对。为明确匹配关系,避免匹配错误,可以将内嵌的if语句,一律用花括号括起来,这样使程序更加清晰。一般要尽可能减少if语句的嵌套层次

17、。2.3 if语句2if语句的嵌套语句的嵌套3if语句及if语句嵌套的注意事项 在if语句中,条件表达式必须用括号括起来。条件表达式一般是关系表达式或逻辑表达式,但也可以是其他表达式。在if语句及if语句嵌套中,对应的语句都可以是复合语句。if语句允许嵌套,但嵌套层数不宜太多。2.4 switch语句 前面介绍的if语句最多有两个分支,而嵌套的if语句层数太多时,程序冗长,可读性降低,使用switch语句可直接处理多分支选择问题。2.4 switch语句switch语句称为开关语句,其一般格式为:switch(表达式)case常量表达式1:语句组1;break;case常量表达式2:语句组2;

18、break;case常量表达式n:语句组n;break;default:语句组n+1;功能及执行过程:计算表达式的值,再与其后的常量表达式值逐个进行比较匹配,当表达式的值与某个常量表达式的值相等时,执行其后的语句组,直到遇到break语句或执行到switch语句的结束符“”时跳出switch语句;如果表达式的值与所有case后的常量表达式均不相同,则执行default后的语句。2.4 switch语句说明:switch后面的表达式和常量表达式可以是整型或字符型。case后面的表达式只能是常量表达式,不能出现变量或含变量的表达式。各常量表达式的值不能相同,否则会出现错误。并且case与后面的常量

19、表达式之间要用空格隔开。case后的语句组可以是一条语句,也可以是多条语句,当是多条语句时,可以不用“”括起来。语句break;的功能是跳出switch语句,接着执行switch语句后面的语句。各case和default语句的先后顺序可以变动,而不会影响程序执行结果。default子句可以省略不用。这时如果找不到对应的case分支,流程将不进入switch语句。2.4 switch语句【例2-6】设计简单的计算器,实现+、/运算。算法分析:问题要求:从键盘上输入简单的算术表达式,如2+3,通过设计的计算器,输出2+3的值。当输入的运算符不是+、/时给出错误提示。先从键盘输入两个实数赋值给变量a

20、、b,输入一个字符变量赋值给变量op。再用switch语句判断,如果op的值是“+”,输出a+b的值;如果op的值是“”,输出ab的值;如果op的值是“”,输出ab的值;如果op的值是“/”,输出a/b的值。2.4 switch语句对应的流程如图所示。2.4 switch语句程序代码如下:#include main()float a,b;char op;printf(请输入简单的算术表达式:a+(-,/)b n);scanf(%f%c%f,&a,&op,&b);switch(op)case+:printf(%f%c%f=%fn,a,op,b,a+b);break;case-:printf(%f

21、%c%f=%fn,a,op,b,a-b);break;case:printf(%f%c%f=%fn,a,op,b,ab);break;case/:printf(%f%c%f=%fn,a,op,b,a/b);break;default:printf(输入错误n);第二部分第二部分 模块实现:学生成绩管理模块实现:学生成绩管理系统主菜单的实现系统主菜单的实现1需求分析需求分析 完成学生成绩管理系统的主菜单选择功能,即菜单能够根据用户的选择做出相应的动作。当用户选择1时,能够录入学生成绩,选择2时,能够显示学生成绩,选择3时,能够查询学生成绩等。由于目前只是实现主菜单选择功能,而不能实现各菜单项的具

22、体功能,因此该程序只能根据用户的选择,输出对应菜单项的编号。第二部分第二部分 模块实现:学生成绩管理模块实现:学生成绩管理系统主菜单的实现系统主菜单的实现2算法设计 不同的选择,执行不同的分支,属于多路分支选择问题,所以采用分支结构的控制语句来实现。为了减少分层层次,避免程序冗长,增加程序的可读性,采用switch语句来实现菜单选择。定义一个字符变量choose,用来保存用户的菜单选择。鉴于目前仅仅是制作主菜单,还不能实现各菜单项的具体功能,因此该程序只能根据用户的选择,输出对应菜单项的编号。第二部分第二部分 模块实现:学生成绩管理模块实现:学生成绩管理系统主菜单的实现系统主菜单的实现2算法设

23、计具体流程如图所示。第三部分第三部分 自学与拓展自学与拓展2.5 条件运算符和条件表达式条件运算符和条件表达式 如果在if-else语句中,只执行单个的赋值语句时,通常可以使用条件表达式来实现。不但使程序简洁,也提高了运行效率。条件运算符的一般格式为:?和:条件运算符是一个三目运算符,即有3个参与运算的量。条件运算符的优先级高于赋值运算符,但低于逻辑或运算符。第三部分第三部分 自学与拓展自学与拓展2.5 条件运算符和条件表达式条件运算符和条件表达式 由条件运算符组成的表达式称为条件表达式。其一般形式为:表达式1?表达式2:表达式3 其求值规则为:如果表达式1的值为真,则以表达式2 的值作为条件表达式的值,否则以表达式3的值作为整个条件表达式的值。条件表达式通常用于赋值语句中,例如if-else语句。if(ab)max=a;else max=b;可用条件表达式写为 max=(ab)?a:b;执行该语句的语义是:如ab为真,则把a赋予max,否则把b赋予max。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!