Presentation is loading. Please wait.

Presentation is loading. Please wait.

项目一 一卡通程序数据存储设计 1-3 数据存储设计. 项目  为一卡通程序的设计数据存储 一卡通系统中需要存储的数据有:  消费金额 (小数形式,输出精度 2 位小数)  卡内余额(小数形式,输出精度 2 位小数)  充值金额(小数形式,输出精度 2 位小数)  菜单选项(整数形式,允许范围.

Similar presentations


Presentation on theme: "项目一 一卡通程序数据存储设计 1-3 数据存储设计. 项目  为一卡通程序的设计数据存储 一卡通系统中需要存储的数据有:  消费金额 (小数形式,输出精度 2 位小数)  卡内余额(小数形式,输出精度 2 位小数)  充值金额(小数形式,输出精度 2 位小数)  菜单选项(整数形式,允许范围."— Presentation transcript:

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 语言程序设计 任务决策 任务实施 评估反馈 拓展提升 组织实施


Download ppt "项目一 一卡通程序数据存储设计 1-3 数据存储设计. 项目  为一卡通程序的设计数据存储 一卡通系统中需要存储的数据有:  消费金额 (小数形式,输出精度 2 位小数)  卡内余额(小数形式,输出精度 2 位小数)  充值金额(小数形式,输出精度 2 位小数)  菜单选项(整数形式,允许范围."

Similar presentations


Ads by Google