Download presentation
Presentation is loading. Please wait.
Published by札 强 Modified 8年之前
1
项目一 一卡通程序数据存储设计 1-3 数据存储设计
2
项目 为一卡通程序的设计数据存储 一卡通系统中需要存储的数据有: 消费金额 (小数形式,输出精度 2 位小数) 卡内余额(小数形式,输出精度 2 位小数) 充值金额(小数形式,输出精度 2 位小数) 菜单选项(整数形式,允许范围 1-7 )
3
任务 任务 1 为校园一卡通程序定义充值、消费 、余额定义数据存储 任务 2 写一个程序能输入充值、消费,并 计算余额(注:余额初始值为 0.00 ) 余额 = 余额 + 充值 - 消费
4
学习目标 掌握变量的概念。 掌握常用的数据类型。 掌握运算符的使用。 掌握数据类型转换。 掌握输入语句的使用。 掌握格式说明符的使用。
5
知识点 - 标识符 C 语言中, “ 标识符 ” 是用来表示数据存储、函数名字、常 数的字符序列。 书写规则:必须以字母( 26 个英文小写字母、 26 个英文 大写字母)、下划线开始,由字母、下划线、数字组成。 不能是 C 语言中的关键字。 注意:像 printf 那样的系统定义的函数名并不是关键字, 它只是已经定义了的 “ 标识符 ” 。 合法标识符例子 : _area Blance Area len area_1 非法的标识符例子: 5_mile $example abc@123
6
知识点 — 变量 在前面编写的程序中,所有的输出内容都是在代码里面写好的, 比如: printf(“ 唐僧说:悟空 我要念紧箍咒 100 遍! "); 这样不论是谁运行这个程序看到的都是我要念紧箍咒 100 遍!, 能不能够实现如果是八戒求情说 99 遍吧,沙僧求情说 10 遍吧。 这样的结果? 使用 C 语言的变量可以解决!
7
知识点 — 变量 怎样表示数据存储? 可以经常改变其值 --- 变量 一旦存储,永不改变 --- 常量 变量,顾名思义,就是为了变化而生的。在程序 中,变量是用来存储数据,并且随着程序的运行 而发生改变。 变量到底是什么?它如何工作?
8
知识点 — 变量 每一个储物柜都可以 看做是变量 编号:小家电 002 存储内容:电话 先来看一看家里的储物柜是如何使用的。
9
知识点 — 变量 变量在内存中的表示 105.23 100105.23 100 0x10000000 0x10000004 内存 内存地址 内存空间 内存中的数据 内存地址
10
知识点 — 变量 内存 100 家电储物柜 储物柜 001 变量名 变量类型 变量值 数值的空间 0x10000000 比较一下两者的相同之处。 变量由变量类型、变量名及存储的值三部分组成。
11
知识点 — 常用数据类型 曾经接触过哪些数据类型? 自然数 整数 小数 正数 负数 C 中的数据类型划分也是比较类似的。 实数 分数
12
知识点 — 常用数据类型 C 语言中的常用数据类型一般被分为 5 种:字符型,基本整型,单精度实型 双精度实型和空类型 (void) 不同的编译软件对字节的分配不同 数据类型类型名所占字节取值范围有效数位格式说明符 基本整型 int4-2 31 ~2 31 -1%d 长整型 long4%ld 单精度实型 float46-7%f 双精度实型 double815-16%lf 字符型 char1%c
13
知识点 — 变量的声明和使用 变量声明 数据类型 变量名 ; // 声明变量 数据类型 变量名 = 值 ; // 声明变量并赋值 语法 示例 int number; // 声明整型变量 number char ch ; // 声明字符变量 ch int score = 100;// 声明整型变量 score 并赋值 float sum =19.23; // 声明单精度实型变量 sum 并赋值
14
知识点 — 变量的声明和使用 回想一下刚才的问题。 在前面的程序中,所有的语句都是事先写好的,比如: printf(“ 唐僧说: 悟空 我要念紧箍咒 100 遍! "); 这样不论是谁运行这个程序看到的都是 我要念紧箍咒 100 遍!,能不能够实现如果是八戒求情说 99 遍吧,沙 僧求情说 10 遍吧,这样的结果? 分析 使用变量存储紧箍咒的次数。
15
知识点 — 变量的声明和使用 #include int main(int args, char *argv[ ]) { int shifu=100,bajie=99,shaseng=10; printf(" 师傅说:悟空,我念 %d 遍紧箍咒 !\n",shifu); printf(" 八戒说:师傅念 %d 遍吧 !\n",bajie); printf(" 沙僧说 : 师傅念 %d 遍吧 !\n",shaseng); return 0; } 变量声明并赋值 使用变量
16
知识点 — printf ( ) 输出函数的使用 格式 printf(“ 格式控制串 ”, 输出列表); 格式控制符: int: %d , long : %ld , float : %f double : %lf char : %c 输出列表: 可以是变量,常量,表达式 一个格式控制符对应一个输出内容,格式控制符规定了数据输出格式和 位置,格式控制串中其他符号照样输出。例子: int a=10,b=20; double x=15.356; printf(“a=%d , b=%d , x=%6.3lf\n”,a,b,x); 结果: a=10,b=20,x=15.356
17
知识点 —printf( ) 输出函数的使用 #include int main(int args,char *argv[ ]){ int egg=100,banana=50,rice=30; printf(" 猪八戒吃了 %d,%d,%d",egg,banana,rice); return 0; } 变量声明并赋值 使用变量
18
知识点 — 变量的声明和使用 程序仍未完全满足要求?次数不会根据需要变化? #include int main(int args,char *argv[ ]){ int shifu,bajie,shaseng; printf(" 师傅说:念紧箍咒的次数: \n"); scanf("%d",&shifu); printf(" 八戒说:念紧箍咒的次数: \n"); scanf("%d",&bajie); printf(" 沙僧说:念紧箍咒的次数: \n"); scanf("%d",&shaseng); printf(" 师傅说念 %d, 八戒说念 %d, 沙僧说 %d",shifu,bajie,shaseng); return 0; } 获取键盘输入数据
19
知识点 — scanf( ) 输入函数的使用 格式: scanf(“ 格式串 ", 变量地址); int shifu; printf(" 师傅说:念紧箍咒的次数: \n"); scanf("%d",&shifu); 注意: 1. 在 scanf 函数中,出现在 “ 格式串 ” 中的符号建议 只用格式控制符,若出现其他符号,则输入时必须从键盘 照按符号键。 2. 格式控制符个数一定与变量地址一一对应。
20
知识点 — 变量值的输入 用 scanf() 函数实现格式输入 例子:输入一个矩形的长和宽及矩形个数,假定以米为单 位,精确到 2 位小数。输入后计算每个矩形面积和总面积 。 include int main(int args,char *argv[ ]){ double rec_length,rec_width,area; int num; printf(“ 输入矩形的长、宽、个数 \n”); scanf(“%lf%lf%d”,&rec_length,&rec_width,&num); area=rec_length*rec_width; printf(“ 每个矩形面积是: %8.2lf\n”,area); printf(“%d 个矩形的总面积是: %8.2lf\n”,num,num*area); return 0; } 输出项为表达式
21
知识点 — 赋值运算符 在程序中,给变量赋值是一个必须的过程。程序里使用 “=” 对变量进行赋值。 示例 int number = 100; double score = 78.3; char ch = ‘m’; char 型赋值时,使 用单引号 ‘’ 将值包含 起来,且仅能有一 个字符。 记住赋值运算符的使用格式:被赋值的变量 = 值或表达式 ; 赋值运算的结果是赋予 “=” 左边变量的值。 赋值运算具有右结合性。
22
知识点 — 算术运算符 程序中经常会遇到需要进行计算的时候,常用的算术运算 符有哪些? 功能不用多说,用法稍后再讲,先来记住 C 语言中的一 个新运算符,取余 ( 也称为 “ 取模 ”) 运算符。
23
知识点 — 算术运算符 int main(int,args,char *argv[ ]){ int a=10,b=20,c,d,e,f,g; c=a+b; d=a-b; e=a/b; f=a%b; g=a*b; printf("%d,%d,%d,%d,%d",c,d,e,f,g); return 0; } 整数相除,结果取整
24
知识点 — 算术运算符 使用变量存储每个消费金额 使用算术运算符进行计算 使用输出语句输出平均钱数 为提高学校整体学习效率,在玉帝校长的倡导,观音班主任的领导下, 以唐班长为中心,集合了悟空、八戒、沙僧三位同学,组成了西行考察 小组,前往天竺大雷音高校汲取经验。 四人初次见面,为加深彼此感情,利于今后合作,欢聚五行山酒楼,一 通吃喝,菜单如下: 老白干 2 瓶: 20 元 狮子头: 25 元 红烧鱼头: 15 元 蕃茄排骨汤: 35 元 砂锅鱿鱼: 12 元 饭后四人决定 AA 制,每人应该支付多少钱? 分析
25
知识点 — 算术运算符 #include int main(int args,char *argv[ ]) { int wine = 20; // 酒钱 int lionhead = 25;// 狮子头价钱 int braisedfish = 15;// 红烧鱼头价钱 int ribs = 35;// 排骨汤价钱 int squid = 12;// 红烧鱿鱼价钱 float price;// 每人应该支付的钱数 price=(lionhead+braisedfish+ribs+squid)/4.0; printf(" 师徒四人平均每人应支付金额 %f",price); }
26
知识点 — 数据类型转换 C 语法要求严格,每一种类型只能存储统一类型的数据 ,绝不允许乱放。 由于昨日贪杯,西行四人组一觉醒来已经是日上三竿,唐班长大吼一声: “ 不好,过流沙河的船要跑了! ” ,四人飞速穿上衣物,闪电奔向码头, 刚一出门,八戒同学就来了个大马趴,三人无暇理他,继续飞奔,终于 在最后一刻赶上了船,上船后突然惊觉八戒掉队了,回头看去,只见八 戒手中拎着两只开了口子的大皮鞋,身上挂着几个布条,裤子开着好大 一个缝赤脚飞奔而来,咋回事,赶个船都能赶的跟个乞丐似的?正纳闷 间,悟空同学开口了: “ 咦?今个衣服怎么变大了? ” ,唐班长向两人看 过去,只见八戒的一身行头完好无损的如斗篷一样穿在悟空的身上,那, 八戒身上穿的是。。。?
27
知识点 — 数据类型转换 #include int main(int argc,char *argv[]){ int cock,hen,chick; printf(" 本程序由戎永烈, 赖子健,李润伟,周创斌编写 \n"); for (cock=1;cock<20;cock++){ for(hen=1;hen<33;hen++){ chick=100-cock-hen; if(5*cock+3*hen+1/3*chick==100) printf(" 公鸡数 :%d 母鸡数 :%d 小鸡数 :%d\n",cock,hen,chick); }} }} return 0; }}
28
知识点 — 自动类型转换 默默进行的转换 #include Int main(int args, char *argv[ ]) { int wine = 20; // 酒钱 int lionhead = 25;// 狮子头价钱 int braisedfish = 15;// 红烧鱼头价钱 int ribs = 35;// 排骨汤价钱 int squid = 12;// 红烧鱿鱼价钱 float price;// 每人应该支付的钱数 price=(lionhead+braisedfish+ribs+squid)/4.0; printf(" 师徒四人平均每人应支付金额 %f",price); return 0; } int 类型的结果赋值 给 float 类型
29
知识点 — 自动类型转换 自动类型转换规则 在一个表达式中,如果某一个操作数为 double 类 型,则整个表达式提升为 double 类型。 满足自动类型转换的条件 1. 两种类型相互兼容,如均为数值型(整型和浮点型)。 2. 由较小的数据类型向较大的类型进行转换(对于不同的数据类型在内 存空间中所分配的空间大小是不一样的,这决定了每种数据类型的大小 不同, int 类型所分配的空间小于 double 类型,所以 int 类型的数据可以存 储到 double 类型中,反之则不可以)。 自动类型转换的条件如下:
30
知识点 — 强制类型转换 强扭的瓜也可以是甜的! 八戒好容易上了船,却衣着阑珊,眼瞅着自己的行头全在悟空同学的身 上,却慑于悟空同学闻名全校的暴力倾向而不敢开口,只好将目标转向 了沙僧同学,幸好沙僧同学还有备用的一套衣服,可惜,八戒同学仍然 大了一圈,穿不上啊! 唐班长灵机一动,有办法了,拿出一卷绷带,将八戒同学全身缠了个结 结实实,猛的看上去真的瘦了好多,嘿!还真能穿上了! 数据类型如何进行瘦身?
31
知识点 — 强制类型转换 #include int main(int args, char *argv[ ]){ double score = 87.5; int newScore = (int) score; printf(" 小新的考试成绩归整后为: %d",newScore); return 0; } 强制变型为 int 型 强制类型转换会丢失精度,使用时需注意。
32
课堂练习 西行四人组途径鹰愁涧,天色已晚,借宿于龙门客栈, 不曾想被老板小白龙借地势之利敲诈,强行收取住宿, 伙食各项费用 2311.53 元,唐班长只好支付,离开鹰愁 涧后大伙均摊,为防止找零麻烦,只收整头,每人应支 付唐班长多少钱? 变量存储总费用 2311.52 元 使用算术运算符计算平均值 将结果强制类型转换为整型 分析
33
总结 常用的数据类型有哪些? 输入函数和输出函数的使用? 常用的算术运算符有哪些? 数据类型转换有哪几种? 自动数据类型转换的规则和条件是什么?
34
为一卡通系统设计数据存储 一卡通可充值可为小数,因此需要 float 类型 一卡通可消费可为小数,因此需要 float 类型 一卡通需要一个余额,可为小数,因此需要 float 类型 为一卡通定义上述三个存储变量: float charge; float cost; float balance=0.0; 一卡通系统功能选择(整数,或字符): char choose;
35
C 语言程序设计 任务决策 任务实施 评估反馈 拓展提升 组织实施
Similar presentations