c语言程序设计电子版本
- 格式:doc
- 大小:36.00 KB
- 文档页数:15
c语言程序设计pdf《C语言程序设计》是一本介绍和教授C语言的编程技能和知识的教材,具有广泛的应用和普及性。
本书可以帮助读者从零开始学习C语言,并逐渐提高编程能力。
以下是《C语言程序设计》这本书的内容概述。
第一章:简介本章为读者介绍了C语言的历史、特点和发展趋势,以及如何搭建和配置C语言的开发环境。
第二章:基本语法本章详细介绍了C语言的基本语法,包括变量声明、数据类型、运算符、条件语句、循环语句等。
第三章:数组和字符串本章详细介绍了C语言中的数组和字符串的相关知识,包括数组的声明、初始化、访问和操作,以及字符串的声明、初始化和处理等。
第四章:函数本章介绍了C语言中的函数的概念和使用方法,包括函数的声明、定义、调用和参数传递等。
第五章:指针本章详细介绍了C语言中的指针的使用方法,包括指针变量的声明、初始化、访问和操作等。
第六章:结构体和共用体本章介绍了C语言中的结构体和共用体的概念和应用,包括结构体和共用体的声明、定义、访问和操作等。
第七章:文件处理本章介绍了C语言中的文件处理的方法和技巧,包括文件的打开、读取、写入和关闭等。
第八章:动态内存分配本章介绍了C语言中的动态内存分配的方法和技巧,包括动态内存的分配、使用和释放等。
第九章:常用库函数本章介绍了C语言中常用的库函数,包括字符串处理函数、数学函数、时间日期函数等。
第十章:综合练习本章提供了一些综合的编程练习题,供读者巩固和应用所学的C语言知识。
《C语言程序设计》这本书是一本很好的C语言教材,对于初学者来说非常适合。
通过学习这本书,读者可以初步掌握C 语言的编程技能,并能够实现一些简单的程序设计。
对于想要深入学习C语言的人来说,这本书也是一个很好的起点。
总之,无论是初学者还是进阶者,都可以从《C语言程序设计》这本书中获得很多有用的知识和技能。
c语言程序设计电子书C语言程序设计是一门基础且广泛应用的编程语言课程,它以其高效、灵活和强大的功能而著称。
C语言由丹尼斯·里奇(Dennis Ritchie)在20世纪70年代初期于贝尔实验室开发,至今仍是许多系统软件和应用软件的首选语言。
本电子书将从C语言的基本概念、语法结构、数据类型、控制结构、函数、数组、指针、结构体、文件操作等方面进行详细介绍。
第一章:C语言概述C语言是一种过程式编程语言,它支持结构化编程。
C语言的设计哲学是提供一种通用、高效、易于使用的语言,同时保持对硬件的控制。
C 语言广泛应用于操作系统、嵌入式系统、高性能计算等领域。
第二章:C语言环境和基本语法在开始编写C程序之前,需要配置C语言开发环境,如GCC编译器。
C 程序的基本结构包括预处理指令、函数、变量声明和语句。
程序从`main`函数开始执行。
第三章:数据类型和变量C语言提供了多种数据类型,包括整型、浮点型、字符型等。
变量是程序中存储数据的容器,需要先声明后使用。
C语言是静态类型语言,每种变量在使用前必须指定数据类型。
第四章:运算符和表达式C语言提供了丰富的运算符,包括算术运算符、关系运算符、逻辑运算符、位运算符等。
表达式是由变量、常量和运算符组成的组合,用于执行计算。
第五章:控制结构控制结构是程序流程控制的基本构件。
C语言提供了三种基本的控制结构:顺序结构、选择结构(if语句、switch语句)和循环结构(for 循环、while循环、do-while循环)。
第六章:函数函数是C语言中实现代码复用的重要手段。
函数允许将代码组织成独立的块,每个块可以执行特定的任务。
C语言支持函数的定义、声明、调用和递归。
第七章:数组数组是相同数据类型元素的集合。
C语言支持一维数组和多维数组。
数组在内存中是连续存储的,这使得数组操作高效但也需要小心越界问题。
第八章:指针指针是C语言的核心特性之一。
指针变量存储的是另一个变量的内存地址。
C语言程序设计论文C语言程序设计论文学校:天津电子信息职业技术学院系别:电子技术系专业:通信技术班级:通信S13-26学号:89757姓名:王磊C语言课程设计报告一、设计题目:计算器二、设计目标:进一步加深、巩固学生所学专业课程(《C语言》)的基本理论知识,理论联系实际,进一步培养学生综合分析问题和解决问题的能力。
掌握运用C语言独立地编写、调试应用程序和进行其它相关设计的技能,充分发挥广大同学的潜力,使他们通过本次课程设计而得到全面的锻炼。
三、设计内容:1.设计系统的功能框图、流程图;2.编写计算器的源程序代码;3.上机调试;4.答辩;5.书写实习报告。
四、课程设计所用设备:每人一台计算机。
五、课程设计系统组成及模块功能:(1)主函数模块(2)设置系统进入图形模块(3)初始化图形系统模块(4)计算器计算函数模块(5)窗口函数模块(6)设计鼠标图形函数模块(7)获取特殊键函数模块六、软件环境:Visual c++6.0七、课程设计要求:在计算机上操作,通过Visual c++6.0,设计出“计算器”程序。
八、应提交的材料:实习报告一份,内容包含“计算器”程序代码。
设计报告:程序代码:#include <dos.h>#include <math.h>#include <conio.h>#include <stdio.h>#include <stdlib.h>#include <stdarg.h>#include <graphics.h>#include <string.h>#include <ctype.h>#define UP 0x48#define DOWN 0x50#define LEFT 0x4b#define RIGHT 0x4d#define ENTER 0x0dvoid *rar;struct palettetype palette;int GraphDriver;int GraphMode;int ErrorCode;int MaxColors;int MaxX, MaxY;double AspectRatio;void drawboder(void);void initialize(void);void computer(void);void changetextstyle(int font, int direction, int charsize);void mwindow(char *header);int specialkey(void) ;int arrow();int main(){initialize();computer();closegraph();return(0);}void initialize(void){int xasp, yasp;GraphDriver = DETECT;initgraph( &GraphDriver, &GraphMode, "" ); ErrorCode = graphresult();if( ErrorCode != grOk ){printf("Graphics System Error: %s\n",grapherrormsg( ErrorCode ) );exit( 1 );}getpalette( &palette );MaxColors = getmaxcolor() + 1;MaxX = getmaxx();MaxY = getmaxy();getaspectratio( &xasp, &yasp );AspectRatio = (double)xasp/(double)yasp; }void computer(void){struct viewporttype vp;int color, height, width;int x, y,x0,y0, i, j,v,m,n,act,flag=1;float num1=0,num2=0,result;char cnum[5],str2[20]={""},c,temp[20]={""}; char str1[]="1230.456+-789*/Qc=^%";mwindow( "Calculator" );color = 7;getviewsettings( &vp );width=(vp.right+1)/10;height=(vp.bottom-10)/10 ;x = width /2;y = height/2;setfillstyle(SOLID_FILL, color+3);bar( x+width*2, y, x+7*width, y+height );setcolor( color+3 );rectangle( x+width*2, y, x+7*width, y+height );setcolor(RED);outtextxy(x+3*width,y+height/2,"0.");x =2*width-width/2;y =2*height+height/2;for( j=0 ; j<4 ; ++j ){for( i=0 ; i<5 ; ++i ){setfillstyle(SOLID_FILL, color);setcolor(RED);bar( x, y, x+width, y+height );rectangle( x, y, x+width, y+height );sprintf(str2,"%c",str1[j*5+i]);outtextxy( x+(width/2), y+height/2, str2); x =x+width+ (width / 2) ;}y +=(height/2)*3;x =2*width-width/2;}x0=2*width;y0=3*height;x=x0;y=y0;gotoxy(x,y);arrow();putimage(x,y,rar,XOR_PUT);m=0;n=0;strcpy(str2,"");while((v=specialkey())!=45){while((v=specialkey())!=ENTER){putimage(x,y,rar,XOR_PUT);if(v==RIGHT)if(x>=x0+6*width){x=x0;m=0;}else{x=x+width+width/2;m++;}if(v==LEFT)if(x<=x0){x=x0+6*width;m=4;}else{x=x-width-width/2;m--;}if(v==UP)if(y<=y0){y=y0+4*height+height/2;n=3;}else{y=y-height-height/2;n--;}if(v==DOWN)if(y>=7*height){y=y0;n=0;}else{y=y+height+height/2;n++;}putimage(x,y,rar,XOR_PUT);}c=str1[n*5+m];if(isdigit(c)||c=='.'){if(flag==-1){strcpy(str2,"-");flag=1;}sprintf(temp,"%c",c);strcat(str2,temp);setfillstyle(SOLID_FILL,color+3);bar(2*width+width/2,height/2,15*width/2,3*height/2); outtextxy(5*width,height,str2);}if(c=='+'){num1=atof(str2);strcpy(str2,"");act=1;setfillstyle(SOLID_FILL,color+3);bar(2*width+width/2,height/2,15*width/2,3*height/2);outtextxy(5*width,height,"0.");{if(c=='-'){if(strcmp(str2,"")==0)flag=-1;else{num1=atof(str2);strcpy(str2,"");act=2;setfillstyle(SOLID_FILL,color+3);bar(2*width+width/2,height/2,15*width/2,3*height/2);outtextxy(5*width,height,"0.");}}if(c=='*'){num1=atof(str2);strcpy(str2,"");act=3;setfillstyle(SOLID_FILL,color+3);bar(2*width+width/2,height/2,15*width/2,3*height/2);outtextxy(5*width,height,"0.");}if(c=='/'){num1=atof(str2);strcpy(str2,"");act=4;setfillstyle(SOLID_FILL,color+3);bar(2*width+width/2,height/2,15*width/2,3*height/2); outtextxy(5*width,height,"0.");}if(c=='^'){num1=atof(str2);strcpy(str2,"");act=5;setfillstyle(SOLID_FILL,color+3);bar(2*width+width/2,height/2,15*width/2,3*height/2); outtextxy(5*width,height,"0.");}if(c=='%'){num1=atof(str2);strcpy(str2,"");act=6;setfillstyle(SOLID_FILL,color+3);bar(2*width+width/2,height/2,15*width/2,3*height/2); outtextxy(5*width,height,"0.");}if(c=='='){num2=atof(str2);switch(act){case 1:result=num1+num2;break;case 2:result=num1-num2;break;case 3:result=num1*num2;break;case 4:result=num1/num2;break;case 5:result=pow(num1,num2);break;case 6:result=fmod(num1,num2);break;}setfillstyle(SOLID_FILL,color+3);bar(2*width+width/2,height/2,15*width/2,3*height/2); sprintf(temp,"%f",result);outtextxy(5*width,height,temp);}if(c=='c'){num1=0;num2=0;flag=1;strcpy(str2,"");setfillstyle(SOLID_FILL,color+3);bar(2*width+width/2,height/2,15*width/2,3*height/2); outtextxy(5*width,height,"0.");}if(c=='Q')exit(0);}putimage(x,y,rar,XOR_PUT);return;}void mwindow( char *header ){int height;cleardevice();setcolor( MaxColors - 1 );setviewport( 20, 20, MaxX/2, MaxY/2, 1 );height = textheight( "H" );settextstyle( DEFAULT_FONT, HORIZ_DIR, 1 );settextjustify( CENTER_TEXT, TOP_TEXT );outtextxy( MaxX/4, 2, header );setviewport( 20,20+height+4, MaxX/2+4, MaxY/2+20, 1 ); drawboder();}void drawboder(void){struct viewporttype vp;setcolor( MaxColors - 1 );setlinestyle( SOLID_LINE, 0, NORM_WIDTH );getviewsettings( &vp );rectangle( 0, 0, vp.right-vp.left, vp.bottom-vp.top );}int arrow(){int size;int raw[]={4,4,4,8,6,8,14,16,16,16,8,6,8,4,4,4};setfillstyle(SOLID_FILL,2);fillpoly(8,raw);size=imagesize(4,4,16,16);rar=malloc(size);getimage(4,4,16,16,rar);putimage(4,4,rar,XOR_PUT);return 0;}/int specialkey(void){int key;while(bioskey(1)==0);key=bioskey(0);key=key&0xff? key&0xff:key>>8;return(key);}总结:1)实际操作过程中遇到的问题及解决方法:1.忘记加分号。