资源描述:
《程序设计基础-2》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、计算机软件技术基础第二讲:程序设计基础(2)林梦香北京航空航天大学2011年9月程序设计需要确定:(1)数据在计算机中如何表示?如何存储?(2)对数据实施哪些操作?如何控制?(3)数据如何输入到计算机?(4)计算结果(数据)如何输出和保存?算术逻寄存程序计辑单元器堆数器主存储器(ALU)(PC)存储器总线CPUI/O总线输入设备输出设备网络磁盘(鼠标、(显示器、键盘等)打印机等)I/O设备计算机通过I/O设备进行数据的输入输出计算机的外部设备输入设备:输入命令和数据;输出设备:显示程序的运行结果;磁盘设备:长期存放程序文件和数据文件;文件输入/输出设备和外部存储
2、设备的物理特征完全不同!C语言中把所有的I/O设备都看作“文件”,用同一批函数对它们进行输入/输出操作。输入设备-》输入设备文件输出设备-》输出设备文件外部存储设备-》程序文件、数据文件流C语言通过一个称为“流”的逻辑设备间接操作文件;流实际是一个FILE类型的变量,FILE类型是一个结构类型,定义在stdio.h中。程序需要与文件交换数据时:先在程序与文件之间建立一个流(用fopen函数);用标准输入/输出函数,通过流读/写文件;数据交换结束后,撤销流(用fclose函数)。文件操作-打开/关闭•文件的打开(建立流):FILE*fp;fp=fope
3、n(char*filename,char*mode);•文件的关闭(撤销流):intfclose(FILE*fp);文件操作-读/写函数•字符的输入输出函数intgetc(FILE*fp);intputc(intc,FILE*fp);•字符串的输入输出函数:charfgets(char*s,intn,FILE*fp);intfputs(char*s,FILE*fp);•格式化输入/输出函数:fscanf(FILE*fp,”输入格式”,输入项);fprintf(FILE*fp,”输出格式”,输出项);标准设备文件C程序运行时自动建立3个流:1、stdin,与键盘联
4、系;2、stdout,与显示屏幕联系;3、stderr,与显示屏幕联系。特点:这些流由系统自动将其打开、关闭,程序不需管。标准设备文件的读/写•字符输入输出函数:getchar(),putchar()•字符串的输入输出函数:gets(),puts()•格式化输入/输出函数:scanf(),printf()文件操作实例一要求:从键盘输入10个数字,将这10个数字及其平均值保存到磁盘文件data.txt中。#includeintmain(void){FILE*fp;intvar,i,sum=0;floataverage;fp=fopen(“dat
5、a.txt”,“w”);for(i=0;i<10;i++){printf(“inputnumber:&d”,i+1);scanf(“%d”,&var);sum=sum+var;fprintf(fp,“%d”,var);}average=(float)sum/10.0;fprintf(fp,“Theaverageis%6.2f”,average);fclose(fp);}文件操作实例二要求:从键盘输入一些字符,逐个把它们保存到磁盘文件中,输入结束标志为#。#includeintmain(void){FILE*fp;charch,filename
6、[10];scanf("%s",filename);if((fp=fopen(filename,"w"))==NULL){printf("cannotopenfile");exit(0);}ch=getchar();ch=getchar();while(ch!='#'){fputc(ch,fp);ch=getchar();}fclose(fp);}程序设计要点(二):化复杂为简单例:设计一程序,要求能够查询学生的成绩、计算平均成绩和总学分、按照总学分排序。分析:程序的基本功能:1、成绩的输入(存入文件);2、成绩的查询(按学号);3、计算平均成绩和总学分;4、
7、按总学分排序;5、查询结果的输出。模块化程序设计•模块化程序设计思想:逐步分解、分而治之•优点:每个模块可以独立设计和实现,利于提高效率、隔离错误和维护程序组织•C语言中用函数组织程序,一个C程序由一个主函数和若干个函数构成。•主函数(main)是程序开始执行的入口;•C函数是一个独立完成某个功能的语句块;•函数与函数之间通过输入参数和返回值(输出)来联系;函数的定义函数定义的格式为:返回类型函数名(参数表){函数体;}用户自定义函数,则必须在源代码中说明函数原型,函数原型可以只包含参数的类型;标准库函数的函数原型都在头文件中提供,程序可以用#include
8、指令包含这