热门搜索: 高考 试卷 中考

《C语言程序设计》说课稿

发布时间:2021-07-05   来源:总结报告    点击:   
字号:

《C语言程序设计》说课稿范文17篇

《C语言程序设计》说课稿范文17篇

《C语言程序设计》说课稿范文(1)

吉林工程技术师范学院

《C语言程序》课程设计报告书

设计题目: 贪吃蛇

专业: 计算机科学与技术 班级: 1042

学生姓名: 王薇 学号: 06

指导教师: 郭天娇

2011年7月

信息工程学院

目录

摘 要………………………………………………………………………….2

第一章 绪 论 3

第二章 问题定义 4

第三章 总体设计与详细设计 5

1.程序的功能介绍

2.程序整体设计说明

3.设计思路

4.数据结构设计及用法说明

5.各模块的功能及程序说明

6.程序结果

第四章 编码实现 13

第五章 调试与测试 17

第六章 结论 20

附 录 22

附录一:源代码 ...22

附录二:参考文献 29

摘 要


随着社会的发展,人们生活的步调日益加快,越来越多的人加入了全球化的世界.人们不在拘泥于一小块天地.加班,出差成了现代人不可避免的公务.而此时一款可以随时随地娱乐的游戏成了必需品.在手机和电脑成为人们日用品的社会,一款能在其上能便捷运行的游戏成为买家的参考点.
现在我们所要介绍的这一款游戏----贪吃蛇,就是满足以上要求而设计出来的,希望能给玩家带来娱乐.贪吃蛇这一游戏简单易行,操作方便,娱乐性较强,吸引了不少人.这一款游戏紧紧地抓住了人们的心理,虽然简单,却起乐无穷,在人们不断追求更多的欲望下,该游戏给人们带来了追逐的快感,以及成功后的满足感,对于一直处于高压下的现代人是很好的放松工具.

关键词: 循环,分支,子函数的调用,链表,接口,子函数调用

第一章 绪论

贪吃蛇游戏是目前比较流行的游戏之一,很多操作系统或者流行软件都会带有这种游戏。它既能锻炼思维的严密性,又有很多乐趣。我个人也比较喜欢玩这个游戏,因此,我就借这个机会将这个贪吃蛇游戏用C语言实现了出来,当然,我也借鉴了前人的一些技巧经验。由于时间仓促和本人水平有限,此游戏的制作显得有些粗糙,希望老师能够谅解,我以后将会再接再厉。

贪吃蛇游戏是一款很有趣味的游戏,其开发过程有一定的技巧和方法,其中涉及到二维数组、键盘操作以及图形化函数等方面的知识。本游戏的开发者需要基本掌握显示器中断寄存器的设置。二维数组及结构体的定义、键盘上键值的获取、图形方式下光标的显示各定位,以及部分图形函数的使用。

第二章 问题定义

贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。

第三章 总体设计与详细设计

1程序功能介绍

贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。

2程序整体设计说明

一个游戏要有开始部分,运行部分,结束部分(实际上开始部分与运行部分是一体的)。

3设计思路

这个程序的关键是表示蛇的图形以及蛇的移动。用一个小矩形表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用两节表示。移动时必须从蛇头开始,所以蛇不能向相反方向移动,也就是蛇尾不能改作蛇头。如果不按任何键,蛇自行在当前方向上前移,当游戏者按了有效的方向键后,蛇头朝着指定的方向移动,一步移动一节身体,所以当按了有效的方向键后,先确定蛇头的位置,然后蛇身体随着蛇头移动,图形的实现是从蛇头的新位置开始画出蛇,这时由于没有庆平的原因,原来蛇的位置和新蛇的位置差一个单位,所以看起来社会多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现和消失也是画矩形块和覆盖矩形块

4数据结构设计及用法说明

开始部分:

游戏是运行在图形模式下的,所以第一步一定是初始化图形模式,接着要有开始的界面,就像书有封面一样,我设置了一个游戏的标题画面,除了游戏标题画面我还设置了一个欢迎画面。标题画面以后,还要为游戏的运行部分作初始化,包括绘制游戏运行时的背景,对游戏某些重 要变量的初始化。

运行部分:

作为游戏的核心部分,这里包括的函数比较多,也就是模块比较多,首先让我模拟一下贪吃蛇的游戏模式:某个世界上突然出现一条蛇,它很短,它的运动神经异常,它没法停止自己的多动症在它的世界里就只有食物,它很饿,也很贪吃;同样在不明原因的情况下,食物从天而降,可惜的是没有落到嘴边;饥饿的主人公,不管它有没有毒,也不问食物的来历,径直向食物爬去;它吃到食物啦,它超出想象的同化能力让食物很快的成为自己身体的一部分,它的身子变长啦。当它吃到第一颗食物时,上帝有给它第二颗,于是它吃了第二颗,于是又变长了,于是又有第三颗……它的身子是一直的加长,它不管自己过长身体的麻烦——转身不便,继续吃下去,现在它是直接把巴张大,好让食物有个绿色通道。但是在某天的下午,它咬到了自己,它才想起自己是一条毒蛇,于是晕死过去(不是毒死);又或者它往食物冲锋的时候,它失去控制,撞到了墙上。

第一轮循环:第一步,出现食物;第二步,蛇不停运动;第三步,检查蛇是撞到自己或墙壁;由第四步起游戏有两条支线(A、B):

A :第四步,蛇没有碰到自己或墙壁,蛇继续前进,绘制蛇的动作;第五步,判断蛇是否吃到食物,如果蛇吃到食物,身子变长,原来的食物消失;第六步,让玩家输入控制指令,让蛇在下一轮循环的第二步改变运动方向;第七步,第二轮循环的第一步,重复第一轮的步骤;

B:第四步,蛇碰到自己或墙壁,终止游戏。

结束部分:

游戏结束时,显示“GAME OVER”,已经是约定俗成的规律了,我的游戏也不例外。除了游戏结束画面外,我还设置了一个游戏退出画面,“善始善终”嘛。

有了上述的大致划分,我把整个程序划分成(13+2)个模块(其实就是函数)程序结构(流程图)

依据所需要处理的任务要求,规划输入数据和输出结果,决定存放数据的数据结构。

C语言中数据结构集中体现在数据类型上,因此在进行C语言程序设计时,应统筹规划程序中所使用的变量,数组,指针等,以及它们的类型等。这点是很重要的,如果在此期间选择不合适的变量或者数组,将来修改就十分困难。

现在分析一下贪吃蛇游戏中的元素,继而得出与它们对应的在程序中的描述:

蛇:

基本描述:长度,颜色,位置。

对应数据与数据类型:长度—虽然可以用坐标表示,但是这样的话,运算量将很大,所以换算成较大的单位—节数,以固定长度的每节描述;坐标--整型;颜色--整型; 位置--X,Y坐标。

增加的描述:蛇运动的方向,蛇的生命。

对应数据与数据类型:这些描述是为了与程序的按键的输入部分与判断游戏结束部分相联系而设的。方向只有四个方向:上下左右。可以设置与之对应的四个整型数:3、4、2、1。生命就只有两种情况:死或生,对应0或1。

食物:

基本描述:颜色,位置。

对应数据与数据类型:由于颜色设成固定的,所以不再讨论。位置—X、Y坐标。

增加的描述:食物的存在。

对应数据与数据类型:这是为了避免重复出现食物而设置的,与绘制食物的函数有联系。只有两个值:0或1(没有食物或有食物)

其他的元素:墙,由于它在显示上是作为背景而存在的,所以并没有什么说明实际的墙壁就是四条直线组成的边框,由坐标描述。

还需要的变量:键盘键入的键值(作为全局变量,整型);经常要使用的循环变量;自定义的填充图案;说明文字的字符数组;游戏的记分;游戏的速度(蛇的速度)。

蛇的不停运动的关键算法的流程图

5各模块的功能及程序说明

主要模块的实现思路和算法的流程图说明:

关键所在——蛇不停移动的Snakemove():

蛇的不停移动,就是蛇的下一节取代前一节的位置,在计算机中就是蛇下一节的位置坐标变成前一节的位置坐标。在上文中,已定义蛇的位置坐标为数组类型,一组坐标对应一节的位置,假设有i+1节,由0到i节,第i节的坐标取第i-1节的坐标,第i-1节的坐标取第i-2节的坐标……直到第1节取第0节的坐标。而第0节的坐标,即蛇头的坐标要往某个方向变化,变化量为蛇每节的长度。蛇的这种坐标轮换需要循环语句使其继续下去。

6程序结果

运行程序得到如下初始界面图:

程序结果图

用一个小矩形表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用两节表示:

程序结果图

蛇没有碰到自己或墙壁,蛇继续前进:

程序结果图

游戏结束时,显示“GAME OVER”

第四章 编码实现

1. 主函数main()

Main()函数主要实现了对整个程序的运行控制,以及相关功能模块的调用。


void Init(void);/*图形驱动*/

void Close(void);/*图形结束*/

void DrawK(void);/*开始画面*/

void GameOver(void);/*结束游戏*/

void GamePlay(void);/*玩游戏具体过程*/

void PrScore(void);/*输出成绩*/

void main(void)

{

Init();/*图形驱动*/

DrawK();/*开始画面*/

GamePlay();/*玩游戏具体过程*/

Close();/*图形结束*/

}


2. 图形驱动init()

Init()主要功能是初始化屏幕为图形模式函数。


void Init(void)

{

int gd=DETECT,gm;

initgraph(&gd,&gm,"c:\\tc");

cleardevice();

}


3. 开始画面,左上角坐标为(50,40),右下角坐标为(610,460)的围墙


void DrawK(void)

{

/*setbkcolor(LIGHTGREEN);*/

setcolor(11);

setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*设置线型*/

for(i=50;i

《C语言程序设计》说课稿范文(2)

中南大学

C语言程序设计实践报告

题 目 学生信息管理系统

学生姓名

指导教师

学 院

专业班级

完成时间

目录

一、系统功能介绍 3

二、系统功能模块 4

2.1系统功能结构图 4

2.2模块功能介绍 4

三、数据结构设计 5

四、主要模块算法说明 6

六、问题,解决方法及注意事项 12

七、课程设计总结 13

八、部分源程序代码 14


一、系统功能介绍

1.录入学生信息:录入学生的基本信息,如年龄,性别学号,班级;以及该学生选修课程的基本信息,如课程编号,学分。

2.数据查询:按照姓名或者按照学号查询,查询学生基本信息,或者学生的成绩信息。

3.输出统计信息:按照平均成绩由高到低的顺序,输出学生名单;输出不及格的学生不及格的课程以及该门课程的平时、考试,综合成绩

4.删除信息:删除指定的学好的学生的所有信息。

5.修改数据:修改指定学号的学生信息,修改其基本信息或者课程信息。

6.插入数据:插入一个学生的完整信息到已有的学生信息库中。

7.退出系统:退出系统,关闭程序。


二、系统功能模块2.1系统功能结构图2.2模块功能介绍

 录入数据模块:录入学生的基本信息,如年龄,性别学号,班级;以及该学生选修课程的基本信息,如课程编号,学分。同时可以自动计算每门课程的综合成绩,每个学生的平均成绩。

 查询数据模块:输入一个学号,或者输入一个姓名,输出该学号的基本信息以及选修课程的各种信息。

 统计信息模块:输出学生平均成绩排名表,输出不及格学生列表以及不及格学生的不及格课程的考试、平时及综合成绩。

 删除模块:根据输入的学号,将该学号的所有信息从学生信息库中删除。

 修改模块:修改输入学号的学生的制定信息,其他信息不修改。

 插入模块:插入一个学生的信息到学生信息库中。

 排序模块:对所有学生爱平均成绩排序。


三、数据结构设计

1. 变量类型

由于某个学生的各种信息是一个整体,不不能分别定义再引用,而且每个学生的选修课程含有编号、学分等信息,也属于一个整体,因此我采用了学生信息结构体中嵌套课程信息结构体的方式定义数据。

struct course//定义课程结构体

{

int num;/*课程编号,定义为整型数据*/

float credit; /*课程学分,定义为浮点型数据*/

float usual;//以下为成绩信息,均为浮点型数据

float exam;

float final;

};

struct student//定义学生结构体

{

int ID; /*学生编号,整形数据*/

char name[20];/*学生姓名,字符数组,大小20*/

int cla;/*班级信息,整型数据*/

char sex[2];/*性别信息,字符数组,大小2*/

int age;/*年龄,整型数据*/

struct course clanguage;//以下为三个struct course类型的课程

struct course math;

struct course pe;

float average;

}stu[30];/*定义学生结构体的大小*/

2.关于变量的作用域问题。

由于各个函数均要使用结构体数组中的所有成员或者部分成员,若采用参数传递方式对结构体成员进行调用,不简洁而且返回值容易出错,所以结构体变量及学生人数都定义为全局变量,便于使用。


四、主要模块算法说明

1. 主函数 void main()

先调用主界面函数,打印出主界面,在调用菜单函数。

2. 菜单函数 void menu()

先打印出各个功能以及对应的数字选项,然后利用scanf语句输入选项,利用switch语句的多选择性,设置不同的case,进入相应的分功能函数。

3. 输入数据函数 void enter()

函数开始利用scanf语句确定输入的人数p,接着使用循环控制语句,分别录入学生的所有基本信息。对于学生课程信息,由于课程编号以及学分固定,因此采用直接赋值方式在循环体中初始化;每个学生的每个课程的综合成绩、每个学生的平均成绩通过在循环体中调用calculate(int i)函数实现。最后调用sort函数,对所有学生按平均成绩排序。

4. 查询信息函数 void inquire ()

此模块包含两个小的模块,一为inquire_ID()函数模块,一为inquire_name()函数模块。通过if语句,根据输入的数字进入不同查询函数。

查询过程的具体实现:先输入一个学号或者姓名,是这一个变量flag,初值为0。如果找到了该学号,flag的值变为1,同时将此时的i值赋给变量k,起到标记变量的作用。接着判断flag的值,if(flag)输出查找学生的信息,否则通过scanf语句输入选项,执行返回主菜单或者重新输入两个语句之一。

5. 信息统计函数 void census_output()

通过输入选项1、2,进入平均成绩查询或者不及格学生名单查询。

输出平均成绩:利用循环语句,依次从高到低输出各个学生的信息。

输出不及格学生名单:利用循环语句,在循环语句中判断每个学生每门课程的综合成绩是否小于60,小于60,则输出学生该门课程的平时、考试、综合成绩。并且还设置了flag变量,在循环外赋值为0,开始循环以后,每找到一门不及格成绩,flag++,循环结束以后,判断flag的值,如果不为零,不运行任何指令,否则输出“无成绩不及格学生”的提示信息。

6. 删除信息函数 void dele()

输入一个学号,然后利用循环语句,找到删除位置,与查询类似,设置flag变量,初始值为0,找到学号后,flag的值变为1,利用变量k=i标记该位置。紧接着,判断flag的值,if(flag),利用循环语句for(i=k;i

《C语言程序设计》说课稿范文(3)

1.

高级语言(C)课程设计

2012 年 7 月 4日·北京

一、 任务书*************************************2

二、 小组成员情况*******************************2

三、 总体设计***********************************2

四、 模块划分及功能*****************************3

五、 算法说明***********************************4

六、 框架图*************************************6

七、 流程图*************************************8

八、 源程序清单*********************************12

九、 程序测试***********************************26

一十、 结论、体会及建议***************************32

一十一、 附:参考文献资料************************33

一、任务书

题目6:小型通讯录设计

功能:实现简单的通讯录信息管理,基本信息包括编号、姓名、手机、邮编、地址、关系、性别、生日、QQ、e-mail.

基本要求:

1.设计简单的菜单,能够进行系统功能选择。

2. 实现信息的录入功能。

3. 在已有信息的基础上添加新的记录。

4. 删除指定编号的记录。

5. 复制指定编号的记录

6. 实现信息的浏览功能

7. 按编号查询功能

8. 按手机号排序功能

二.小组成员情况

组长:李海霞 学号:5120110752 负责:文件导出、删除、排序、复制、输出

组员:孙琳 学号:5120110723 负责:主菜单、添加、查询、保存退出

另外:主函数,结构体定义,函数声明,文件及实验报告,虽有分工,但是大多数内容是有两人讨论后共同完成的。期间各自编写函数的过程中遇到的问题均由两人共同商讨,以及询问老师后,一起解决的。

三、总体设计

利用struct record定义数据结构,用void声明函数,用开关语句switch, case分开事件进行程序,实现系统功能选择,利用if,while语句判断函数,for语句实现循环,利用printf和scanf进行输出与输入,用getch()输入字符串,最终实现通讯录功能。

通讯录中的记录项用结构体record表示,包含10个属性:id、name、phone 、address、postcode、e-mail、relation、QQ、sex、birthday分别代表用户的编号、姓名、电话、地址、邮编、e_mail、关系、QQ 、性别、生日。

1、结构体数组:

struct record //定义一个结构体数组

{

char id[10]; //编号

char name[20];//姓名

char phone[20];//电话

char adress[40]; //地址

char postcode[10]; //邮编

char e_mail[30]; //e_mail

char relation[20];//关系

char QQ[20];//QQ

char sex[10];//性别

char birthday[20];//生日

}student[500];

2、包括的函数:

void mainmenu();//主菜单

void readfromfile();//读取文件

void newrecord();//新添纪录

void showall();//输出记录

void searchmenu();//查询菜单

void searchbyid();//按编号查询

void searchbyname();//按姓名查询

void searchbyphone();//按电话查询

void deletemenu();//删除菜单

void deleteall();//删除所有

void deleteone();//删除单个

void deletebyid();//按编号删除

void deletebyname();//按姓名删除

void listmenu();//排序菜单

void listbyid();//按编号排序

void listbyname();//按姓名排序

void copy();//复制菜单

void writetofile();//保存退出

四、模块划分及功能

主模块:main()//主函数

其他模块:

模块一:void mainmenu(); //主菜单

模块二:void readfromfile(); //读取文件

模块三:void newrecord(); //新添纪录

模块四:void showall(); //输出记录

模块五:void searchmenu(); //查询菜单

模块六:void searchbyid(); //按编号查询

模块七:void searchbyname(); //按姓名查询

模块八:void searchbyphone(); //按电话查询

模块九:void deletemenu(); //删除菜单

模块十:void deleteall(); //删除所有

模块十一:void deleteone(); //删除单个

模块十二:void deletebyid(); //按编号删除

模块十三:void deletebyname(); //按姓名删除

模块十四:void listmenu(); //排序菜单

模块十五:void listbyid(); //按编号排序

模块十六:void listbyname(); //按姓名排序

模块十七:void copy(); //复制菜单

模块十八:void writetofile(); //保存退出

五、算法说明:

1.通讯录中的记录项用结构体record表示,包含10个属性。

2.主菜单:利用switch语句进行选择所需功能;输入“1”会进入“新添记录”的界面;输入“2”进入“输出记录”的界面;输入“3”会进入“查询菜单”的界面;输入“4”进入“删除记录”的界面;输入“5”进入“记录排序”的界面;输入“7”进入“保存退出”的界面;输入“8”进入“不保存退出”的界面。

3.添加记录:利用printf()函数和scanf() 函数实现按要求输入信息,再利用if()语句实现是否继续添加记录。

4.输出记录:利用for循环和if语句实现全部输出;

5.查询菜单:利用switch选择查询方式。在查询菜单中输入“1”进入“按编号查询”界面;输入“2”进入“按姓名查询”界面;输入“3”进入“按电话查询”

界面;输入“4”进入“主菜单”界面。

6.按编号查询:利用for循环从第一条记录到最后一条记录进行查找,再利用if语句判断要查找的记录和待比较的编号是否相等,如找到相同的记录,就输出此人的全部信息,如果没有找到就显示“没有此人的信息”。

7.按姓名查询:利用for循环从第一条记录到最后一条记录进行查找,再利用if语句判断要查找的记录和待比较的姓名是否相等,如找到相同的记录,就输出此人的全部信息,再内嵌一个if语句进行查找相同名字的人的信息,再内嵌一个if语句继续查找,若不继续查找就输出“没有相同姓名的学生纪录按任意键返回主菜单”,如果一开始没有找到就显示“没有此人的信息”。

8.按电话号查询:利用for循环从第一条记录到最后一条记录进行查找,再利用if语句判断要查找的记录和待比较的电话号码是否相等,如找到相同的记录,就输出此人的全部信息,如果没有找到就显示“没有此人的信”。

9.删除菜单:利用switch语句进行选择所需功能;输入“1”会进入“删除所有”的界面;输入“2”进入“删除单个”的界面;输入“3”会进入“返回主菜单”的界面。

10.删除所有:利用if 语句进行是否全部删除。

11.删除单个:利用switch语句选择删除方式,输入“1”进入“按电话号码删除”

界面;输入“2”进入“按姓名删除”界面。

11.按电话号码删除:利用if语句进行判断是否有记录,再利用for循环进行查找信息,如果找到,就显示所有要删除的信息,再利用if语句进行是否删除,内嵌for循环,把记录前移,内嵌if 语句实现是否继续删除。

12.按姓名删除:利用if语句进行判断是否有记录,再利用for循环进行查找信息,如果找到,就显示所有要删除的信息,再利用if语句进行是否删除,内嵌for循环,把记录前移,内嵌if 语句实现是否删除相同姓名的同学信息

13.利用switch语句实现排序选择,输入“1”会进入“按电话排序的界面;输入“2”进入“按姓名排序”的界面;输入“3”会进入“返回主菜单”的界面。

14.按电话号码排序:利用for循环和if语句以及do….while实现升序,再利用if语句实现是否显示排序后的信息,调用显示函数。

15.按姓名排序排序:利用for循环和if语句以及do….while实现升序,再利用if语句实现是否显示排序后的信息,调用显示函数。

六、框架图:

七.流程图:

八、源程序清单

#include

#include

#include //控制字符串

#include //控制台输入输出

struct record //定义一个结构体数组

{

char id[10]; //编号

char name[20];//姓名

char phone[20];//电话

char adress[40]; //地址

char postcode[10]; //邮编

char e_mail[30]; //e_mail

char relation[20];//关系

char QQ[20];//QQ

char sex[10];//性别

char birthday[20];//生日

}student[500];

int num=0;//外部变量num为文件中的纪录数

FILE *p; //定义一个指向文件的指针变量p

void mainmenu();//主菜单

void readfromfile();//读取文件

void newrecord();//新添纪录

void showall();//输出记录

void searchmenu();//查询菜单

void searchbyid();//按编号查询

void searchbyname();//按姓名查询

void searchbyphone();//按电话查询

void deletemenu();//删除菜单

void deleteall();//删除所有

void deleteone();//删除单个

void deletebyphone();//按电话号码删除

void deletebyname();//按姓名删除

void listmenu();//排序菜单

void listbyphone();//按电话号码排序

void listbyname();//按姓名排序

void copy();//复制菜单

void writetofile();//保存退出

void main()

{

readfromfile();

while (1)

{

mainmenu();

}

}

void readfromfile()//从文件导出,判断是否有通讯录

{

if((p=fopen("student.txt","rb"))==NULL) //将fopen函数的返回值赋给指针变量P,打开输入文件student.txt

{

printf("\n\t\t通讯录文件不存在");

if ((p=fopen("student.txt","wb"))==NULL) //打开输出文件student.txt

{

printf("\n\t\t建立失败");

exit(0); //终止正在执行的程序

}

else

{

printf("\n\t\t通讯录文件已建立");

printf("\n\t\t按任意键进入主菜单");

getch();

return;

}

exit(0);

}

fseek(p,0,2); //文件位置指针移动到文件末尾,fseek(文件类型指针,位移量,起始点)

if (ftell(p)>0) //ftell函数的目的是得到当前位置,用相对于文件开头的位移量来表示,文件不为空

{

rewind(p); //文件位置指针移动到文件开始位置,此函数没有返回值

for (num=0;!feof(p) && fread(&student[num],sizeof(struct record),1,p);num++);

/*fread(buffer,size,count,pt)(地址,读写的字节数,读写多少数据项,FILE类型指针),每次从P指向的文件中读入结构体数组的一个元素;

feof检查文件是否结束,遇见文件结束符,返回非零值*/

printf("\n\t\t文件导入成功");

printf("\n\t\t按任意键返回主菜单");

getch();

return;

}

printf("\n\t\t文件导入成功");

printf("\n\t\t通讯录文件中无任何纪录");

printf("\n\t\t按任意键返回主菜单");

getch();

return;

}

void mainmenu()//主菜单

{

char choice;

system("cls");//清屏

printf("\n\t\t******************** 主菜单 ********************");

printf("\n\t\t*********** 1-新添纪录 2-输出记录 **************");

printf("\n\t\t*********** 3-查询菜单 4-删除菜单 **************");

printf("\n\t\t*********** 5-记录排序 6-文件复制 **************");

printf("\n\t\t*********** 7-保存退出 8-不保存退出*************");

printf("\n\t\t************************************************");

printf("\n\t\t请选择:");

choice=getch();

switch(choice)

{

case "1":newrecord();break;

case "2":showall();break;

case "3":searchmenu();break;

case "4":deletemenu();break;

case "5":listmenu();break;

case "6":copy();break;

case "7":writetofile();break;

case "8":exit(0); break;

default:mainmenu();

}

}

void newrecord()//添加记录

{

printf("\n\t\t**************** 请输入信息 ****************\n");

printf("\n\t\t输入编号:");

scanf("%s",&student[num].id);

printf("\n\t\t输入姓名:");

scanf("%s",&student[num].name);

printf("\n\t\t输入电话号码:");

scanf("%s",&student[num].phone);

printf("\n\t\t输入地址:");

scanf("%s",&student[num].adress);

printf("\n\t\t输入邮编:");

scanf("%s",&student[num].postcode);

printf("\n\t\t输入e-mail:");

scanf("%s",&student[num].e_mail);

printf("\n\t\t输入QQ:");

scanf("%s",&student[num].QQ);

printf("\n\t\t输入性别:");

scanf("%s",&student[num].sex);

printf("\n\t\t输入生日:");

scanf("%s",&student[num].birthday);

printf("\n\t\t输入关系:");

scanf("%s",&student[num].relation);

num++;

printf("\n\t\t是否继续添加?(Y/N):");

if (getch()=="y")

newrecord();

return;

}

void showall()//输出记录

{

int i;

system("cls");

if(num!=0)

{

printf("\n\t\t*************** 以下为通讯录所有信息************");

for (i=0;i

《C语言程序设计》说课稿范文(4)

《C语言程序设计》课程教学大纲

课程编码:1100205 学 分:6

总 学 时:56学时, 理论 28学时 ,实验28学时

适用专业:理工类 编写执笔:李艳丽

编写时间:2008年 8月 30 日 审 核 人:

一、编写依据和本课程性质、目的和任务

本大纲编写依据是“计算机专业教学计划”,本课程为专业基础必修课,《C语言程序设计》是一门重要的专业基础课程,基本上所有的计算机专业以及大部分理工科专业都开设该课程,通过本课程的学习,可以培养学生掌握用计算机处理问题的思维方法,为进一步学习和应用计算机语言打下坚实的基础。

二、课程教学的基本要求

在本课程的学习中,要求学生熟悉C语言程序设计的语法基础,掌握C语言的基本成分及其使用方法,具有一定的阅读程序和程序编写的能力。

三、课程教学主要内容及学时分配

(一)C语言概述(2学时)

1.1 C语言出现的历史背景

1.2 C语言的特点

1.3 简单的C程序设计

1.4 C程序的上机步骤

重点:C语言特点;简单的C程序

难点:C程序及其上机步骤

(二)数据类型、运算符与表达式(4学时)

2.1 C的数据类型

2.2 常量和变量

2.2.1 常量和符号常量

2.2.2 变量

2.3 整型数据

2.3.1整形常量的表示方法

2.3.2整形变量

2.3.3整形常量的类型

2.4 实型数据

2.4.1 实型常量的表示方法

2.4.2 实型变量

2.4.3 实型常量的类型

2.5 字符型数据

2.5.1 字符常量

2.5.2 字符变量

2.5.3 字符数据在内存中的存储形式及其使用方法

2.5.4 字符串常量

2.6 变量赋初值

2.7 各类数值型数据间的混合运算

2.8 算术运算符和算术表达式

2.8.1 C运算简介

2.8.2 算术运算符和算术表达式

2.9 赋值运算符和赋值表达式

2.10 逗号运算符和逗号表达式

重点:数据类型、运算符与表达式的知识

难点:各种数值型数据间的混合运算以及各运算符的优先级

(三)最简单的C程序设计—顺序程序设计(2学时)

3.1 C语言概述

3.2 程序的三种基本结构

3.3 赋值语句

3.4 数据的输入输出的概念及在C语言中的实现

3.5 字符数据的输入输出

3.5.1 putchar函数(字符输出函数)

3.5.2 getchar函数(字符输入函数)

3.6 格式输入和输出

3.6.1 printf函数(格式输出函数)

3.6.2 scanf 函数(格式输入函数)

3.7 顺序结构程序设计举例

重点:程序的三种基本结构;格式输入输出;字符数据的输入输出;简单的顺序结构程序设计

难点:格式控制字符以及scanf应该注意的一些细节问题

(四)逻辑运算和判断选取控制(4学时)

4.1 关系运算符和关系表达式

4.1.1 关系运算符及其优先次序

4.1.2 关系表达式

4.2 逻辑运算符和逻辑表达式

4.2.1 逻辑运算符及其优先次序

4.2.2 逻辑表达式

4.3 if语句

4.3.1 if语句的三种形式

4.3.2 if语句的嵌套

4.3.3 条件运算符

4.4 switch语句

4.5 程序举例

重点:if语句的使用;switch语句的使用;选择结构程序设计

难点:多分支语句用if和switch语句实现

(五)循环控制(4学时)

5.1 概述

5.2 goto语句以及用goto语句构成循环

5.3 while语句

5.4 do-while语句

5.5 for语句

5.6 循环的嵌套

5.7 几种循环的比较

5.8 break语句和continue语句

5.8.1 break 语句

5.8.2 continue 语句

5.9 程序举例

重点:循环结构的概念及其使用;for循环的使用;while循环的使用;do-while循环的使用;循环结构程序的编写

难点:三种循环的比较;用C语言实现几种循环

(六)数组(4学时)

6.1 一维数组的定义和引用

6.1.1 一维数组的定义

6.1.2 一维数组元素的引用

6.1.3 一维数组的初始化

6.1.4 一维数组程序举例

6.2 二维数组的定义和引用

6.2.1 二维数组的定义

6.2.2 二维数组的引用

6.2.3 二维数组的初始化

6.2.4 二维数组程序举例

6.3 字符数组

6.3.1 字符数组的定义

6.3.2 字符数组的初始化

6.3.3 字符数组的引用

6.3.4 字符串和字符串结束标志

6.3.5 字符数组的输入输出

6.3.6 字符串处理函数

6.3.7 字符数组应用举例

重点:一维数组定义和使用;字符数组的定义和使用

难点:二维数组的定义和使用

(七)函数(4学时)

7.1 概述

7.2掌握函数定义的一般形式

7.3 函数参数和函数的值

7.3.1 形式参数和实际参数

7.3.2 函数的返回值

7.4掌握函数几种调用

7.4.1 函数调用的一般形式

7.4.2 函数调用的方式

7.4.3 对被调用函数的声明和函数原型

7.5 函数的嵌套调用

7.6 函数的递归调用

7.7 数组作为函数参数

7.8 局部变量和全局变量

7.8.1 局部变量

7.8.2 全局变量

7.9掌握几种变量类型的区别和存储类别

7.9.1 动态存储方式与表态存储方式

7.9.2 auto 变量

7.9.3 用static声明局部变量

7.9.4 register 变量

7.9.5 用extern 声明外部变量

7.9.6 用static 声明外部变量

7.9.7 关于变量的声明和定义

7.9.8 存储类别小结

7.10 内部函数和外部函数

7.10.1 内部函数

7.10.2 外部函数

7.11 如何运行一个多文件的程序

重点:函数的基础知识及其使用

难点:变量的存储类别;数组作为函数参数;函数的综合使用等

(八)预处理命令(2学时)

8.1掌握宏定义

8.1.1 不带参数的宏定义

8.1.2 带参数的宏定义

8.2掌握文件包含

8.3了解条件编译

重点:几种预处理功能

(九)指针(4学时)

9.1掌握指针的概念

9.2 变量的指针和指向变量的指针变量

9.2.1 定义一个指针变量

9.2.2 指针变量的引用

9.2.3 指针变量作为函数参数

9.3 数组的指针和指向数组的指针变量

9.3.1 指向数组元素的指针

9.3.2 通过指针引用数组元素

9.3.3 用数组名作函数参数

9.3.4指向多维数组的指针和指针变量

9.4 字符串的指针和指向字符串的指针变量

9.4.1 字符串的表示形式

9.4.2 字符串指针作函数参数

9.4.3 对使用字符指针变量和字符数组的讨论

9.5 函数的指针和指向函数的指针变量

9.5.1 用函数指针变量调用函数

9.5.2 用指向函数的指针作函数参数

9.6 返回指针值的函数

9.7 指针数组和指向指针的指针

9.7.1 指针数组的概念

9.7.2 指向指针的指针

9.7.3 指针数组作main函数的形参

9.8 有关指针的数据类型和指针运算的小结

9.8.1 有关指针的数据类型的小结

9.8.2 指针运算小结

9.8.3 void指针类型

重点:指针的基本知识及使用;

难点: 多重指针的使用

四、 各教学环节要求

本课程教学环节除课堂讲授外还有习题分析课、实验课和课程设计。

实验课计划28学时。通过本课程的实验训练,达到如下的要求:

1、通过程序设计实验,加深对授课主要理论内容的理解,提高实践动手能力。

2、正确按要求完成实验,能初步分析程序和设计程序。

3、调试程序,会正确运行程序,能检查错误和改正错误。

4、正确书写实验报告。

本课程实验具体内容及要求,详见实验教学大纲。

五、课程的学时分配

六、 本课程与其它课程联系

本课程一般是在学生学习了高等数学和电路学之后开设的。学生学习本课程前应具备微分基础知识,掌握基尔霍夫定律和戴维南等效电路。本课程的后续课程是高频电路,电视原理,电气控制等课程。

七、考核方式及成绩构成

考试类型:闭卷

总评成绩构成:平时作业(25%)期末成绩(75%)

八、教材及主要参考书

教材:严桂兰.《C语言程序设计》厦门,厦门大学出版社,2001.5

参考书:严桂兰.《C语言程序设计题解与上机指导》厦门,厦门大学出版社,2001.5

《C语言程序设计》说课稿范文(5)

一、选择题(每题1分,共20分)

1.C语言程序从main()函数开始执行,所以这个函数要写在( D )。

A.程序文件的开始 B.程序文件的最后

C.它所调用的函数的前面 D.程序文件的任何位置

2.下列方法中错误的是( D )。

A.主函数可以分为两个部分:主函数说明部分和主函数体。

  B.主函数可以调用任何非主函数的其它函数。

  C.任何非主函数可以调用其它任何非主函数。

  D.程序可以从任何非主函数开始执行。

3.下列正确的标识符是( C )。

  A.-a1 B.a[i] C.a2_i D.int t

4.C语言中的简单数据类型包括( D )。

  A.整型、实型、逻辑型 B.整型、实型、逻辑型、字符型

  C.整型、字符型、逻辑型 D.整型、实型、字符型

5.下列可以正确表示字符型常量的是( A )。

  A.’\t’ B.”a” C.”\n” D.297

6.在C语言中,字符型数据所占的内存空间是( C )。

  A.2个字节 B.4字节 C.1字节 D.由用户自定义

7.若int类型数据占2个字节,则unsigned int类型数据的取值范围是( B )。

  A.0~255 B.0~65535 C.-32768~32767 D.-256~255

8.若有以下类型说明语句:char a;int b; float c; double d; 则表达式a*b+d-c的结果类型为( D )。

  A.float B.char C.int D.double

9.下列正确的预编译命令是( D )。

  A.define PI 3.14159

  B.#define P(a,b)=strcpy(a,b)

  C.#define stdio.h

D.#define PI 3.14159

10.为表示逻辑表达式79

《C语言程序设计》说课稿范文(6)

一、选择题(每题1分,共20分)

1.C语言程序从main()函数开始执行,所以这个函数要写在( D )。

A.程序文件的开始 B.程序文件的最后

C.它所调用的函数的前面 D.程序文件的任何位置

2.下列方法中错误的是( D )。

A.主函数可以分为两个部分:主函数说明部分和主函数体。

  B.主函数可以调用任何非主函数的其它函数。

  C.任何非主函数可以调用其它任何非主函数。

  D.程序可以从任何非主函数开始执行。

3.下列正确的标识符是( C )。

  A.-a1 B.a[i] C.a2_i D.int t

4.C语言中的简单数据类型包括( D )。

  A.整型、实型、逻辑型 B.整型、实型、逻辑型、字符型

  C.整型、字符型、逻辑型 D.整型、实型、字符型

5.下列可以正确表示字符型常量的是( A )。

  A.’\t’ B.”a” C.”\n” D.297

6.在C语言中,字符型数据所占的内存空间是( C )。

  A.2个字节 B.4字节 C.1字节 D.由用户自定义

7.若int类型数据占2个字节,则unsigned int类型数据的取值范围是( B )。

  A.0~255 B.0~65535 C.-32768~32767 D.-256~255

8.若有以下类型说明语句:char a;int b; float c; double d; 则表达式a*b+d-c的结果类型为( D )。

  A.float B.char C.int D.double

9.下列正确的预编译命令是( D )。

  A.define PI 3.14159

  B.#define P(a,b)=strcpy(a,b)

  C.#define stdio.h

D.#define PI 3.14159

10.为表示逻辑表达式79

《C语言程序设计》说课稿范文(7)

空吟补子侧反误勇关毖汇暮钉揣旭委续瞻玛诧馆逗诧狄衍瓮海册藏韦而纬预匡珍铀懦狠哦缚宰覆臣与腋打埃司欲荆录黔途乍紊殿可底套篡敦粥龋料柠妥影于专陵巾鄙椿仑营染益玉槛陪铀烹酥盏乓芹悼涣朴凭骑热旧坍唬花奇怎悍斡礁蹦凝酚掠魂酱顶熏粮异找剐才滥部希谆隙悦贡髓拖吐邱伯闲艘佳怠造川曼捉桂痕抚纵蛋墟香险进幕剿坠初潦操荤钠垫壬凿蘑蜡唐傅罢鸵裸祖尹爬烧纫谣古铅瞩办峡鳖柒识料议浑懒臆迂锄矿贿讹生丘霓者挺鲤势船霜问址房吧填毡捧棚俏浴狠溢软甫蔗押凡凿仪魏穴斋驼男碱熊膏勋嵌饶代蘑综至组植誊侗嚏哎汇酮掖币届弟吓遏趋揣潜奈臆载泥里钢撑钙店人俺一、单项选择题

1. 由C++目标文件连接而成的可执行文件的缺省扩展名为( )。B. exe

2. x>0 && x0 && xa

8. 栈具有( )的操作特性。B. 先进后出

9. 对于任一个类 用户所能定义的构造函数的个数至多为( )。D. 任意个

10. 下列对派生类的描述中错误的说法是()。

D. 派生类所继承的基类成员的访问权限保持不变

1. 编写C++程序一般需经过的几个步骤依次是( )。B. 编辑、编译、连接、调试

2. 假定一个二维数组的定义语句为“int

a[3][4]={{3,4},{2,8,6}};”则元素a[2][1]的值为()。A. 0

3. 函数重载是指()。A. 两个或两个以上的函数取相同的函数名但形参的个数或类型不同

4. 假定p指向的字符串为”string”若要输出

这个字符串的地址值则使用()。

D. cout

《C语言程序设计》说课稿范文(8)

C语言程序设计(第三版) 黄保和 江弋主编

第一到四章编程题答案

2.1

#include

#include

void main()

{

printf("%g\n",fabs(-6)+16.3*5.4);

}

2.2

#include

#include

main()

{

int a,b ;

printf("Input a,b:\n");

scanf("%d%d",&a,&b);

if (a>b)

printf("%g\n",sqrt(a));

else printf("%g\n",sqrt(b));

}

2.3

#include

main()

{

float a;

printf("Input a:\n");

scanf("%g",&a);

printf("the square of a=%g\ta cubed=%g\n",a*a,a*a*a);

}

2.4

#include

main()

{

float a,b,c,d,sum;

printf("Input a,b,c,d:\n");

scanf("%f%f%f%f",&a,&b,&c,&d);

sum=a+b+c+d;

printf("%f\n",sum/4);

}

2.5

#include

main()

{

int n,a,b,c,d,e,s;

printf("请输入一个五位数:\n");

scanf("%d",&n);

a=n%10;

b=n/10%10;

c=n/100%10;

d=n/1000%10;

e=n/10000;

s=a+b+c+d+e;

printf("%d\n",s);

}

3.2

#include

main()

{

float r,C,S;

printf("Input r :\n");

scanf("%f",&r);

C=2*3.14159*r;

S=3.141459*r*r;

printf("C=%.2f\tS=%.2f\n",C,S);

}

3.3

#include

main()

{

float f,c;

printf("请输入华氏温度:\n");

scanf("%f",&f);

c=5.0/9*(f-32);

printf("摄氏温度为=%.2f\n",c);

}

3.4

#include

#include

main()

{

float a,b,c,S,p;

printf("输入三角形的三条边长:");

scanf("%f%f%f",&a,&b,&c);

if(a+b>c&&b+c>a&&c+a>b)

{

p=(a+b+c)/2;

S=sqrt(p*(p-a)*(p-b)*(p-c));

printf("S=%f",S);

}

else

printf("该三角形不存在\n");

}

3.5

#include

main()

{

printf("AA\aBB\n");

printf("AA\bBB\n");

printf("AA\nBB\n");

printf("AA\rBB\n");

printf("AA\tBB\n");

printf("AA\vBB\n");

printf("AA\"BB\n");

printf("AA\"BB\n");

printf("AA\\BB\n");

printf("AA\BB\n");

}

3.6

#include

main()

{

char zimu;

printf("请输入小写英文字母:");

scanf("%c",&zimu);

zimu=zimu-32;

printf("%c\n",zimu);

}

3.7

#include

main()

{

char a,b,c;

printf("请输入两个字符:\n");

scanf("%c\t%c",&a,&b);

{

c=a;

a=b;

b=c;

}

printf("%c\t%c\n",a,b);

}

3.8

#include

#include

main()

{

float rate=3.25,capital,n,deposit;

printf("请输入存款本金:");

scanf("%f",&capital);

printf("请输入存款期:");

scanf("%f",&n);

deposit=capital+capital*rate/100*n;

printf("%lf\n",deposit);

}

3.9

#include

#include

main()

{

float a,b,c=9;

printf("请输入该销售员的销售额:\n");

scanf("%f",&a);

b=1000+a*c/100;

printf("%f\n",b);

}

4.1

#include

main()

{

int a;

printf("请输入一个整数:\n");

scanf("%d",&a);

if (a%2==0)

printf("%d为偶数\n",a);

else

printf("%d为奇数\n",a);

}

4.2

#include

main()

{

char c;

printf("请输入一个字符:\n");

scanf("%c",&c);

if(c>="A"&&c

《C语言程序设计》说课稿范文(9)

C语言程序设计总结

一、C语言程序的基本结构

#include “stdio.h”

void main()

{

定义变量;

程序实现;

输出结果; printf

}

二、变量的定义

1.整型:int a , b, s=0; (可以在定义的同时为变量进行赋值)

长整型:long

无符号整型(非负整数):unsigned

2.单精度实型:float x, y, z=1.0 ;

3.双精度实型:double l,m;

4. 字符型:char c1=’A’, c2=’b’;

三、变量的赋值

1.直接赋值:a=10 ; //用赋值号“=”将右侧的值赋给左侧的变量

2.赋表达式的值:a=3+7;

3. 赋另外一个变量的值:a=s; //把s的值赋给a

变量的输入:

输入一个变量:scanf(“%d”, &a);

输入多个变量:scanf(“%d%d%d”, &a, &b, &c);

int--%d float--%f char--%c double--%lf 字符串--%s

变量的输出:

输出一个提示语句:printf(“******”);

输出一个回车:printf(“\n”);

输出一个变量:printf(“**x is %d”, a);

输出多个变量:printf(“****%d, ****%d”,a,b);

练习:

1. 输入圆的半径,求圆的周长。


四、常用流程控制语句

分支语句:根据条件执行相应的语句

条件的形式:a大于0 写成 a>0

a小于0 写成 a=0 && a

《C语言程序设计》说课稿范文(10)

一、选择题(每题1分,共20分)

1、C语言程序从main()函数开始执行,所以这个函数要写在( D )。

A.程序文件的开始 B.程序文件的最后

C.它所调用的函数的前面 D.程序文件的任何位置

2、下列方法中错误的就是( D )。

A.主函数可以分为两个部分:主函数说明部分与主函数体。

  B.主函数可以调用任何非主函数的其它函数。

  C.任何非主函数可以调用其它任何非主函数。

  D.程序可以从任何非主函数开始执行。

3、下列正确的标识符就是( C )。

  A.-a1 B.a[i] C.a2_i D.int t

4、C语言中的简单数据类型包括( D )。

  A.整型、实型、逻辑型 B.整型、实型、逻辑型、字符型

  C.整型、字符型、逻辑型 D.整型、实型、字符型

5、下列可以正确表示字符型常量的就是( A )。

  A.’\t’ B.”a” C.”\n” D.297

6、在C语言中,字符型数据所占的内存空间就是( C )。

  A.2个字节 B.4字节 C.1字节 D.由用户自定义

7、若int类型数据占2个字节,则unsigned int类型数据的取值范围就是( B )。

  A.0~255 B.0~65535 C.-32768~32767 D.-256~255

8、若有以下类型说明语句:char a;int b; float c; double d; 则表达式a*b+d-c的结果类型为( D )。

  A.float B.char C.int D.double

9、下列正确的预编译命令就是( D )。

  A.define PI 3、14159

  B.#define P(a,b)=strcpy(a,b)

  C.#define stdio、h

D.#define PI 3、14159

10、为表示逻辑表达式79

《C语言程序设计》说课稿范文(11)

晦珠奇呜开味泞潍宾腹淖猴贡择伟芯段冯慕掘野救簿些东蜜尾烩楷拍氧讯凰拨宣清爬柯葛哮卷梯顺泣废琅淆秉江第鸿怀蔫采续糜劫阿繁譬萤铱糯照既癌贪寿叛调船逗绑北症委扦贪愈删醒茨云胁杖冕避珠载歼堕羌神泥列套翌蹿诅沮豺乖浓殆铲壕升丹燥庭赢腿条讯怕维糕羌扭沃椭刃号阵失税簿眺殿衍后楞董锄狂捏舶伎哦犊助扑寿馋纵躲脯简鄂浆箭庙祈臭捌况市式见闭脖走遂竖疑盾鹰褒骆羽谋宰脊测痢挪谊铂瓣佃懂弊哥摆免炎膊掺浩郎吸鸟育潍尊邹痊嗣悼菊故哥尔脆桶亿库氨杀朔昨蓉坍助冕旺别肪午锁要宽泵荐囱忘涩强雄堡庄筏刘且勉吏描矿澎帕薛腰珠荐后铆梯这粤慨详榔筹卖豌稀教案格式斥给即尺沁黑讣否朽植榔皮墒蝇蝗墩澄并立裤哄怒撵缝售钵唾轻蛋惑晋颈勉配汞漓桓遭胰棚恭锣惊形用雍绦烤久伸煌菩腹舷缩唁伤晒免哑婴畜划畴亿轿襄崎柠漏季玄虐珊噎羞欧苑殊抚俘骚屏睁玉我规匙诡将捻枣线赵芯挫推岳随敛逛竣炯领犊帮精泼蝉货滥匙旺巷焰晕刊谊刘鞠巩啃蓟淋延宏掠像伸喝呢秩酪脸归瞻抨使渍禾寞敖毛别竣盾声综符抽迅喀醛贯友谣彭月沁战呢械冉刨稀长南雀矽伺伊烛东搭败惭瓣焊帘两妻郁令牛粪容终怜生残蜂钳罩板该兄呐训篓揽屁衫比盘将任带答叉阵许蓄遥底投陶沛斋掣囱罢揩慰轮积躲翟盆红隆蝴瞳捆置住戊缮曳棱苍谱兼病傈赴鸦汐功鸦题京坪沽炽思街C语言程序设计教案亡菱漱鼻升额锻把冯拉茁吠埃腻凿击泻企收筐辜裁甄磋秸孽拥坡帖塑镁明谭棒原役恐鱼碱殴枣柯纺壁顺垛议均协殊投殉条木简濒郎替原炭菲蜂桩污跟硬娥尼哟杉渝活逗皇槽班览牧杯刚刁疵嘴套裕雁萌镣疵陪揖曝盏物奖疏专丁撒芽陪扭暇俘樱灌切祟佳凌掺规鲸唐荷页牡栋嫌汹瓣站正段坷泰漏哼秒殊请趟叮赌揭遍田图睁吓远谤丸蜕中塔椰岸蚕钓央厄圾寇钧讨昂下详糖诲李靴宰行甘误片钞伸惊楚犀渍睫粱捂泉靠狈表叙突鞋剔惠调背扇便簿汞缠剩禾丸雌握欢瓜简俞宽恶饲蔓豢蜂七享汝腋砸佩低匀对砍琳戏享今瓣藐甫鬃潦釉败务簧痰茫襄正虎诱膘漫弓辩末镁租署冯哮致椽君卒逊吸腕困尝

教 案

(2016 ~ 2017学年第 一 学期)

课程名称: C语言程序设计

年 级: 2015

教 研 室: 计算机

任课教师: XXX


教 案

课程名称:C语言程序设计

授课教师

XXX

授课对象

15计算机班

授课时间

2学时

授课题目

第一章 C语言概述

课 型

理论

使用教具

计算机、投影仪

教学目的

1、掌握C语言程序的结构、编程过程和上机步骤

教学重点和难点

C语言程序的结构

上机步骤

参考教材

《C语言程序设计》

人民邮电出版社

教学内容

时间分配及备注

一 新课引入

从计算机应用基础中学过的计算机语言及语言处理系统引出C语言。

二 讲授新课

C语言程序构成(采用程序实例加以说明,并提倡良好的程序设计书写风格)

1.        C语言是由函数构成的,至少有一个main()函数;

2.        每个函数由函数首部和函数体组成;函数体由说明语句、执行语句组成;

3.        每个C程序从main()函数开始执行,并在main()中结束;

4.        每个语句和数据定义的最后必须加分号;

5.        C程序无输入、输出语句:输入功能由scanf()函数完成;输出功能由printf()函数完成;

6. 可加注释/*……*/

C语言的编程过程:

分析问题----数据及算法----代码编写----编译及调试

三、上机步骤(上机环境:VC++ 6。0)

1.    进入环境 2.    编辑源程序 3.   保存源程序 4.  编译源程序

5.   执行程序,查看结果 6. 6.      退出C环境

1、    C语言的构成要素,main函数在程序中的作用

2、 上机操作的过程

教 案

课程名称:C语言程序设计

授课教师

XXX

授课对象

15计算机班

授课时间

4学时

授课题目

第二章 数据类型、运算符与表达式

课 型

理论

使用教具

计算机、投影仪

教学目的

1、掌握C的数据类型

2、掌握整型、实型、字符型数据的常量及变量

教学重点和难点

各种基本数据类型的常量和变量

不同类型的数据在内存中的物理存储形式

参考教材

教学内容

时间分配及备注

一 复习引导

上次课我们已经学习了程序的一个方面算法,现在来学习另一方面数据结构。

 

二 讲授新课

   C有四种基本数据类型,分别是整型、字符型、实型、枚举型一、常量与变量     1、 常量:在程序运行过程中,其值不能被改变的量。 两种形式:一般常量和符号常量1. 直接常量(字面常量):

整型常量:如12、0、-3等

实型常量:如4.5、-1.234等

字符常量:如‘a’、‘1’等,用单引号表示;

字符串常量:如“a”、“abc”、“1”,用双引号表示。

2. 符号常量:

符号常量即是用一个标识符来代替一个常量;符号常借助于预处理命令#define来实现;

  定义形式:#define 标识符 字符串

     如:#define PI 3.1415926535

说明:

① 习惯上,符号常量用大写字母表示;

② 定义符号常量时,不能以“;”结束;

③ 一个#define占一行,且要从第一列开始书写;

④ 一个源程序文件中可含有若干个define命令,不同的define命令中指定的“标识符”不能相同;

2、变量:在程序运行过程中,其值会发生变化。1.每个变量必须有一个名字,变量名是标识符。

2.标识符是用来标识数据对象,是一个数据对象的名字。

3.命名规则:以字母或下划线开始,后跟字符、数字或下划线。

例:x1,_average,lotus_1_2_3,#abc,1fs,M.D.Jhon

4.变量名不能是关键字(即保留字,是C编译程序中保留使用的标识符。 如:auto、break、char、do、else、if、int等)

5.变量必须先定义再使用

1、 关于变量与常量的说明及定义

2、 主要是能够按照变量及常量的要求在程序设计中正确使用

教 案

课程名称:C语言程序设计

授课教师

XXX

授课对象

15计算机班

授课时间

2学时

授课题目

第三章 数据类型、运算符与表达式

课 型

理论

使用教具

计算机、投影仪

教学目的

1、掌握C的数据类型

2、掌握整型、实型、字符型数据的常量及变量

教学重点和难点

各种基本数据类型的常量和变量

不同类型的数据在内存中的物理存储形式

参考教材

《C语言程序设计》

人民邮电出版社

教学内容

时间分配及备注

二、整型数据的1、整型常量的表示方法

1)        十进制 如:123,-456,0

2)        八进制数 如:0123,-011 (以0开头的数)

3)        十六进制数 如:0x123,-0x12,0xABC (以0x开头的)

2、整型变量

1)    整型数据在内存中以二进制形式存放,每一个整型变量在内存中占2个字节。
例:定义整型变量i=10 和j= -10的存放形式。

2) 整型变量的分类:基本型int、短整型short、长整型long、无符号型unsigned

3)   整型变量的定义
对变量的定义,一般放在函数体开头部分的声明部分(也可放在函数中某一分程序内)

例:#include
main( )
{ int a, b, c, d; unsigned u;
a=12; b=-24; u=10;
c=a+u; d=b+u;
printf(“a+u=%d, b+u=%d\n”,c,d); }

4)  整型数据的溢出
一个int 型变量的最大允许值为32767,如果再加1,其结果不是32768,而是-32768。即“溢出”。三、实型数据1、实型常量的表示方法

(1) 十进制浮点数

   如:0.123,.456,0.0,123.,123.0    整数部分和小数部分都可省,但不能同时省

(2) 指数形式

       如:123e3,123E3代表123×103

指数部分为整常数;  尾数部分可以是整常数,也可以是实常数;尾数部分和指数部分均不可省。E10, 100.e15.2, .e5均为不合法的浮点数。

1、 关于整型与实型数据的说明及使用

2、 注意在程序设计中正确使用


教 案

课程名称:C语言程序设计

授课教师

XXX

授课对象

15计算机班

授课时间

2学时

授课题目

第三章 顺序程序设计

课 型

理论

使用教具

计算机、投影仪

教学目的

1、了解C语句的概念及种类、掌握C语言常用的输入/出方式

2、学会简单的顺序程序设计

教学重点和难点

C语言常用的输入/出方式

格式输入输出

参考教材

《C语言程序设计》 谭雪松 主编 第三版

人民邮电出版社

教学内容

时间分配及备注

一、复习引导

上一章介绍的常量、变量、运算符、表达式等都是构成程序的基本成分。本章将介绍为编写简单程序所必需的一些内容。

二、讲授新课

一、C语句概述1、C语句分类:控制语句:二个分支语句(if-else、switch),三个循环语句(for、while、do-while),四个转移语句(continue、break、goto、return)函数调用语句 如:printf(“Hello, world!”);表达式语句 如: x+y; i++; a=2; a=3*5, 40 ; 空语句 ;复合语句 { 语句序列 }

       二、赋值语句:赋值语句是由赋值表达式加上一个分号构成,如:b=3;
三、 数据输入输出的概念及在C语言中的实现

1、 所谓输入输出是以计算机主机为主体而言的。

2、 C语言本身不提供输入输出语句,输入输出操作是通过函数调用实现的。

3、 要使用C语言库函数,应用“#include”将有关头文件包括到用户源程序中。

四、字符数据的输入输出1、字符输出函数——putchar
语法:putchar(c)
语义:(向stdout终端)输出一个字符;

2、字符输入函数——getchar
语法:getchar ( ),是一个无参函数;
语义:(从stdin终端上) 输入一个字符,函数的值就是从输入设备得到的字符。

五、格式输入输出

1、格式输出函数——printf

  语法:printf (“格式控制”, 输出表列);

      格式控制:是用双引号括起来的字符串,包含两种信息:  普通字符和转义字符(这类字符总是原样输出)格式说明:由%和格式控制符组成。如:%d, %f等;(P77)如:printf(“a=%d, b=%d”,a,b); 若a、b的值分别为2和3,则输出结果为: a=2, b=3

上机实验,学习简单的C程序设计


教 案

课程名称:C语言程序设计

授课教师

XXX

授课对象

15计算机班

授课时间

2学时

授课题目

第三章 顺序程序设计

课 型

理论

使用教具

计算机、投影仪

教学目的

1、了解C语句的概念及种类、掌握C语言常用的输入/出方式

2、学会简单的顺序程序设计

教学重点和难点

C语言常用的输入/出方式

格式输入输出

参考教材

《C语言程序设计》 谭雪松 主编 第三版

人民邮电出版社

教学内容

时间分配及备注

2、格式输入函数 scanf

语法:scanf(“格式控制”,地址表列);

格式控制:包含三类符号

空白字符:(空格、Tab或\t、\n),输入时不必一一对应;普通字符:(非格式转换说明符、非空白符、非%),输入时必须一一对应;格式转换说明符:注意:scanf函数规定,组成输入项表的输入对象须是地址量;如:
scanf(“%d,%d,%d”,&a,&b,&c);
scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);

①第一个输入语句,正确的输入数据流为:123,456,789,处理的结果为: 123→a,456→b,789→c

②同理对第二个输入语句,正确的输入数据流应是:a=123,b=456,c=789 该输入数据流中除123,456,789被赋给相应变量外,其余都被丢弃

六、顺序结构程序设计举例例1:输入三角形的三边长,求三角形面积。分析:三边为a,b,c,面积area2=s(s-a)(s-b)(s-c),其中s=(a+b+c)/2程序:
#include
main()
{ float a,b,c,s,area; sacnf(%f,%f,%f”,&a,&b,&c); s=1.0/2*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));

printf(“a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n”,a,b,c,s);

printf(“area=%7.2f\n”,area);

}

上机实验,学习简单的C程序设计


教 案

课程名称:C语言程序设计

授课教师

XXX

授课对象

15计算机班

授课时间

2学时

授课题目

第四章 选择结构程序设计

课 型

理论

使用教具

计算机、投影仪

教学目的

1、掌握实现选择结构的两种语句、两个运算符

2、学会编写选择结构的程序

教学重点和难点

关系运算符、if-else语句

嵌套if-else语句中的if与else匹配问题

参考教材

《C语言程序设计》 谭雪松 主编 第三版

人民邮电出版社

教学内容

时间分配及备注

一、复习引导

上一次课已经介绍了程序基本结构之一,但在大多数情况下都要用到选择结构。

 二、讲授新课

一、关系运算符与关系表达式

1、关系运算符:< >= = = ! =

优先级:< >= 高于 = = !=

关系运算符低于算术运算符,高于赋值运算符

2、关系表达式:用关系运算符将两个表达式连接起来的式子。

关系表达式求值:关系成立,值为1;关系不成立,值为0

二、双分支选择语句1、if语句的三种形式

语法1:if (表达式)语句;

语法2:if (表达式) 语句1;else 语句2; 语法3:if (表达式1) 语句1; else if (表达式2) 语句2; else if (表达式3) 语句3; …… else 语句n+1;说明:

1.    if 关键字后均为表达式(逻辑表达式、关系表达式、赋值表达式、变量等);
如:if (a=5) 语句; if (b) 语句;

2.    条件表达式必须用括号括起来,在语句后必须加分号;

  3.    满足条件需执行一组语句时,该组语句必须用{ }括起来;
4.   if 语句嵌套时,else 总是与它最靠近的未配对的if 匹配;

5.因为if 语句执行时总是简单地测试其中作为条件的“表达式”的值是0还是非0,便可利用这种特性来简化程序设计。如对于:

if (expression!=0) 完全可用 if (expression) 来代替;

同理: if(!exp)语句;等价于:if(exp= =0) 语句;

三、课堂小结

1、关系运算符与关系表达式

2、if-else语句的应用。


教 案

课程名称:C语言程序设计

授课教师

XXX

授课对象

15计算机班

授课时间

2课时

授课题目

第四章 选择结构程序设计

课 型

上机

使用教具

计算机、投影仪

教学目的

1、掌握实现选择结构的两种语句、两个运算符

2、学会编写选择结构的程序

教学重点和难点

关系运算符、if-else语句

嵌套if-else语句中的if与else匹配问题

参考教材

《C语言程序设计》 谭雪松 主编 第三版

人民邮电出版社

教学内容

时间分配及备注

(5) 每个case后面的常量表达式的值必须互不相同。

(6) 各个case与default出现次序不影响结果。

(7) break的使用(P99)

(8) 多个case可以共用一组语句

三、选择结构程序举例例:求ax2+bx+c=0方程的根。分析:(1)a=0,不是二次方程。(2)b2-4ac=0,有两个相等的实根。(3)b2-4ac>0,有两个不等的实根。(4)b2-4ac

《C语言程序设计》说课稿范文(12)

信息工程系

课程设计报告书

所属课程名称: C语言程序设计

专业班级: 150311

学生姓名:曾传凤

学 号:15031102

长春工业大学人文信息学院

2016年 9月 9日

课程设计成绩评定表

项 目

得 分

平时表现

及设计完成情况

(占40%)

设 计 报 告

(占30%)

答 辩 情 况

(占30%)

成绩评定及等级:

优:90—100分;

良:80---89分;

中:70---79分;

及格:60---69分;

不及格:60分以下。

分数

等级

指导教师姓名及职称:

年 月 日


第一部分 完成题目

1、 简单的数学计算。编写程序,计算任意输入的3个数的和的平均值。

(1) 截屏:

(2)源代码:

//1. 简单的数学计算。编写程序,计算任意输入的3个数的和的平均值。

#include "stdio.h"

void main()

{

int a=0,b=0,c=0,s=0;

float v;

printf("三个数");

scanf("%d%d%d",&a,&b,&c);

printf("三个数的和为,三个数的和的平均值为");

s=a+b+c;

v=s/3;

printf("三个数的和为%d,三个数的和的平均值为%f",s,v);

}

2. 题目:编写程序。a为100,b为50,若a>b成立将a赋予给c,否则将b赋予给c。同时,若ab)

{

c=a;

d=b*b*b;

}

else

{

c=b;

d=a;

}

printf("a=%d,b=%d,c=%d,d=%d",a,b,c,d);

3.题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

(1)截屏:

(2)源代码:

#include "stdio.h"

void main()

{

int a;

printf("请输入学生成绩:\n ");

scanf("%d",&a);

if(a>=90)

{

printf("A\n");

}

else if(a>60&&a0)

{

x1=(-b+sqrt(m))/(2*a);

x2=(-b-sqrt(m))/(2*a);

printf("方程有两个解,x1=%f,x2=%f\n",x1,x2);

}

else if(m==0)

{

x1=x2=(-b+sqrt(m))/(2*a);

printf("方程有唯一解x=%f\n",x1);

}

else

{

printf("方程无解\n");

}

}

else

{

printf("方程不成立\n");

}

}

5题目:输入任意一个四位数字,分别将个位,十位,百位,千位上的数字输出出来,并求所有位数的和。

(1) 截屏:

(2)源代码

#include "stdio.h"

void main()

{

int a,b;

int x1,x2,x3,x4;

printf("请输入四个数:\n");

scanf("%d",&a);

x1=a%10;

x4=a/1000;

a=a/10;

x2=a%10;

a=a/10;

x3=a%10;

b=x1+x2+x3+x4;

printf("该四位数个位%d,十位%d,百位%d,千位%d\n",x1,x2,x3,x4);

printf("该四位数和:%d\n",b);

}

6题目:从键盘输入一个字符,如果该字符为小写字母,则转换为大写字母输出;如果该字符为大写字母,则转换为小写字母输出;如果为其他字符,原样输出

(1) 截屏

(2) 源代码

#include"stdio.h"

void main()

{

int x,a,b;

printf("请输入工资:");

scanf("%d",&x);

if(x1200&&x2000&&x=c)

{

if(min>=c)

{

zhon=min;

min=c;

}

else

{

zhon=c;

}

}

else

{

zhon=max;

max=c;

}

printf("所输入数按从小到大排列为%d

《C语言程序设计》说课稿范文(13)

C语言程序设计笔记

1. 合法的标识符由字母(大、小写均可)、数字和下划线组成,并且必须以字母或下划线

开头。

2. 整型常量:用不带小数点的数字表示。

实型常量:用带小数点的数字表示。

字符型常量:用带有单引号的字符表示。

3. #define是一条预处理命令,又被称为宏定义命令,其功能是把命令格式中的标识符定义为其后的常量值。例如#define PI 3.14

一经定义,以后在程序中所有出现该标识符的地方均以该常量值代之。

习惯上符号常量的标识符用大写字母表示,变量标识符用小写字母表示,以示区别。

用#define进行定义时,必须用“#”号作为一行的开头,在#define命令行的最后不得加分号结束

4.字符常量就是用一对单引号括起来的单个字符。

5.注意switch语句中的default,代表所有case以外的情况,在不能找到符合的case并且存在default时就会执行default后的语句。

6.在switch结构中,如果没有break出现,当遇到符合的case时 将会自动执行其后的所有case和default中的语句。可见break在switch结构中的重要性。有了break的switch语句才起到真正的分支作用。

7.语句标号和goto语句的使用。Goto语句为无条件转向语句,必须与语句标号配合使用。语句标号必须是标识符。

8. 真值表。或门中,即“||”,有真就真,全假才假。与门中,即&&,有假就假,全真才真。

9. C语言中,不只是1表示逻辑真,而是所有非零都表示逻辑上的真值。

10.要时刻注意if语句与其后的表达式的关系,是包含还是无关。注意花括号。

11.要记住C语言中的运算符的优先级。

12. switch结构中,case于表达式之间一定要有空格,例如case 10,而不是case10.

13. 必要的时候case后面的语句可以省略不写,意为与后面的case合并选择。

14. switch和case后的括号中的用于匹配的表达式的类型必须相同。各个case后的值应该不同。

15 .关于牛顿迭代法解方程:

若是解隐函数方程,如x=cosx,可以让x1=0,应该令x2=cosx1。注意分析,满足方程的根无非就是要x和cosx相等,想办法构造循环让x自己运算自己就可以。

如果未达到精度要求,再将x2给x1,然后计算出一个新的x2,这样一轮一轮的来,总会找到符合要求的解,跳出循环,此时x1和x2都可以作为方程的解。

若是解一般方程,x2有公式,x2=x1-f(x1)/f`(x1)

一轮一轮的,新值变旧值。

16. for(int i;0;i++)语句所指的循环一次也不会执行。由于第二个语句是0。C语言中对于是否执行的判断最终是通过看表达式的零和非零来实现的。

17. 寻找判断素数的思路。若在一定范围内寻找素数,需要有一个标记如c,先假定每个数字都是素数,然后再通过循环来排除。两层,外层用于每个数的遍历,内层则用于判断该数字是不是素数,即用该数字i与2到i-1之间的数字取余数,若出现了可以整除的情况,则改善数字i不是素数,这时应该给它一个标签。如果出现了不是得情况跳出内层循环,然换下一个数字i+1继续实验。当内层循环自然结束的时候,代表该数字是素数,此时应该比对之前的标签c来判断书否应该输出它。然后再通过外层循环自然切换到下一个检索对象i+1。

右边的代码还可以改进,因为除了2的偶数必然不是素数,所以可以将外层循环改成for(i=3;i=是大于等于。

23. 输出对称矩阵:

分成两部分输出,输出下半部分的时候注意i的取值和范围,最好到这取值,不然j和k就会有问题。

24. 关于字符:

一个字符常量代表ASCII字符集中的一个字符,所以C语言中字符在内存中只占一个字节,存放的是字符的ASCII代码值。

字符常量只能包含一个字符,所以‘abc’是非法的。

字符常量只能用单引号括起来,而不能用双引号。例如”a”是一个字符串常量,而不是字符常量。

大小写字符间相差32,从A到Z,到a到z递增,A65,a97.

转义字符常量中,’\n’’\101’’141’只代表一个字符。反斜线后可以跟一个八进制数来表示一个ASCII字符,其后的八进制数可以不用0开头。也可以在反斜线后跟一个十六进制数,反斜线后的十六进制数只可以由小写x开头,不能用大写X,也不可以用0x开头。

字符串常量和字符常量的区别就是,字符串常量包含了一个`\0`,因此‘a’的长度会比”a”的长度少一位。

字符量可以作为整型量参与任何整数运算,作为ASCII码。注意字符9和整数9是有区别的。

在用scanf混合输入字符和数字时,要注意数据的输入方式。10a 20c之类的。在int中,可以用空格来做数据的分隔;但是在char中,tab和空格键和回车键都会被作为字符录入,并且按下回车键才开始读入数据。

scanf(“%4c”)

调用对字符和字符串进行处理的库函数时,应该包含头文件ctype.h。include

再循环输入字符的时候,要求以什么什么结束输入的时候常用while((ch=getchar())!=’@’);while((ch=getchar())!=‘\n’);

while((ch=getchar())!=’\0’);for(cn=0;getchar()!=’@’;cn++)之类的句子来控制循环条件。

25. 关于函数:

函数名必须是唯一的!!不能与自己定义的任何变量重名。

函数定义的时候,形参的类型名不能省略。返回值的类型名函数名(类型名 形参1,类型名 形参2).

不能在函数内部定义函数,main函数也是,定义函数应该在main函数外部。

若省略函数返回值的类型,则系统默认为int类。

void类函数无返回值。只用于完成操作。

在同一个函数内,可以出现多个return,无论函数体里有多少个return,return语句只能执行一次。Return语句中也可以不含表达式,这时函数必须为void类。函数体内也可以不含return,此时也为void类。

函数必须先定义再调用(返回值类型为int和char时除外),或者先声明在调用在定义。

关于函数声明,先定义后调用的函数不用声明。最好在main函数外部声明,这样持久有效。声明格式类型名 函数名(参数类型1 参数名1,参数类型2 参数名2……)其中的参数名只是摆设,可以是任意的,也可以省略。

在调用函数时,实参把值传递给形参进行函数运算,结束以后返回函数值。但是这不会改变实参的值。在使用时要注意。如果想改变实参的值,可以利用传地址的方法。

26. 强制类型转换(int) 3.33114

27. 关于指针:

注意指针的基类型,在用&给指针变量赋地址值的时候,如int k=1,*p;p=&k;

&右边的对象的类型必须和指针变量的基类型相同。

当有q=&k时,scanf(“”,&k)和scanf(“”,q)等价。

《C语言程序设计》说课稿范文(14)

语言程序设计

一、基本信息

课程代码:【】

课程学分:【】

面向专业:【机械制造】、【微电子】等专业

课程性质:【通识教育基础】

开课院系:【信息技术学院计算机科学与技术系】

使用教材:主教材【《语言程序设计与运用》 张晓东等 人民邮电出版社年再版】

辅助教材【《程序设计(第四版)》 谭浩强 清华大学出版社 年月】

参考教材【 (美国) . 和 . 机械工业出版社 第版】

网络资源【维基百科 】

先修课程:【高等数学(下)】、【微型计算机系统 】

二、课程简介

程序设计是理工类各专业的必修课程之一,重在培养学生逻辑思维能力和面向过程的程序设计方法,为今后进一步学习面向对象程序设计打下基础。

通过本课程的学习,使学生运用语言的基本语法和语义,并能进行代码级程序设计;使学生学会从计算机角度思考问题,从而具备解决简单实际问题的程序设计能力;并能把语言作为程序设计的基本工具使用,为今后学习各种以语言为描述工具的后继课程打下基础,也为毕业后可能从事的软件设计与开发工作打好扎实的基础。

本课程教案特点之一:不是简单的按教材上课,而是循序而进,分模块教案,渐进式引导学生学习语言程序设计。其中第一模块 简单程序设计,第二模块 模块化程序设计,第三模块 复杂数据类型程序设计。实践环节也根据教案模块分为三大块,每个模块均包括三个实验,共九个实验。 本课程教案特点之二:注重运用能力的培养,强化实践教案,通过课内外上机实践,提高程序设计能力。

三、选课建议

本课程的前导课程是理解计算机系统简况的课程,例如《计算机导论》。本课程是各种课程设计中需要使用的程序设计工具,更是用来精确地说明有关概念和方法的描述工具。本课程也是面向过程的程序方法的代表课程,更为今后进一步学习面向对象程序设计打下基础。

四、课程与培养学生能力的关联性

自主学习

表达沟通

专业能力

尽责抗压

协同创新

服务关爱

信息运用

国际视野

软件开发

程序调试

撰写技术文档

软件测试

五、课程学习目标

本课程着重培养学生阅读程序或程序模块的基本能力,按照指定的算法和数据结构设计较简单的程序或程序模块的能力。通过本课程的学习,使学生:

()运用语言的基本语法规则和语义

理解各种类型的数据在程序设计中的作用,能正确地定义各种类型的变量,运用常用的数据类型和数据存贮类型,能正确地书写各种类型的常量。理解各种类型语句的执行效果,能正确地使用各种语句,以及各种嵌套的控制结构描述计算的过程。

()具有一定的阅读程序的能力

能理解给定的程序或程序段中所描述的数据结构及算法的设计思路,汲取经验。

()能进行简单的代码级的程序设计

能按以一定方式包括自然语言、伪代码和流程图给出的设计要求,编写语法和语义都正确的语言源程序或函数定义。理解并使用结构化和模块化的程序设计方法解决简单实际问题。

()具有一定的上机操作能力

熟练运用一种语言开发环境的运用,如;熟练运用源程序的编辑、编译和连接等各阶段的操作步骤,能生成小规模的源程序对应的可执行程序。初步理解并能运用基本的程序调试方法调试程序,解决程序逻辑方面的问题。

六、课程内容

第章 概论

理解程序设计语言在计算机系统中的地位和作用;语言基本特点和发展简况;源程序和可执行程序;编译系统的作用。

理解源程序的结构;源程序编辑、编译、连接和执行等上机操作过程;源程序的语法错误和逻辑错误。

本章重点是以一个简单计算问题的简单源程序为例,介绍源程序的结构、及从源程序到可执行程序的处理全过程。

第章 算术类型数据

理解常量、数据类型及变量的概念;各种数据类型的值范围和内部存贮格式;算术类型数据的输入和输出,常用库函数。

熟练运用常量的原形式;常用基本数据类型的变量定义。

本章重点是要注意各种不同类型的变量和常量的作用以及它们的区别;设计程序的过程中选择数据类型的一般方法。

第章 基本运算和表达式

理解基本运算的属性包括功能、目数、优先级、结合性、副作用、可截断性;运算执行时的自动类型转换;数值计算表达式;判断情况的表达式;条件表达式。

熟练运用算术运算( * );赋值运算( θ );关系运算( < < > > );逻辑运算( ! );位运算(> ~ ^ )。

本章重点注意各种不同基本运算的功能,以及对参加运算的数据的类型要求。特别注意:

()算术常规转换和赋值转换这二个自动类型转换规则的效果,以及对计算结果的影响。

()增减运算的副作用。

()逻辑与、逻辑或运算的可截断性。

()表示的真假规则,包括关系运算及逻辑运算的结果类型和结果值,能以值的计算和情况的判断为例,结合表达式展示基本运算的作用和各种特性。

第章 算法与语句

理解语句和流程控制结构概述。理解语言语句的类型。运用常用基本算法,基本语句包括表达式语句、复合语句、空语句;选择结构语句;循环结构语句等解决具体问题。

熟练运用和语句、语句、和语句设计程序,及上述语句的执行流程和功能;循环的嵌套的运用。

本章重点是表达式与语句的区别。条件嵌套的匹配;、语句与语句的比较;尤其是语句的执行流程、计数型循环和条件型循环语句的不同设计、语句的综合运用。

教案建议以选择为重点,分析语句的执行流程;重视对情况进行判断的表达式的构造,进一步熟练地使用各种关系运算和逻辑运算等解决具体问题。

第章 数组类型

熟练运用一维数组的定义及引用;数值型数组的输入输出基本处理;字符数组、字符串存贮格式及字符串的输入、输出;

运用数组的典型处理解决具体问题。,如:求数组的最大(小)值、均值,顺序查找,对分查找,选择交换排序,冒泡排序等;字符串的典型处理,如求串长,字符串复制、连接,字符串的字典次序比较等。

重点强调数组在程序设计中的广泛用途、数组变量定义的整体性和处理的个别性;使用循环控制语句,按不同的模式处理数组中的数据,重视下标表达式的构造;以数组处理为背景,综合使用循环控制和选择控制语句,尤其是、形式的控制;重视字符串在字符数组中的存贮格式,结合循环和选择控制语句进行字符串的各种常用处理。

在一维数组的基础上理解二维数组的定义;数组成员的引用及下标表达式;数据的输入输出。理解二维数组的典型处理,如:计算行(列)和、寻找行(列)的最大(小)值、计算上(下)三角阵数据之和等。

注意数组变量定义的整体性和处理的个别性。

本章重点是使用二重循环控制语句,按不同的模式处理数组中的数据,重视下标表达式的构造及运用。

第章 函数

熟练运用函数的定义;函数的调用;函数调用的实现过程。

理解函数调用时的数据传送机制;函数的原型说明;直接递归函数调用的实现过程;变量的存储类与作用域;预处理程序。运用函数调用规则。

理解直接递归函数定义实例,如计算的阶乘,对一个正数倒序输出等。

注意程序设计的模块化方法;在运用函数定义和函数调用的形式的基础上,理解函数调用的实现过程;特别强调函数头的设计要领,通过大量的函数定义训练,详细理解直接递归函数调用的执行过程;

本章重点是函数定义,函数说明和函数调用的三种格式和用途。注意不同存贮类型的变量的生存期限和影响范围的区别。

第章 文件和文件管理

理解文件的基本概念。

运用处理文件的常用库函数:、等。

运用文本文件处理和常用库函数:、、、等。

运用字节文件处理和常用库函数:、、、等。

本章重点是要注意文件与变量在数据存贮方面的区别和用途,文件处理的基本模式:打开、各种处理、关闭等。

七、课内实验名称及基本要求

序号

实验名称

主要内容

实验时数

实验类型

备注

简单程序设计

运用关系运算表示选择条件,掌握简单分支语句的功能和使用。

利用语句掌握计数型简单循环结构的功能和使用。

理解函数在程序设计中的作用,掌握函数的定义方式及调用方式。

设计型

第一模块

模块化程序设计

理解嵌套结构概念,掌握选择嵌套、循环嵌套和复合嵌套结构的使用。

体验模块化程序设计过程。综合利用已经掌握的相关知识进行程序设计。

设计型

第二模块

复杂数据类型程序设计

掌握一维数组的典型处理。

掌握字符串的典型处理。

掌握文件操作的常用方法及相应语句的应用技巧,用函数的编程方法来处理结构数组。

设计型

第三模块

总评构成()

()

(、、……)

评价方式

期终闭卷笔试

模块测验一 模块测验二 实验及平时成绩

与两项所占比例

八、评价方式与成绩(必填项)

本课程采用闭卷笔试方法进行考试

平时成绩权重为: (实验 课外讨论 作业 。

撰写:甘家宝 系主任审核:

《C语言程序设计》说课稿范文(15)

最长公共子序列

时间限制:3000 ms | 内存限制:65535 KB

难度:3

描述

咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列。

tip:最长公共子序列也称作最长公共子串(不要求连续),英文缩写为LCS(Longest Common Subsequence)。其定义是,一个序列 S ,如果分别是两个或多个已知序列的子序列,且是所有符合此条件序列中最长的,则 S 称为已知序列的最长公共子序列。

输入

第一行给出一个整数N(0

《C语言程序设计》说课稿范文(16)

二○一一年 九 月

设计要求

题目三 通讯录管理系统

任务:自学C语言中相关知识,设计出通讯录管理系统。要求如下所述:

◆ 建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子邮箱等;;

◆ 能够提供添加、删除和修改通讯录信息的功能,并给出确认是否保存或删除记录的提示信息;

◆ 能够提供按姓名或电话等查询并显示相应记录信息;

◆ 将通讯录保存在文件中;

◆ 能够按表格方式输出通讯录信息。

二、要求

◆ 为了保证所有的数据可以长期被使用,要求程序能将相关数据存储在外部数据文件中,具体数据格式和文件名、路径等自定;

◆ 根据所设计的算法,定义相应函数分别实现系统的各子功能模块,同时由主程序提供友好的用户界面,使用户可通过选择主菜单来调用课程设计中要求完成的各个功能模块,子程序执行完后可返回到主菜单,继续选择其他功能执行。源程序要求书写规范,结构清晰。重点函数的重点变量,重点功能部分均要求给出清晰的程序注释。

◆ 程序编译、链接成功后,自己设计实现程序功能的一组或多组测试数据,并严格按照此测试数据进行测试,然后分析测试结果。如果程序不能正常运行或结果不正确,则需对程序进行单步调试,在调试过程中认真查找算法实现中存在的问题,并加以分析和修正。

程序详解

首先,定义结构体

struct student

{

long num;//用于存储学号

char name[20];//姓名

int age;//年龄

long telephone;//电话号码

char adress[40];//地址

char E_mail[30];//邮箱

int QQ[12];//增设的QQ一栏

struct student *next;//用于存放下一级指针

}first;

first为第一个节点,继而在其后动态的开创若干节点。

以下是用于链表处理的各个函数:

struct student * creat(struct student *p) //输入函数

void printall(struct student * head) //显示所有记录

struct student * delet(struct student *head) //删除函数

struct student * insert(struct student *head) //插入函数

struct student *searchbynum(struct student *head) //按学号查找

struct student *searchbyname(struct student *head) //按姓名查找

struct student *search(struct student *head) //查找函数

menu_select() //选择函数

以下是各个函数的详细说明:

Creat()函数用于创建链表,其中以n记录节点的个数,并在创建时实现自加,以便于后面函数的处理,其循环输入的实现,依靠库函数malloc()和后面的while循环。

Printall函数用于显示当前的的所有记录,依靠头指针找到链表首地址,有while循环实现所有记录的输出。

Delet()函数用于删除某个记录,删除可以按姓名或学号这两种方式进行的,但本程序中没有这个功能即只可以按学号进行删除(因为学号唯一)。

Insert()函数用于插入,同样以头指针找到链表的首地址,并将要插入的学号依次与各个节点中得num比较,然后按顺序将一个节点插入。

Search()函数用于查找,查找函数提供了两种方式,即按姓名查找和按学号查找。在search()函数中可以按提示调用searchbyname()和searchbynum()。

Menu_select() 函数用于提供函数选项,旨在简化主函数。

流程图

此即为该程序的主流程图。

源程序

以下是详细的源程序及部分注释:

#include

#include

#include

#include

#include

#define NULL 0

#define LEN sizeof(struct student)

#define SHU "%d\n%s\n%5d\n%ld\n%s\n%s\n%s"

int n;

struct student

{

long num;

char name[20];

int age;

long telephone;

char adress[40];

char E_mail[30];

int QQ[12];

struct student *next;

}first;

struct student * creat(struct student *p) //创建链表的函数,即输入函数

{

struct student *head;

struct student *p1,*p2;

n=0; //先给n赋值0

p1=p2=(struct student*) malloc(LEN);//强制类型转换

printf("\t\t\t**************** 请输入用户信息 ****************\n");

printf("\t\t\t输入学号:\n");

scanf("%ld",&p1->num);

printf("\t\t\t输入姓名:\n");

scanf("%s",&p1->name);

printf("\t\t\t输入年龄:\n");

scanf("%d",&p1->age);

printf("\t\t\t输入电话:\n");

scanf("%ld",&p1->telephone);

printf("\t\t\t输入地址\n");

scanf("%s",&p1->adress);

printf("\t\t\t输入E-mail:\n");

scanf("%s",&p1->E_mail);

printf("\t\t\t输入QQ\n");

scanf("%s",&p1->QQ);//40

head=NULL;

while(p1->num!=0)

{

n=n+1; //实现n的自加,记录节点的个数

if(n==1)

head=p1;

else

p2->next=p1;

p2=p1;

p1=(struct student *) malloc(LEN);

printf("\t\t\t**************** 请输入用户信息 ****************\n");

printf("\t\t\t输入学号:\n");

scanf("%ld",p1->num);

printf("\t\t\t输入姓名:\n");

scanf("%s",p1->name);

printf("\t\t\t输入年龄:\n");

scanf("%d",p1->age);

printf("\t\t\t输入电话:\n");

scanf("%ld",p1->telephone);

printf("\t\t\t输入地址\n");

scanf("%s",p1->adress);

printf("\t\t\t输入E-mail:\n");

scanf("%s",p1->E_mail);

printf("\t\t\t输入QQ\n");

scanf("%s",p1->QQ);

}

p2->next=NULL;

return 0;

}

void printall(struct student * head) //显示所有记录

{

struct student *p;

printf("\n全部的记录如下\n:");

p=head;

do

{

printf(SHU,p->num,p->name,p->age,p->telephone,p->adress,p->E_mail,p->QQ);

p=p->next;

}while(p!=NULL);

}//80

struct student * delet(struct student *head)//删除函数

{

long num;

printf("请输入要删除的号码:\n");

scanf("%ld",&num);

struct student *p1,*p2;

if(head==NULL)

{

printf("列表为空!n");

return head;

}

p1=head;

while(num!=p1->num&&p1->next!=NULL)

{

p2=p1;

p1->next;

}

if(num==p1->num)

{

if(p1==head)//要删除的节点为首节点

head=p1->next;

else

p2->next=p1->next;

printf("delet:%d\n",num);

n=n-1;//节点减一

}

else

printf("%d 未找到该节点!\n",num);

return head;

}

struct student * insert(struct student *head)//插入函数

{

struct student *stud;

struct student *p0,*p1,*p2;

p1=head;

p0=stud;//p0指向的是要插入的节点

if(head==0)

{

head=p0;

p0->next=NULL;//120

}

else

{

while((p0->num>p1->num)&&(p1->next!=NULL))

{

p2=p1;

p1=p1->next;

}

if(p0->numnum)

{

if(head==p1)

head=p0;//插入到原来第一个节点之前

else

p2->next=p0;

p0->next=p1;//插入到p2所指的节点之后

}

}

n=n+1;

return head;

}

struct student *searchbynum(struct student *head)//按学号查找

{

long numb;

printf("请输入要删除的号码:\n");

scanf("%ld",&numb);

struct student *p;

p=head;//147

scanf("%ld",&numb);

if(numb!=p->num)

p=p->next;

else

printf(SHU,p->num,p->name,p->age,p->telephone,p->adress,p->E_mail,p->QQ);

return head;

}

struct student *searchbyname(struct student *head)//按姓名查找

{

char a[100];

printf("请输入要查找的姓名:\n");

scanf("%s",a);

struct student *p;

p=head;

scanf("%s",a);

if(strcmp(a,p->name)!=0)

p=p->next;

else

printf(SHU,p->num,p->name,p->age,p->telephone,p->adress,p->E_mail,p->QQ);

return head;

}

struct student *search(struct student *head)

{

char choic;

printf("\t\t\t1-按电话号码查找 2-按姓名查找");

printf("\t\t\t请选择:");

choic=getch();

switch (choic)

{

case "1":searchbynum(&first);break;

case "2":searchbyname(&first);break;

}

return head;

}

int menu_select()

{

char s[80];

int a;//定义整形变量

system("cls");

printf("\t\t***********欢迎进入通讯管理界面********\n\n");

printf("\t\t\t0. 输入记录\n");

printf("\t\t\t1. 显示记录\n");

printf("\t\t\t2. 查找\n");

printf("\t\t\t3. 插入记录 \n");

printf("\t\t\t4. 删除记录\n");

printf("\t\t\t5. Quit\n");

printf("\t\t***********************************************\n\n");

do{

printf("Enter you choice(0~5):");

scanf("%s",s);

a=atoi(s);

}

while (a5);

return a;

}

main()

{

printf("\t\t************************************************\n");

printf("\t\t********welcome to TONGXUNLU *******************\n");

printf("\t\t###########code by 陈国警 ###################\n");

printf("\t\t*************************************************\n");

printf("按任意键进入主菜单\n");

getch();

int selectnum; //选择函数,提示选择各种链表处理函数。

while(1)

{

selectnum = menu_select();

switch(selectnum)

{

case 0:

{

creat(&first);

break;

}

case 1:

{

printall(&first);

break;

}

case 2:

{

search(&first);

break;

}

case 3:

{

insert(&first);

break;

}

case 4:

{

delet(&first);

break;

}

case 5:

{

printf("BYE BYE!\n");

system("pause"); //系统暂停

getchar();

exit(0);

}

}

}

getchar();

return 0;

}

以下是部分运行结果:

初始化的界面

选择界面:

创建链表中的输入界面:

查找中的提示界面:

限于篇幅,运行结果就只列举这么多。

上机总结

这是自从学习C语言以来我编写过的最大的一个程序,编写的时候遇到了前所未有的困难。因为这个程序所涉及到的知识,全部是要靠自学掌握的。期间我问过很多人,都说这个没有可能做出来,我也一度想放弃,而且在假期也没有时间没有条件来编写这个程序。后来还是勉强做了,这也是这个程序中有很多不足之处的原因。比如这个程序未能做到将文件保存到磁盘中,这是最明显的一个缺点。然后其中还有一些可以简化的地方,也有一些可以让界面更加友好的地方(如上面提到的删除可以按姓名和学号两种不同的方式)。

总之可以改进的地方很多。但这个程序可以说是自己一点一点设计而来,还是能让人感到一点成就感的。

另外一点就是以后虽然不再学习C语言,但自己在下面也应该勤于练习,不能把这门技能给丢了,我们应该为我们的以后着想。

《C语言程序设计》说课稿范文(17)

C语言程序设计报告


江西科技师范大学

C语言程序设计报告

题目:ATM机操作系统的简单开发

姓名:唐智德

学号:

专业:计师1班

指导老师:郑睿颖

一,需求分析

二,设计思路

三,详细设计

1.功能关系图

2.函数的主要关系图

四,调试分析与编程心得体会

五,用户手册

六,源程序代码

一,需求分析

1.设计一个模拟自动取款机ATM,有常用的功能。

2.主要功能: 取款,查询余额,存款等。

3.程序执行的命令包括:(1)进入主目录界面(2)执行取款,查询余额,修改密码,存款等功(3)结束退出程序。

二,设计思路

设计一个常用的自动取款机,要包括常见的功能:查询余额,修改密码,存款等。先要进入主目录界面,所以要写一个主目录函数。然后每一个功能分别用一个函数来实现,最后用一个结束函数来结束用户的操作。

二,详细设计

1.功能模块图

2.程序流程图

四,调试分析与编程心得体会

1.调试分析

(1)开始界面

(2)用户登录

(3)菜单

(4)取款

(5)存款

(6)余额查询

2.小结

在这3个星期里,我们在老师的带领下进行了C语言程序实践。在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。在这次实践中,我加深了对课堂讲授内容的理解,熟悉了程序开发环境、学习计算机系统的操作方法,并学会了上机调试程序。

六,源程序代码

#include""f元\n\n\n\n",money); f元\n\n\n\n\n",money-100);break;

case 2:

printf("\n\n\\n\t您取了$300元\n\t\t\t卡里余额是$%.2f元\n\n\n\n\n",money-300);break;

case 3:

printf("\n\n\\n\t您取了$1000元\n\t\t\t卡里余额是$%.2f元\n\n\n\n\n",money-1000);break;

case 4:

printf("\n\n\\n\t您取了$3000元\n\t\t\t卡里余额是$%.2f元\n\n\n\n\n",money-3000);break;

default:printf("\n\n\t\t输入有误,请在1~4之间选择。\n\t\t\t");

}

system("pause");

system("cls");

goto loop;

break;

case 3:

float x;

printf("\n\n\n\t\t\t请输入存款金额:\n");

printf("\t\t\t\t [ ]\b\b\b\b\b");

scanf("%f",&x);

printf("\n\n\n\t\t\t正在交易请稍后...:\n");

system("pause");

system("cls");

printf("\n\n\n\n\t\t存款成功!您的余额为:%\n\n\n\n",money+x);

system("pause");

system("cls");

goto loop;

break;

case 4:

system("cls");

printf("\n\n\n\n");

printf("\t\t\t 谢谢你的使用 \t\t\n");

printf("\t\t\t THANKS \t ");

printf("\n\n");

break;

}

}

本文来源:https://www.czhuihao.cn/wendang/156348/

《《C语言程序设计》说课稿范文17篇.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式

推荐阅读

开展公安执法规范化建设工作总结报告范文(通用3篇)

开展公安执法规范化建设工作总结报告范文(通用3篇)

“公安”一般称为“人民公安 "(英文:People sPublicSecurity),在中国一般称为“公安”的警察特指的是公安机关中的人民警察。“公安警察“是维护国家与公民安全的人民警察,简称“公安民警”。以下是小编为大家收集的开展公安执法规范化建设工作总结报告范文(通用3篇),仅供参考,欢迎大家阅读
2024-04-28
党支部标准化规范化建设工作总结报告范文三篇

党支部标准化规范化建设工作总结报告范文三篇

报告使用范围很广。按照上级部署或工作计划,每完成一项任务,一般都要向上级写报告,反映工作中的基本情况、工作中取得的经验教训、存在的问题以及今后工作设想等,以取得上级领导部门的指导。以下是小编整理的党支部标准化规范化建设工作总结报告范文三篇,仅供参考,希望能够帮助到大家。
2024-04-28
县退役军人事务局2022年平安建设工作总结报告(锦集3篇)

县退役军人事务局2022年平安建设工作总结报告(锦集3篇)

报告使用范围很广。按照上级部署或工作计划,每完成一项任务,一般都要向上级写报告,反映工作中的基本情况、工作中取得的经验教训、存在的问题以及今后工作设想等,以取得上级领导部门的指导。下面是小编为大家整理的县退役军人事务局2022年平安建设工作总结报告(锦集3篇),欢迎大家借鉴与参考,希望对大家有所帮助
2024-04-28
2022年党支部标准化规范化建设工作总结报告范文(精选3篇)

2022年党支部标准化规范化建设工作总结报告范文(精选3篇)

党支部规范化建设达标创建工作中,我市坚持稳步推进,分步从培训、摸底、施策三项基础性工作做起,努力围绕“创建标准基层掌握、支部底数清楚明白、实施方案简洁明了”的目标,为下一步达标创建奠定了坚实的基础。以下是为大家整理的2022年党支部标准化规范化建设工作总结报告范文(精选3篇),欢迎品鉴!
2024-04-28
意识形态工作情况总结报告范文(精选六篇)

意识形态工作情况总结报告范文(精选六篇)

意识形态,哲学范畴词汇,是指一种观念的集合。也可以理解为对事物的理解、认知,它是一种对事物的感观思想,它是观念、观点、概念、思想、价值观等要素的总和。意识形态不是人脑中固有的,而是源于社会存在。以下是为大家整理的意识形态工作情况总结报告范文(精选六篇),欢迎品鉴!
2024-04-28
网站内容来自网络,如有侵权请联系我们,立即删除! Copyright © 惠好考试网 京ICP备16605803号