学生成绩管理系统界面设计.ppt
01任务一任务一 学生成绩管理系统界面设计学生成绩管理系统界面设计学习情境学习情境 学生成绩管理系统的功能主要是管理学生的成绩。每个学生的信息包括学号、姓名、数学成绩、英语成绩、物理成绩。通过对学生成绩的管理,实现录入学生成绩、显示学生成绩、查询学生成绩、修改学生成绩、添加学生记录、删除学生记录、排序学生成绩的功能。本部分任务是实现学生成绩管理系统中的界面设计。学生成绩管理系统界面是用户与系统进行交互的中介,用户通过界面完成各种操作,界面由功能菜单组成,学生成绩管理系统界面如图所示。01任务一任务一 学生成绩管理系统界面设计学生成绩管理系统界面设计学习情境学习情境 01任务一任务一 学生成绩管理系统界面设计学生成绩管理系统界面设计第一部分第一部分 任务学习引导任务学习引导 n1.1结构化程序设计的基本结构n1.2输入/输出语句第二部分第二部分 模块实现:学生成绩管理系统界面设模块实现:学生成绩管理系统界面设计计1.1 结构化程序设计的基本结构结构化程序设计的基本结构 1程序设计的三种基本结构程序设计的三种基本结构 通常的计算机程序总是由若干条语句组成的,从执行过程上看,程序的执行顺序完全按程序编写的顺序从第一条语句执行到最后一条语句,这样的程序结构称为顺序结构;若在程序执行过程中,根据用户的输入或中间结果去执行若干不同的任务则称为选择结构;如果在程序的某处,需要根据某项条件重复地执行某项任务若干次或直到满足或不满足某条件为止,这就构成循环结构。大多数情况下,程序都不会是简单的顺序结构,而是顺序、选择、循环三种结构的复杂组合。从程序流程的角度来看,程序可以分为三种基本结构,即顺序结构、分支结构、循环结构。这三种基本结构可以组成各种复杂程序。1.1 结构化程序设计的基本结构结构化程序设计的基本结构 2语句的概念语句的概念 C语言的语句可分为表达式语句、函数调用语句、控制语句、复合语句、空语句五类。(1)表达式语句(2)函数调用语句(3)控制语句(4)复合语句(5)空语句1.2输入/输出语句 在C语言中,数据的输入/输出语句是在输入/输出函数后面加上分号得到的。C语言提供了丰富的输入/输出函数,这些标准的输入/输出库函数原型主要包含在stdio.h、conio.h头文件中,因此,在使用这些库函数的C语言程序中需要使用文件包含预编译命令:#include或#include。1.2输入/输出语句下面介绍其中几个常用的输入/输出函数。1字符数据的输入字符数据的输入/输出函数输出函数(1)字符输出函数putchar调用的一般格式:putchar(ch)。功能:把ch输出到标准输出设备(显示器)。参数形式:ch可以是字符表达式或整型表达式。头文件:该函数包含在stdio.h头文件中。返回值:返回输出字符的ASCII码值,当输出有错误时,返回1。1.2输入/输出语句 下面介绍其中几个常用的输入下面介绍其中几个常用的输入/输出函数。输出函数。1字符数据的输入字符数据的输入/输出函数输出函数【例1-1】输出一个字符。程序代码如下:#includemain()intch=65;putchar(ch);putchar(97);1.2输入/输出语句下面介绍其中几个常用的输入/输出函数。1字符数据的输入字符数据的输入/输出函数输出函数【例1-2】输出一个字符。程序代码如下:#includemain()charch=a;putchar(ch);putchar(A);1.2输入/输出语句 下面介绍其中几个常用的输入下面介绍其中几个常用的输入/输出函数。输出函数。1字符数据的输入字符数据的输入/输出函数输出函数(2)字符输入函数getchar调用的一般格式:getchar()。功能:从标准输入设备(键盘)读取一个字符。该函数的执行过程是当执行到这条语句时,切换到DOS环境下等待用户输入,从键盘输入一个或一串字符,按Enter键后,将输入的所有字符(包括回车符)放在缓冲区中,getchar函数从缓冲区中只读取第一个字符。也就是说,getchar函数等到输入一个回车才结束键盘输入,即使输入一个字符串,它也只从缓冲区读取第一个字符。参数形式:无。头文件:该文件包含在stdio.h头文件中。返回值:读取字符的ASCII码。注意:getchar函数总是先从缓冲区读字符,只有当缓冲区为空时才会暂停并等待键盘的新输入。1.2输入/输出语句下面介绍其中几个常用的输入/输出函数。1字符数据的输入字符数据的输入/输出函数输出函数【例1-3】输入一个字符并输出。程序代码如下:#includemain()charch;ch=getchar();putchar(ch);输入:a输出:a1.2输入/输出语句下面介绍其中几个常用的输入/输出函数。1字符数据的输入字符数据的输入/输出函数输出函数【例1-4】输入一个字符串并输出。程序代码如下:#includemain()charch;ch=getchar();putchar(ch);ch=getchar();putchar(ch);1.2输入/输出语句 下面介绍其中几个常用的输入下面介绍其中几个常用的输入/输出函数。输出函数。1字符数据的输入字符数据的输入/输出函数输出函数输入:abc输出:ab再次运行程序后,输入:a输出:a这是为什么?因为程序中的第二个ch=getchar();使ch的值为回车符,第二个putchar(ch);把回车符输出。1.2输入/输出语句1字符数据的输入字符数据的输入/输出函数输出函数(3)字符输入函数getch调用的一般格式:getch()。功能:从标准输入设备(键盘)读取一个字符,但读取时该字符不在显示器上显示。参数形式:没有参数。头文件:conio.h返回值:读取字符的ASCII码。注意:getch函数包含在conio.h头文件中。getch函数与getchar函数的区别是前者只从键盘(不从缓冲区)读取字符,并且读取的字符不回显,而后者总是从缓冲区读字符,只有当缓冲区为空时才会暂停并等待键盘的新输入,按Enter键后把数据读到缓冲区中,并且读取的字符回显。1.2输入/输出语句1字符数据的输入字符数据的输入/输出函数输出函数【例1-5】输入一个字符并输出。程序代码如下:#include#includemain()charch;ch=getchar();putchar(ch);putchar(n);ch=getch();putchar(ch);1.2输入/输出语句1字符数据的输入字符数据的输入/输出函数输出函数输入:abc输出:a输入:w(注意:w字符不在显示器上显示)输出:w1.2输入/输出语句2格式输入格式输入/输出函数输出函数(1)格式输出函数printf第一种调用的一般格式,printf()功能:当需要输出一个字符串常量时用此格式,将格式控制字符串常量输出到标准输出设备(显示器)中。参数形式:格式控制字符串就是字符串常量。头文件:stdio.h1.2输入/输出语句2格式输入格式输入/输出函数输出函数(1)格式输出函数printf【例1-6】在显示器上输出“你好,Iamastudent”。程序代码如下:#includemain()printf(你好,Iamastudentn);1.2输入/输出语句2格式输入格式输入/输出函数输出函数(1)格式输出函数printf第二种调用的一般格式。printf(,)功能:当需要输出一个或多个表达式值时用此格式,将各个输出表达式的值按格式控制字符串中对应的格式说明的要求输出到标准输出设备(显示器)中。参数形式:格式控制字符串包括普通字符、转义字符、格式说明。其中:a普通字符:原样输出。1.2输入/输出语句2格式输入格式输入/输出函数输出函数(1)格式输出函数printf第二种调用的一般格式。b转义字符:属于字符常量,参见“开篇导读0.3”中关于转义字符的介绍。c格式说明:以“%”开始,后跟一个或几个规定字符,一般形式如下:%标志输出最小宽度.精度格式字符输出表达式:输出表达式个数是可选的,可以是1个,也可以是多个,但个数必须与格式控制字符串中的格式说明个数一样多,并且顺序要一一对应,各参数之间用“,”分开。输出表达式可以是常量、变量、函数、表达式等。1.2输入/输出语句2格式输入格式输入/输出函数输出函数(1)格式输出函数printf第二种调用的一般格式。下面着重介绍格式说明。a格式字符(如表所示)1.2输入/输出语句2格式输入格式输入/输出函数输出函数(1)格式输出函数printf格式字符格式字符在printf函数中的意义d以十进制形式输出有符号整数u以十进制形式输出无符号整数o以八进制形式输出无符号整数x以十六进制形式输出无符号整数f以小数形式输出单、双精度实数e以指数形式输出单、双精度实数c输出单个字符s输出字符串1.2输入/输出语句2格式输入格式输入/输出函数输出函数(1)格式输出函数printf【例1-7】格式字符的使用。#includemain()inta=10;floatb=-12.6666666666;doublec=2.22222222222222222222;charch=a;printf(a=%dn,a);printf(a=%un,a);printf(a=%on,a);printf(a=%xn,a);printf(b=%fn,b);printf(b=%en,b);printf(c=%fn,c);printf(c=%en,c);printf(ch=%cn,ch);printf(ch=%dn,ch);printf(s=%sn,abcdefgh);1.2输入/输出语句2格式输入格式输入/输出函数输出函数(1)格式输出函数printfb输出最小宽度输出最小宽度是一个十进制整数,用来表示输出的最少位数。表达式值的实际位数大于输出最小宽度:按实际位数输出。表达式值的实际位数小于输出最小宽度:输出的表达式值右对齐,左边用空格填充,但输出的宽度是输出最小宽度值。1.2输入/输出语句2格式输入格式输入/输出函数输出函数(1)格式输出函数printf【例1-8】输出最小宽度的使用。#include#includemain()inta=10;floatb=-12.6666666666;doublec=2.22;charch=a;printf(a=%10dn,a);printf(a=%10un,a);printf(a=%10on,a);printf(a=%10 xn,a);printf(b=%10fn,b);printf(b=%10en,b);printf(c=%10fn,c);printf(c=%10en,c);printf(ch=%10cn,ch);printf(ch=%10dn,ch);1.2输入/输出语句2格式输入格式输入/输出函数输出函数(1)格式输出函数printfc精度精度格式符以“.”开头,后跟十进制整数。一般应用于实型数、字符串表达式的输出。其含义是,如果输出表达式值是实型数,精度则表示小数的位数。如果实际的小数位数大于所定义的精度,则四舍五入;如果实际小数位数小于所定义的精度,则补0。但单精度实型数只能精确到小数点后6位,而双精度实型数只能精确到小数点后15位。如果输出的是字符串,则表示输出字符的个数;如果字符串的实际位数小于所定义的精度,按实际位数输出;如果实际位数大于所定义的精度,则截去超过的部分。当精度用来控制字符串输出时,精度实际是最大输出宽度。1.2输入/输出语句2格式输入格式输入/输出函数输出函数(1)格式输出函数printf【例1-9】精度的使用。#includemain()floatb=-12.6666;doublec=2.22222;printf(b=%.3fn,b);printf(b=%.5fn,b);printf(b=%.10fn,b);printf(b=%.16en,b);printf(c=%.3fn,c);printf(c=%.13fn,c);printf(c=%.18en,c);printf(s=%.5sn,abcdefgh);printf(s=%.10sn,abcdefgh);1.2输入/输出语句2格式输入格式输入/输出函数输出函数(1)格式输出函数printfd标志标志字符为-、+、#、空格四种,其意义如表所示。标志标志在printf函数中的意义结果左对齐,右边填空格+输出符号(正号或负号)空格输出值为正数时数值前加空格,为负数时数值前加负号#以%c、%s、%d、%u输出表达式值时此标记不影响输出结果以%o输出表达式值时,输出结果加前缀o;以%x输出表达式值时,输出结果加前缀0 x;1.2输入/输出语句2格式输入格式输入/输出函数输出函数(1)格式输出函数printf【例1-10】标志的使用。#includemain()inta=100;printf(a=%dn,a);printf(a=%10dn,a);printf(a=%-10dn,a);printf(a=%+dn,a);printf(a=%dn,a);printf(a=%#on,a);printf(a=%#xn,a);1.2输入/输出语句2格式输入格式输入/输出函数输出函数(2)格式输入函数scanf调用的一般格式:scanf(,)功能:scanf()函数是格式化输入函数,当执行到这条语句时,切换到DOS环境等待用户输入,按格式控制字符串中指定格式,从标准输入设备(键盘)输入常量,并存入对应变量的地址中。scanf()同getchar()函数都是带输入缓冲区的函数。即输入时按回车后将数据送到缓冲区,scanf()从缓冲区中读取数据,当读到空格、回车或非法字符时读取结束,当缓冲区为空时才会暂停并等待键盘的新输入。头文件:stdio.h返回值:返回值为int类型。返回成功获得值的变量个数。参数形式:格式控制字符串包括普通字符、格式说明。1.2输入/输出语句2格式输入格式输入/输出函数输出函数(2)格式输入函数scanf其中:普通字符:原样输入。格式说明:以“%”开始,后跟一个或几个规定字符,一般形式如下:%输入数据宽度格式字符变量地址表:地址表列出了各变量的地址,而不是变量本身。如果是一般变量,在变量名前加上地址运算符“&”就是变量地址;如果是数组,数组名就是数组的首地址;如果是指针,指针名就是指针变量的首地址,这两种情况就不用加地址运算符“&”(将在以后章节中介绍)。1.2输入/输出语句2格式输入格式输入/输出函数输出函数(2)格式输入函数scanf下面着重介绍格式说明。格式字符如表所示。格式字符格式字符在scanf函数中的意义d输入有符号十进制整数u输入无符号十进制整数o输入无符号八进制整数(不需要以0开头)x输入无符号十六进制整数(不需要以0 x开头)f以小数形式输入实数赋值给单精度变量e以指数形式输入实数赋值给单精度变量lf以小数形式输入实数赋值给双精度变量le以指数形式输入实数赋值给双精度变量c输入单个字符s输入字符串1.2输入/输出语句2格式输入格式输入/输出函数输出函数【例1-11】scanf格式字符的使用。#includemain()floata;scanf(%f,&a);printf(a=%fn,a);运行结果:输入:11.2输出:11.200000又输入:11.2输出:11.200000又输入:11.2ab输出:11.2000001.2输入/输出语句2格式输入格式输入/输出函数输出函数【例1-12】scanf格式字符的使用。#includemain()charch;doublea;floatb;scanf(%lf%c%f,&a,&ch,&b);printf(a=%f,ch=%c,b=%f,a,ch,b);运行结果:输入:11.2a33.33输出:a=11.200000,ch=a,b=33.3300001.2输入/输出语句2格式输入格式输入/输出函数输出函数符用以表示该输入项读入后不赋值给相应的变量,即跳过该输入值。例如,scanf(%d%d%d,&a,&b);当输入为123时,把1赋值给a,2被跳过,3赋值给b。输入数据宽度。输入数据宽度是十进制整数,用来指定输入的宽度(即字符数)。例如,scanf(%5d,&a);输入:12345678只把12345赋予变量a,其余部分被截去。1.2输入/输出语句2格式输入格式输入/输出函数输出函数又如,scanf(%4d%4d,&a,&b);输入:12345678将把1234赋予a,而把5678赋予b。使用scanf时的注意事项:通常,格式说明和变量地址要在顺序、个数和类型上对应一致。但也有一些特例,如对于实型变量可输入整型数据。1.2输入/输出语句2格式输入格式输入/输出函数输出函数【例1-13】scanf的使用。程序代码如下:#includemain()charch;inta;floatb;scanf(%c%3d%f,&ch,&a,&b);printf(ch=%c,a=%d,b=%fn,ch,a,b);运行结果:输入:a1234.56输出:ch=a,a=123,b=4.5600001.2输入/输出语句2格式输入格式输入/输出函数输出函数可以使用普通字符作为输入数据的分隔符,输入时必须在数据间增加分隔符。例如:scanf(%d,%d,%d,&a,&b,&c);就应该输入:3,4,5又如:scanf(a=%d,b=%d,c=%d,&a,&b,&c);就应该输入:a=3,b=4,c=51.2输入/输出语句2格式输入格式输入/输出函数输出函数当格式控制字符串无普通字符时,系统隐含要求以一个或多个空格,或一个或多个tab键,或一个或多个回车作为输入数据间的分隔符。scanf(%d%d%d,&a,&b,&c);可输入:3tab键4tab键5也可输入:345也可输入:3451.2输入/输出语句2格式输入格式输入/输出函数输出函数(3)清空输入缓冲区函数fflush调用的一般格式:fflush(stdin)功能:清空输入缓存区上的数据,使输入缓存区为空。可以和getchar函数、scanf函数配合使用。参数stdin:标准输入设备(键盘)。头文件:stdio.h1.2输入/输出语句2格式输入格式输入/输出函数输出函数【例1-14】fflush函数的使用。要求:从键盘输入字符a、b分别赋值给变量c1、c2。程序代码如下:#includemain()charc1,c2;scanf(%c,&c1);scanf(%c,&c2);printf(c1=%c,c2=%c,c1,c2);运行结果:输入:a输出:c1=a,c2=1.2输入/输出语句2格式输入格式输入/输出函数输出函数问题是在DOS环境下输入a按Enter键后无法输入b,要解决以上问题,可以在输入函数前加入清除函数fflush(),修改以上程序为:#includemain()charc1,c2;scanf(%c,&c1);fflush(stdin);scanf(%c,&c2);printf(c1=%c,c2=%c,c1,c2);第二部分模块实现:学生成绩管理系统第二部分模块实现:学生成绩管理系统界面设计界面设计 学生成绩管理系统由如图所示的模块构成。学生成绩管理系统由如图所示的模块构成。第二部分模块实现:学生成绩管理系统第二部分模块实现:学生成绩管理系统界面设计界面设计 1需求分析需求分析用C语言实现如图所示的用户界面。第二部分模块实现:学生成绩管理系统第二部分模块实现:学生成绩管理系统界面设计界面设计 2算法设计算法设计本模块需要输出主菜单选择界面,简单菜单的制作可以利用printf函数。用printf函数将菜单项一项项地打印到屏幕上,界面中的边框可以通过多个printf函数输出的“|”和“-”拼接起来。先输出第一行,再输出第二行,依次把整个菜单界面完成。