第3章 2014分支结构程序设计_第1页
第3章 2014分支结构程序设计_第2页
第3章 2014分支结构程序设计_第3页
第3章 2014分支结构程序设计_第4页
第3章 2014分支结构程序设计_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、程序设计中有时需要根据条件来选择不同的程序程序设计中有时需要根据条件来选择不同的程序进行处理,称之为分支结构。进行处理,称之为分支结构。本章将介绍分支结构程序设计的基本方法和本章将介绍分支结构程序设计的基本方法和C语语言的运算符,并分析言的运算符,并分析“学生信息管理系统学生信息管理系统”中中 菜单选菜单选择和系统功能调用的实现。择和系统功能调用的实现。3.1 关系运算符关系运算符及其表达式及其表达式3.2 逻辑运算符逻辑运算符及其表达式及其表达式3.3 if语句语句3.3.1 单分支条件语句单分支条件语句3.3.2 双分支条件语句双分支条件语句3.3.3 多分支条件语句多分支条件语句3.3.

2、4 if语句的嵌套语句的嵌套3.4 switch语句语句3.5 运算符及其表达式运算符及其表达式3.6 案例分析与实现案例分析与实现本章内容本章内容【学习目标学习目标】掌握分支结构的基本概念掌握分支结构的基本概念掌握关系运算和关系表达式掌握关系运算和关系表达式掌握逻辑运算和逻辑表达式掌握逻辑运算和逻辑表达式掌握掌握if语句语句的基本形式和使用方法的基本形式和使用方法掌握掌握switch语句语句的基本形式和使用方法的基本形式和使用方法了解了解C语言的各种运算符及表达式语言的各种运算符及表达式编写分支结构程序时,首先要进行条件判断,根编写分支结构程序时,首先要进行条件判断,根据判断结果来决定执行哪

3、些操作。据判断结果来决定执行哪些操作。那么在那么在C C语言中如何描述一个判断条件呢?语言中如何描述一个判断条件呢?这就需要用到关系运算符。这就需要用到关系运算符。1. 关系关系运算符:对两个表达式进行比较,返回一个真运算符:对两个表达式进行比较,返回一个真/假假值。值。C语言提供语言提供6个关系运算符:个关系运算符: (大于)(大于) = (大于或等于)(大于或等于) (小于)(小于)=(小于或等于)(小于或等于) = (等于)(等于) !=(不等于)(不等于)例如:例如:a=、=、!=、=都是一个完整的运算符,都是一个完整的运算符,中间不能有空格中间不能有空格,而且,而且前前3个运算符中字

4、符的顺序不能颠倒。个运算符中字符的顺序不能颠倒。例如:例如:a=b不能写成不能写成a=b,也不能写成,也不能写成a=1、(a+2)(c+d) 其值只有两种可能:其值只有两种可能:“真真”-用数值用数值“1”1”表示表示“假假”-用数值用数值“0”0”表示表示【例例3-13-1】写出下面程序的运行结果。写出下面程序的运行结果。#include void main()int a=3,b=2,c;if(ab);printf(c=%dn,c);程序运行结果如下:程序运行结果如下:a大于大于bc=1有些情况下,只用有些情况下,只用关系表达式并不能完整地描述一个关系表达式并不能完整地描述一个判断判断条件条

5、件,对于比较复杂的条件还需要用到逻辑运算符对于比较复杂的条件还需要用到逻辑运算符。1 逻辑运算符逻辑运算符C C语言中,逻辑运算符有三个:语言中,逻辑运算符有三个:逻辑与逻辑与(&)(&)、逻辑或、逻辑或(|)(|)、逻辑非、逻辑非(!)(!)例如例如,判断变量,判断变量choice的值是否落在区间的值是否落在区间1,12内,表内,表示方法如下:示方法如下:if(choice=1 & choice8 & 48 & 412 结果为假。结果为假。逻辑或逻辑或(|):运算符两侧的操作数只要有一个为真,结果:运算符两侧的操作数只要有一个为真,结果就为真。例如:就

6、为真。例如:108 | 412 结果为真。结果为真。1012 结果为假。结果为假。逻辑非逻辑非(!):当运算符右侧的操作数为真时,结果为假。:当运算符右侧的操作数为真时,结果为假。例如:例如:!(412) 结果为真。结果为真。 !(108) 结果为假。结果为假。2. 逻辑表达式逻辑表达式如果如果表达式中的主要运算符是逻辑运算符表达式中的主要运算符是逻辑运算符,则该表,则该表达式称为逻辑表达式。达式称为逻辑表达式。例如:例如:choice=1 & choice=12、a | b、!x逻辑表达式的值也只有两种可能:逻辑表达式的值也只有两种可能:“真真”(用用“1”表示表示)“假假”(用用“

7、0”表示表示)。逻辑运算符通常用来连接关系表达式,但也可以逻辑运算符通常用来连接关系表达式,但也可以连接整型、字符型等类型的数据。连接整型、字符型等类型的数据。例如:例如:8 & -2。该表达式中,。该表达式中,“&”两侧的整两侧的整数到底表示数到底表示“真真”还是表示还是表示“假假”呢?呢?C语言规定:语言规定:数值表达式的值数值表达式的值“非非0”即即“真真”,用用“0”表示表示“假假”。这样这样8和和-2都表示都表示“真真”,8 & -2的值为的值为1。!0的的值也为值也为1。特殊说明特殊说明1 在在“&”表达式中,表达式中,如果如果“&”左端的计

8、算结果为左端的计算结果为0,则右端便不再计算,则右端便不再计算。例如:例如:int a=0,b=10,c;c=(a & (b=100);printf(c=%d,b=%dn,c,b);2 在在“|”表达式中,表达式中,如果如果“|”左端的计算结果为左端的计算结果为1,则右端便不再计算则右端便不再计算。例如:例如:int a=1,b=10,c;c=(a|(b=100);printf(c=%d,b=%dn,c,b);3.3 if3.3 if语句语句ifif语句有三种形式:语句有三种形式:单分支条件语句、单分支条件语句、双分支条件语句、双分支条件语句、多分支条件语句多分支条件语句。3.3.1

9、3.3.1 单分支条件语句单分支条件语句语法格式如下:语法格式如下:if (if (条件条件e)e) 语句语句S S;【说明说明】(1) if后面的条件一般为关系表达式或逻辑表达式,后面的条件一般为关系表达式或逻辑表达式,必须用必须用圆括号圆括号括起来。括起来。(2) 语句语句S是一条简单语句或复合语句。是一条简单语句或复合语句。简单语句是以分号简单语句是以分号(;)结尾的一条语句。结尾的一条语句。在在C语言中,单独一个分号语言中,单独一个分号(;)也是一条简单语句,表也是一条简单语句,表示什么都不做,称为示什么都不做,称为“空语句空语句”。复合语句是以花括号复合语句是以花括号 括起来的若干条

10、语句,表示括起来的若干条语句,表示满足条件时需要执行花括号满足条件时需要执行花括号 内的所有语句。内的所有语句。【例例3-43-4】从键盘输入两个整数从键盘输入两个整数x x和和y y,求这两个数的最大值。,求这两个数的最大值。#include #include void main()void main() int x, y, max ; int x, y, max ; printf(printf(请输入两个整数请输入两个整数:);:);scanf(%d%d,&x,&y); scanf(%d%d,&x,&y); max=x; max=x; if(maxy)if(

11、maxy)max=y;max=y;printf(max=%dn,max);printf(max=%dn,max); ifif语句如果写成:语句如果写成:if(xy) if(xy) ;【例例3-5】从键盘输入从键盘输入3个整数,求这个整数,求这3个数的最大值。个数的最大值。#include void main()int x, y, z, max ; printf(请输入请输入3个整数个整数:);scanf(%d%d%d,&x,&y,&z);max=x; if(maxy)max=y;if(maxz)max=z;printf(max=%dn,max);【例【例3-63-6】根

12、据以下分段函数编写程序,输入一】根据以下分段函数编写程序,输入一个个x x值,输出对应的值,输出对应的y y值。值。#include #include void main()void main() intint x,yx,y; ;scanfscanf(%(%d,&xd,&x););if(x0)if(x0)if(x0)y=1;y=1;printfprintf(x=%(x=%d,yd,y=%dn,=%dn,x,yx,y); ); )0(1)0(0)0(1xxxy如果将如果将if语句中的语句中的if(x=0)写成写成if(x=0)?因为因为“=”是关系运算符,是关系运算符,x=0是一

13、个关系表达是一个关系表达式,当式,当x的值是的值是0时,关系表达式的值为时,关系表达式的值为“真真”,否,否则,关系表达式的值为则,关系表达式的值为“假假”。而而“=”在在C语言中被称为赋值运算符,语言中被称为赋值运算符,x=0是一是一个赋值表达式,表示将个赋值表达式,表示将0赋给变量赋给变量x,赋值表达式的,赋值表达式的值为变量值为变量x的值的值(即即0)。这样在这样在if(x=0) y=0;语句中,条件永远为假,语句语句中,条件永远为假,语句y=0;不可能被执行。不可能被执行。3.4.2 3.4.2 双分支条件语句双分支条件语句语法格式如下:语法格式如下:if (if (条件条件e)e)

14、语句语句S1S1;elseelse 语句语句S2S2;【例例3-73-7】从键盘输入两个整数从键盘输入两个整数x x 和和y y,求这,求这两个数的最大值。两个数的最大值。#include #include void main()void main() int x, y, max; int x, y, max; printf(printf(请输入两个整数请输入两个整数:);:);scanf(%d%d,&x,&y);scanf(%d%d,&x,&y);if(xy)if(xy)max=y;max=y;elseelsemax=x;max=x;printf(max=%d

15、n,max); printf(max=%dn,max); 【例例3-83-8】从键盘输入一个整数,当该数大于或等于从键盘输入一个整数,当该数大于或等于0 0时,时,输出它的平方根,否则,显示输入数据不正确。输出它的平方根,否则,显示输入数据不正确。 #include #include void main()int x;double y;scanf(%d,&x);if(x=0)y=sqrt(x);printf(%lfn,y);elseprintf(输入数据不正确输入数据不正确!n); ifif下面的花括号中包含下面的花括号中包含两条语句,他们组成了两条语句,他们组成了一条复合语句,表示当

16、一条复合语句,表示当条件成立时需要执行花条件成立时需要执行花括号中的所有语句。括号中的所有语句。 此时,如果省略花括号,此时,如果省略花括号,则会出现语法错误。则会出现语法错误。【例例3-93-9】从键盘输入一年份,判断该年是否为闰年。从键盘输入一年份,判断该年是否为闰年。判断闰年的条件是符合下面二条之一:判断闰年的条件是符合下面二条之一:(1)(1)能被能被4 4整除,但不能被整除,但不能被100100整除;整除;(2)(2)能被能被400400整除。整除。#include void main(void) int year;printf (请输入年份请输入年份:);scanf(%d,&

17、;year);if (year % 4 =0 & year %100 != 0 )| year % 400 = 0)printf (%d年是闰年年是闰年n, year);elseprintf (%d年不是闰年年不是闰年n, year); 3.4.3 多分支条件语句多分支条件语句语法格式如下:语法格式如下:ifif(条件(条件1 1) 语句语句1;1;else ifelse if(条件(条件2 2) 语句语句2;2;else ifelse if(条件(条件n n) 语句语句n;n;elseelse 语句语句n+1;n+1;【例例3-103-10】某商场实行打折促销活动,折扣率根据客户某商

18、场实行打折促销活动,折扣率根据客户购买商品的金额来定,两者的对应关系如表购买商品的金额来定,两者的对应关系如表3-13-1所示。所示。编写一个程序,从键盘输入客户购买商品的金额后,自编写一个程序,从键盘输入客户购买商品的金额后,自动计算出购买商品的金额和应付金额。动计算出购买商品的金额和应付金额。#include #include void main()void main() double cost,cost1;double cost,cost1;/分别表示购买金额和应付金额分别表示购买金额和应付金额printf(printf(请输入购买商品的金额请输入购买商品的金额:);:);scanf(%

19、lf,&cost);scanf(%lf,&cost);if(cost=10000)if(cost=10000)cost1=costcost1=cost* *0.85;0.85;else if(cost=5000)else if(cost=5000)cost1=costcost1=cost* *0.9;0.9;else if(cost=1000)else if(cost=1000)cost1=costcost1=cost* *0.95;0.95;elseelsecost1=cost;cost1=cost;printf(printf(购买金额为:购买金额为:%.2lf%.2lf,应

20、付金额为,应付金额为.2lfn,cost,cost1);.2lfn,cost,cost1); 【例例3-11】学生成绩可分学生成绩可分为五分制与百分制,从为五分制与百分制,从键盘输入学生的百分制键盘输入学生的百分制成绩,将其转换为五分成绩,将其转换为五分制输出。百分制与五分制输出。百分制与五分制之间的对应关系如表制之间的对应关系如表3-2所示。所示。百分制百分制五分制五分制90100A8089B7079C6069D059E#include float score;printf(请输入分数请输入分数:);scanf(%f,&score);if(score=90)printf(An); e

21、lse if(score=80)printf(Bn); else if(score=70)printf(Cn); else if(score=60)printf(Dn); else if(score=0)printf(En); else printf(输入分数不正确输入分数不正确!); 如果输入分数大于如果输入分数大于100,则输出多少?,则输出多少? 应如何进行修改呢?应如何进行修改呢? 3.3.4 if语句的嵌套语句的嵌套 ifif语句的嵌套是指在语句的嵌套是指在ifif语句中又包含了一个或多语句中又包含了一个或多个个ifif语句。语句。 【例例3-12】已知男性已知男性60岁退休,女性岁

22、退休,女性55岁退休,输岁退休,输入一个人的年龄和性别,判断他入一个人的年龄和性别,判断他(她她)是已退休还是是已退休还是在工作,并输出结果。输入性别时,用在工作,并输出结果。输入性别时,用F或或f表示女表示女性,用性,用M或或m表示男性,当输入的性别不对时,给表示男性,当输入的性别不对时,给出错误提示。出错误提示。#include #include void main()void main() int age;int age;char sex;char sex;printf(printf(请输入性别和年龄(请输入性别和年龄(F(f)/M(m)F(f)/M(m)):);:);scanf(%c%

23、d,&sex ,&age);scanf(%c%d,&sex ,&age);if(sex=m|sex=M)if(sex=m|sex=M) if(age=60) if(age=60) printf(printf(他已退休他已退休n);n);else else printf(printf(他在工作他在工作n);n); else if(sex=f|sex=F) else if(sex=f|sex=F) if(age=55) if(age=55) printf(printf(她已退休她已退休n);n);else else printf(printf(她在工作她在工作n);

24、n); else else printf(printf(输入数据有误!输入数据有误!n);n); 3.5 switch语句语句可以采用可以采用if-else ifif-else if语句处理多分支问题,但是,语句处理多分支问题,但是,当分支很多时,当分支很多时,采用采用switchswitch语句语句会更简洁会更简洁。语法格式如下:语法格式如下:switchswitch(表达式)(表达式) case case 常量常量1: 1: 语句序列语句序列1;break;1;break; case case 常量常量2: 2: 语句序列语句序列2;break;2;break; case case 常量常

25、量n: n: 语句序列语句序列n;break;n;break; default: default: 语句序列语句序列n+1;n+1; 【例例3-123-12】已知已知19981998年的年的1 1、3 3、5 5、7 7、8 8、1010、1212月月有有3131天,天,4 4、6 6、9 9、1111月有月有3030天,天,2 2月有月有2828天。编程从天。编程从键盘输入键盘输入19981998年的某个月份,输出该月有多少天。年的某个月份,输出该月有多少天。#include #include void main()void main() int x,day; int x,day; prin

26、tf( printf(请输入月份(请输入月份(1-121-12):):);); scanf(%d,&x); scanf(%d,&x); switch (x) switch (x) case 1: day=31; break;case 1: day=31; break;case 2: day=28; break;case 2: day=28; break;case 3: day=31; break;case 3: day=31; break;case 4: day=30; break;case 4: day=30; break;case 5: day=31; break;case

27、 5: day=31; break;case 6: day=30; break;case 6: day=30; break;case 7: day=31; break;case 7: day=31; break;case 8: day=31; break;case 8: day=31; break;case 9: day=30; break;case 9: day=30; break;case 10: day=31; break;case 10: day=31; break;case 11: day=30; break;case 11: day=30; break;case 12: day=3

28、1; break;case 12: day=31; break; printf(%d printf(%d月的天数是月的天数是%dn,x,day);%dn,x,day); 如果多个如果多个case的执行语的执行语句相同,则它们可以共句相同,则它们可以共用同一个语句块。用同一个语句块。 switch (x) case 4:case 6:case 9:case 11: day=30; break;case 2: day=28; break;default: day=31; break不可省略。不可省略。 3.6 运算符及其表达式运算符及其表达式类型类型运算符运算符关系运算符关系运算符 = 下标运算符

29、下标运算符位运算符位运算符 | &3.6.1 算术运算符及其表达式算术运算符及其表达式 1.1.基本的算术运算符基本的算术运算符+ +(加),(加),- -(减),(减),* *(乘),(乘),/ /(除),(除),% %(求余)(求余)“%”为求余运算符,为求余运算符,“%”运算符两侧均应为整运算符两侧均应为整型数据,其运算结果为两个运算对象做除法运算的型数据,其运算结果为两个运算对象做除法运算的余数余数。例如例如:4%3的结果为的结果为1。2. 2. 自增、自减运算符自增、自减运算符自增运算符为:自增运算符为:+自减运算符为:自减运算符为:-这两个运算符都有前置和后置之分。这两个运

30、算符都有前置和后置之分。例如:例如:+i; i+; -i;i-;+i和和i+的作用都是将变量的作用都是将变量i的值加的值加1,两者的区别,两者的区别在于:算术表达式本身的值不同。在于:算术表达式本身的值不同。算术表达式算术表达式+i的值为变量的值为变量i加加1之后的值,而算术之后的值,而算术表达式表达式i+的值为变量的值为变量i加加1之前的值。之前的值。【例例3-14】分析下面程序的执行结果。分析下面程序的执行结果。#include void main()int i=5,j=5,m,n;m=+i;n=j+;printf(m=%d,n=%d,i=%d,j=%dn,m,n,i,j); 3. 算术表

31、达式算术表达式如果表达式中的主要运算符是算术运算符,则该表如果表达式中的主要运算符是算术运算符,则该表达式称为算术表达式。例如:达式称为算术表达式。例如:a*b+c/2、28+2*pi*r、a*sin(x)+b*cos(x)、32/2%5C语言不允许像数学运算式那样,任意省略乘号。语言不允许像数学运算式那样,任意省略乘号。例如,数学运算式例如,数学运算式(a+b)(a-b)在在C语言中应写成语言中应写成(a+b)*(a-b);1/abc应写成应写成1/(a*b*c)。3.6.2 赋值运算符及其表达式赋值运算符及其表达式 1 赋值运算符赋值运算符l 赋值运算符的作用是给一个变量赋值,赋值运算符有

32、赋值运算符的作用是给一个变量赋值,赋值运算符有两类:基本赋值运算符两类:基本赋值运算符(即即“=”)和复合赋值和复合赋值运算符运算符。l C C语言中包含的赋值运算符如下:语言中包含的赋值运算符如下:(1) (1) 基本赋值运算符基本赋值运算符= = 例如:例如:a=b+1a=b+1。(2) (2) 加赋值运算符加赋值运算符+= += 例如:例如:a+=b+1a+=b+1等价于等价于a=a+(b+1)a=a+(b+1)。(3) (3) 减赋值运算符减赋值运算符-=-=例如例如:a-=b+1a-=b+1等价于等价于a=a-(b+1)a=a-(b+1)。(4) (4) 乘赋值运算符乘赋值运算符*

33、*= =例如例如:a a* *=b+1=b+1等价于等价于a=aa=a* *(b+1)(b+1)。(5) (5) 除赋值运算符除赋值运算符/=/=例如例如:a/=b+1a/=b+1等价于等价于a=a/(b+1)a=a/(b+1)。(6) (6) 求余赋值运算符求余赋值运算符%=%= 例如例如:a%=b+1a%=b+1等价于等价于a=a%(b+1)a=a%(b+1)。2. 赋值表达式赋值表达式赋值表达式是由赋值运算符连接一个变量和一个表赋值表达式是由赋值运算符连接一个变量和一个表达式构成的式子,它的一般格式如下:达式构成的式子,它的一般格式如下:变量变量 赋值运算符赋值运算符 表达式表达式例如:

34、例如:b=a+3赋值表达式运算时,先计算赋值运算符右侧表达式赋值表达式运算时,先计算赋值运算符右侧表达式的值,然后将其赋给左侧的变量。赋值表达式的值为的值,然后将其赋给左侧的变量。赋值表达式的值为赋值后运算符左侧变量的值。赋值后运算符左侧变量的值。例如:例如:a=4+(b=6),赋值表达式赋值表达式b=6的值为的值为6,这样变量,这样变量a的值为的值为10。3. 赋值中的自动类型转换赋值中的自动类型转换C语言规定:在一个赋值语句中,当赋值号左侧变语言规定:在一个赋值语句中,当赋值号左侧变量的类型与右侧表达式值的类型不一致时,以赋值量的类型与右侧表达式值的类型不一致时,以赋值号左侧变量的类型为准

35、,自动进行类型转换。号左侧变量的类型为准,自动进行类型转换。例如:例如:int n;n=3.5;赋值后变量赋值后变量n的值为的值为3。3.5.3 条件运算符及其表达式条件运算符及其表达式条件运算符由条件运算符由“?” 和和“:” 两个符号组成,是两个符号组成,是C语言语言中唯一要求中唯一要求3个操作数的运算符,称为三目运算符。个操作数的运算符,称为三目运算符。条件运算符的一般格式如下:条件运算符的一般格式如下:条件条件? ?表达式表达式1:1:表达式表达式2 2先判断条件是否成立,如果成立,则将表达式先判断条件是否成立,如果成立,则将表达式1的值的值作为整个条件表达式的值;否则,将表达式作为整

36、个条件表达式的值;否则,将表达式2的值作为的值作为整个条件表达式的值。整个条件表达式的值。例如:例如:int x=5,y;int x=5,y;y=x10?100:200;y=x10?100:200;3.6.4 逗号运算符及其表达式逗号运算符及其表达式用逗号运算符用逗号运算符“,”将多个表达式连接而成的式子,将多个表达式连接而成的式子,称为逗号称为逗号表达式表达式。其语法格式如下:其语法格式如下:表达式表达式1 1,表达式,表达式2 2,表达式,表达式n n 其计算过程是:先求表达式其计算过程是:先求表达式1 1的值,再求表达式的值,再求表达式2 2的值,的值,最后求表达式,最后求表达式n n的

37、值,整个逗号表达的值,整个逗号表达式的值为表达式式的值为表达式n n的值。的值。例如:例如:intint a=1,b=2,z; a=1,b=2,z;z=(a+1,b+2,3+5);z=(a+1,b+2,3+5);3.5.5 运算符的优先级和结合方向运算符的优先级和结合方向1.运算符的优先级运算符的优先级优先级是指当多个运算符出现在同一个表达式中时优先级是指当多个运算符出现在同一个表达式中时,哪一个运算符先进行运算,运算顺序直接影响表达,哪一个运算符先进行运算,运算顺序直接影响表达式的值。式的值。例如,对于表达式例如,对于表达式2+3*5。C语言中各种运算符的优先级和结合方向见附录语言中各种运算

38、符的优先级和结合方向见附录B。2.运算符的结合方向运算符的结合方向结合方向是指:当多个同级运算符出现在同一个结合方向是指:当多个同级运算符出现在同一个表达式中时,哪一个运算符先进行运算。表达式中时,哪一个运算符先进行运算。例如:求例如:求30/5%4。结合方向有两种:从左到右和从右到左。算术运结合方向有两种:从左到右和从右到左。算术运算符的结合方向是从左到右。算符的结合方向是从左到右。上述表达式的计算过程是:先计算上述表达式的计算过程是:先计算30/5,得,得6,再,再计算计算6%4,得,得2。 例例 int a=3,b=2,c=1,d;d=a-1bc;执行上述语句后变量执行上述语句后变量d的

39、值是多少?的值是多少?该表达式包括赋值、关系、算术三种运算符,其该表达式包括赋值、关系、算术三种运算符,其中,算术运算符的优先级最高,其次为关系运算符中,算术运算符的优先级最高,其次为关系运算符,最后是赋值运算符。,最后是赋值运算符。学生信息管理系统程序启动后,首先显示系统菜学生信息管理系统程序启动后,首先显示系统菜单,根据用户输入的数字,系统要进行两次判断:单,根据用户输入的数字,系统要进行两次判断:1.1.判断用户输入的有效性。判断用户输入的有效性。2.2.判断用户选择了哪个功能模块。判断用户选择了哪个功能模块。 【例例3-153-15】“学生信息管理系统学生信息管理系统”中菜单选择和系统

40、功能调用的实现。中菜单选择和系统功能调用的实现。#include #include #include /exit()#include /exit()用到用到void main()void main() int choice;int choice;printf( printf( 欢迎使用学生信息管理系统欢迎使用学生信息管理系统n);n);printf(-n);printf(-n);printf(1.printf(1.添加学生信息添加学生信息 2.2.显示学生信息显示学生信息n);n);printf(3.printf(3.修改学生信息修改学生信息 4.4.删除学生信息删除学生信息n);n);pri

41、ntf(5.printf(5.查找学生信息查找学生信息 6.6.统计不及格人数、最高分和平均分统计不及格人数、最高分和平均分n);n);printf(7.printf(7.按总分排序按总分排序 8.8.保存至文件保存至文件( (文本方式文本方式)n);)n);printf(9.printf(9.从文件读入从文件读入( (文本方式文本方式) 10.) 10.保存至文件保存至文件( (二进制方式二进制方式)n);)n);printf(11.printf(11.从文件读入从文件读入( (二进制方式二进制方式)12 .)12 .退出程序退出程序n);n);printf(-n);printf(-n);p

42、rintf(printf(请选择功能模块,输入数字请选择功能模块,输入数字1-12: );1-12: );scanf(%d,&choice);scanf(%d,&choice);if(choice=1 & choice=1 & choice=12)switch(choice)switch(choice) case 1: add(); case 1: add(); break; /break; /添加学生信息添加学生信息case 2: display();break; /case 2: display();break; /显示学生信息显示学生信息case 3: modify(); break; /case 3: m

温馨提示

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

评论

0/150

提交评论