《C语言基础课程标准.doc》由会员分享,可在线阅读,更多相关《C语言基础课程标准.doc(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 C语言基础课程教学大纲课程名称 :C语言基础课程代码:课程性质:必修课课程类型:理实一体化计划学时:64计划学分:4校企开发:否考核方法:过程性考核适用专业:机电一体化技术一、课程教学设计(一)课程定位C语言程序设计是大学计算机基础教学系列中的核心课程。该课程重在培养学生掌握计算机程序设计的思想和方法,初步具有在本专业领域应用计算机的能力,为进一步学习后续课程打下坚实的基础。本课程要求掌握程序设计语言的基本知识,主要是程序设计语言的语法知识,这是程序设计的基本工具;掌握程序设计的方法与技术,主要是程序设计的基本方法和基本技术,包括程序设计方法学、数据结构与算法基础等方面的内容,这是程序设计的
2、核心;具有根据给定算法设计和调试程序的初步能力,并掌握一批简单的数值计算和非数值计算常用算法,这是程序设计能力的具体体现。本课程是一门实践性很强的课程,上机和实训是本课程教学的重要环节。(二)课程设计理念与思路老师讲授理论,学生上机进行操作训练(三) 教学内容选取与组织第1章 C程序设计的初步知识(3学时+2学时)教学要求:掌握main函数和其他函数的构成、源程序的书写格式、C语言中的标识符命名方法和关键(保留)字、标题(头)文件的引用,了解注释的作用。教学内容:1.1 C语言的产生和发展1.2 C程序的基本结构和书写风格1.3 简单的C程序设计1.4 C程序的开发过程1.5 Visual C
3、+ 6.0集成环境的使用教学难点:C程序开发过程及其上机步骤教学重点:C语言特点,简单的C程序第2章 基本数据类型(2+2学时)教学要求:掌握基本数据类型的含义及其定义方法,常量的表示、符号常量和变量的定义方法,以及输入输出函数的使用,了解类型修饰的使用和功能。教学内容:2.1 基本数据类型2.2 常量及其类型2.3 变量的定义及初始化2.4 符号常数2.5 不同类型数据的输入输出教学难点:格式输入输出中的格式控制字符以及scanf应该注意的一些细节问题教学重点:数据类型的概念、常量的表示和变量的定义第3章 数据运算(3学时+4学时)教学要求:熟悉各种运算符的优先级和结合性、不同类型数据间的转
4、换和运算规则,掌握赋值表达式、算术表达式、关系表达式、逻辑表达式、逗号表达式的书写方法和求值规则。教学内容:3.1 算术运算3.2 赋值运算3.3 逗号运算(顺序运算)3.4 关系运算和逻辑运算3.5 测试数据长度运算符sizeof3.6 位操作3.7 常用数学函数教学难点:各种数值型数据间的混合运算以及各运算符的优先级教学重点:运算符与表达式的相关知识第4章 程序流程控制(6学时+6学时)教学要求:掌握用if-else、switch和break实现选择结构,用for、do-while和while实现循环结构的方法,选择结构和循环结构的嵌套使用,了解goto语句和标号的使用。教学内容:4.1
5、结构化程序设计的三种基本结构4.2 选择结构程序设计4.3 循环结构程序设计4.4 转移控制语句教学难点:用if和switch语句实现的多分支结构,循环的嵌套 教学重点:三种基本程序控制结构,两种选择结构,三种循环结构第5章 数组和字符串(4学时+4学时)教学要求:掌握数组的定义、初始化和引用方法,掌握数组在数值计算、数据统计、排序和数据检索方面的应用。教学内容:5.1 数组的概念5.2 数组的定义和初始化5.3 数组的基本操作5.4 数组的应用教学难点:与数组应用有关的简单算法教学重点:数组的概念、类型、定义和初始化第6章 指针(4学时+2学时)教学要求:掌握指针与地址运算符(&、*、)的使
6、用和指针的运算,熟悉用指针访问变量、一维数组和二维数组的方法,了解用指针进行内存动态分配的方法和内存动态分配函数。教学内容:6.1 地址、指针和指针变量的概念6.2 指针的定义和用指针访问变量6.3 指针的运算6.4 用指针访问一维数组6.5 用指针访问二维数组6.6 用指针处理字符串6.7 多级指针6.8 用指针进行内存动态分配教学难点:用指针访问二维数组和处理字符串,内存动态分配函数教学重点:指针的基本概念,用指针访问变量及数组的方法,内存的动态分配第7章 函数(2学时+4学时)教学要求:掌握函数的定义和调用方法,函数间的数据传递,函数的嵌套调用和递归调用,变量的作用域和生命期,了解内部函
7、数和外部函数的概念。教学内容:7.1 模块化程序设计的思想7.2 函数的定义和调用7.3 调用函数和被调用函数之间的数据传递7.4 存储类型对函数调用的影响7.5 函数的递归调用7.6 内联函数7.7 main()函数的参数和返回值教学难点:函数的递归调用,函数的值传递和指针传递,变量和函数的作用域和生命期教学重点:函数的定义、说明、调用,函数的返回值和参数传递第8章 复合数据类型(4学时+2学时)教学要求:掌握结构和联合类型数据的定义方法和引用方法,用指针访问结构和联合的方法,类型定义的作用和使用方法,了解位段和枚举类型数据的定义方法和引用方法。教学内容:8.1 结构类型8.2 联合类型8.
8、3 位段结构类型8.4 枚举类型8.5 类型定义(typedef)教学难点:结构在函数间的传递,用指针处理链表教学重点:结构类型和结构变量的应用,类型定义第9章 文件(2学时+2学时)教学要求:了解文件和文件类型指针的概念,掌握文件的打开与关闭操作、文件读写函数及文件检测和定位函数的使用,顺序文件和随机文件的存取。教学内容:9.1 文件概述9.2 文件的打开与关闭9.3 文件的读写操作9.4 文件检测函数9.5 文件的顺序存取和随机存取教学难点:文件类型指针,顺序文件和随机文件的建立和使用教学重点:文件的基本概念,文件的打开、关闭和读写操作第10 章 编译预处理和分割编译(2学时+4学时综合实
9、验)教学要求:了解三类编译预处理命令的作用,熟悉文件包含的使用。教学内容:10.1 编译预处理10.1.1 宏定义10.1.2 文件包含10.1.3 条件编译10.2 分割编译教学重点:文件包含的使用,用const替代不带参数的宏定义,用内联函数替代带参数的宏定义。(四)教学模式、教学组织形式、学习情景设计(宋体五号 粗体):内容(宋体五号)本课程采取教师讲,学生先学习理论部分,然后学生到机房实践操作,运用所学的理论知识去编写简单的程序进行练习和巩固。在学生实践过程中,教师采取项目驱动的形式,让学生带着任务区操作想,进行学习达到掌握知识的目的。(五)实践课时比例()(宋体五号 粗体):内容(宋
10、体五号)实践课时比例()50%(六)主要授课方式(宋体五号 粗体):内容(宋体五号)教师讲授为主和学生操作结合(七)教学条件基本要求(宋体五号 粗体):内容(宋体五号)1.教学辅助资料:电子课件,计算机2.实验环节:(包括开出项目、实践教学内容、条件与要求)3.作业要求:每章节教师根据需要布置相关的题目,以上机作业为主。4.主要授课场地:普通教室和机房(八)主要考试/考核方法(宋体五号 粗体):内容(宋体五号)本课程采取过程性考核的形式,成绩由出勤、作业、平时表现和期末大作业组成。二、教学总学时分配表(宋体五号 粗体):内容(宋体五号)序号教学内容学 时 分 配理论教学课内实践(实验或实训)课
11、外实践(模拟或实际职业环境)小计1 C程序设计的初步知识32052基本数据类型22043 数据运算34074程序流程控制660125数组和字符串44086指针42067函数24068复合数据类型42069 文件220410 编译预处理和分割编译2406合 计3232064三、教学内容和要求(宋体五号 粗体):内容(宋体五号)本课程是计算机类专业的一门专业基础课。引导学生进入计算机程序设计的广阔空间、培养学生的逻辑思维能力、抽象能力和基本的计算机程序设计能力是课程的主要任务。本书从结构化程序设计技术出发,以C程序设计语言为载体,通过对应用问题的分析引导出解决问题的方法,进而用C程序设计语言代码描
12、述了对应用问题的处理过程,同时展现了在计算机应用过程中如何将方法和编码相联系的具体程序设计过程。通过对本课程的学习,使学生对计算机系统有一个初步的正确的认识,学会阅读用计算机程序设计语言编写的简单应用程序,掌握结构化程序设计的基本方法和用计算机解决实际问题的基本步骤,训练学生的逻辑思维能力,培养其严谨的思维方式和良好的程序设计风格。为进一步学习其它专业基础课程和专业课程打下良好的基础。四、 课内实验大纲(本内容限于有实验内容但在教学计划中不独立设课的课程填写)项目1、学生信息管理(1)问题描述学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,
13、使之能提供以下功能:系统以菜单方式工作学生信息录入功能(学生信息用文件保存)-输入学生信息浏览功能-输出查询、排序功能-算法按学号查询、按姓名查询、学生信息的删除与修改(可选项)(2)功能要求界面比较美观;有一定的容错能力,比如输入的成绩不在0100之间,就提示不合法,要求重新输入;最好用链表的方式实现。(3)算法分析首先,一个学生包括这么多的属性,应该考虑定义一个结构,其次,我们应该考虑数据的存储形式:是定义一个数组来存储,还是定义一个链表呢?在这里假如我们以数组的方式来存储,当然可以,但是我们知道,假如我们定义一个数组的话,我们首先必须知道学生人数大概是多少,以便我们确定数组的大小,但是题
14、目中没有给出,而且题目要求中有大量的删除、插入操作,所以用链表的方式比较方便。对于菜单的实现,其实也比较简单,首先我们用printf语句把程序的功能列出来,然后等待用户输入而执行不同的函数,执行完了一个功能后又回到菜单。文件的读写操作大家参照书中的有关文件的章节。项目2、学生综合测评系统每个学生的信息为:学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%,10%,10%,20%。A、学生信息处理(1) 输入学生信息、
15、学号、姓名、性别、家庭住址、联系电话,按学号以小到大的顺序存入文件中。提示:学生信息可先输入到数组中,排序后可写到文件中。(2) 插入(修改)同学信息:提示:先输入将插入的同学信息,然后再打开源文件并建立新文件,把源文件和输入的信息合并到新文件中(保持按学号有序)若存在该同学则将新记录内容替换源内容,(3) 删除同学信息:提示:输入将删除同学号,读出该同学信息,要求对此进行确认,以决定是否删除将删除后的信息写到文件中。(4) 浏览学生信息:提示:打开文件,显示该文件的学生信息。B、学生数据处理:(1) 按考试科目录入学生成绩并且按公式:考试成绩(语文+数学+外语)/3 计算考试成绩,并计算考试
16、名次,提示:先把学生信息读入数组,然后按提示输入每科成绩,计算考试成绩,求出名次,最后把学生记录写入一个文件中。(2) 学生测评数据输入并计算综合测评总分及名次。提示:综合测评总分(考试成绩)*0.6+(同学互评分)*0.1+品德成绩*0.1+任课老师评分*0.2。(3) 学生数据管理提示:输入学号,读出并显示该同学信息,输入新数据,将改后信息写入文件(4) 学生数据查询:提示:输入学号或其他信息,即读出所有数据信息,并显示出来。C、学生综合信息输出提示:输出学生信息到屏幕。项目3、学校运动会管理系统问题描述: (1) 初始化输入:N-参赛院系总数,M-男子竞赛项目数,W-女子竞赛项目数;(2
17、) 各项目名次取法有如下几种:取前5名:第1名得分 7,第2名得分 5,第3名得分3,第4名得分2,第5名得分 1; (3) 由程序提醒用户填写比赛结果,输入各项目获奖运动员的信息。(4) 所有信息记录完毕后,用户可以查询各个院系或个人的比赛成绩,生成团体总分报表,查看参赛院系信息、获奖运动员、比赛项目信息等。项目4、教师工作量管理系统计算每个老师在一个学期中所教课程的总工作量。(教师单个教学任务的信息为:教师号、姓名、性别、职称、认教课程、班级、班级数目、理论课时、实验课时、单个教学任务总课时)A、教师信息处理(1) 输入教师授课教学信息,包括教师号、姓名、性别、职称、认教课程、班级、班级数
18、目、理论课时、实验课时。(2) 插入(修改)教师授课教学信息:(3) 删除教师授课教学信息:(4) 浏览教师授课教学信息:B、教师工作量数据处理: (1) 计算单个教学任务总课时。计算原则如下表:班级数目单个教学任务总课时2 1.5*(理论课时+实验课时)3 2*(理论课时+实验课时)=4 2.5*(理论课时+实验课时) (2) 计算一个教师一个学期总的教学工作量。总的教学工作量=所有单个教学任务总课时之和。(3)教师数据查询:提示:输入教师号或其他信息,即读出所有数据信息,并显示出来。C、教师综合信息输出提示:输出教师信息到屏幕。项目5、编写一万年历系统要求: 模仿现实生活中的挂历. 当前页
19、以系统当前日期的月份为准显示当前月的每一天(显示出日及对应的星期几).当系统日期变到下一月时,系统自动翻页到下一月.项目6、一元多项式简单的计算器1主要功能:(1)输入并建立多项式;(2)输出多项式;(3)两个多项式相加,建立并输出和多项式;(4)两个多项式相减,建立并输出差多项式。(5)算法的时间复杂度、另外可以提出算法的改进方法实现提示:可选择带头结点的单向循环链表或单链表存储多项式,头结点可存放多项式的参数,如项数等。2.要求:一元多项式简单计算器的基本功能项目7、保龄球计分【问题描述】打保龄球是用一个滚球去撞击10个站立的瓶,将瓶击倒。一局分10 轮,每轮可滚球1 次或多次,以击到的瓶
20、数为依据计分,一局得分为10轮得分之和,而每轮的得分不仅与本轮的滚球情况有关,还可能与后一轮或两轮的滚球情况有关,即:某轮某次滚球击倒的瓶数不仅要计入本轮得分,还可能会计入前一轮或两轮得分。计分规则如下: 若某一轮的第一次滚球就击倒全部10个瓶,则本轮不再滚球(若是第10轮还需加2次滚球),该轮得分为本次击倒瓶数10与以后2次滚球所击倒瓶数之和。若某一轮的第一次滚球未击倒全部10个球,则对剩下未击倒的瓶再滚球一次,如果这2次滚球击倒全部10个瓶,则本轮不再滚球(若是第10轮还需加1次滚球),该轮得分为这2次击倒瓶数10与以后1次滚球所击倒瓶数之和。若某一轮2次滚球未击倒全部10个瓶,则本轮不在
21、滚球,该轮得分为这2次滚球所击倒瓶数之和。【实现提示】模拟10个人各打一局保龄球比赛过程,统计每局各轮得分和累计总分。逐人逐轮逐次输入一次滚球击倒的瓶数。对10人的得分由低到高排序并显示。最后,把排序的存入文件中。项目8、学生成绩统计【问题描述】 学期考试结束,统计有N个班某班每个人的平均成绩,每门课的平均成绩,并按个人平均成绩从高到低的顺序输出成绩,输出不及格人名单。输入、输出格式自定。【实现提示】假设某班有:30人(姓名自定)考试课程有:高等数学、物理、外语、C语言、德育5门课程。将所有同学的成绩保留在文件中,对文件中的数据处理,输出所要求的内容,程序的功能主要包括3方面: 输入成绩到文件
22、中输出成绩输出不及格学生名单成绩排序修改记录删除记录插入记录等主函数中对3个功能选择(菜单),调用对应的函数完成。五、 推荐使用教材及教学参考书(宋体五号 粗体): (内容 宋体五号)1潘旭华,赵玉刚等大学C语言实用教程(“十一五”国家级规划教材)北京:清华大学出版社,20112赵玉刚,潘旭华等大学C语言实用教程实验指导与习题(“十一五”国家级规划教材)北京:清华大学出版社,2011六、大纲实施说明(宋体五号 粗体): (内容 宋体五号)1本课程与其他课程的关系计算机技术基础(C语言程序设计)的前续课程是大学计算机基础,同时也是信息类专业后续多个专业基础课和专业课,如数据结构、操作系统、嵌入式
23、系统、算法分析与设计等课程的基础。2教学手段充分利用多媒体、网络、通讯技术改进计算机教学手段和教学方式,不断提高自身的教学水平和能力,以适应计算机教学的新环境和新对象,推进教学方法的改革,实现由单一的知识传授到能力培养的转变;从一般知识体系的灌输到拓展性学习的转变。在教学过程中采用以下几种教学方法:启发式教学:教学活动关注的重点从结果转向过程。激发思维,师生互动,增强学生学习的主动性、积极性和创造性; 民主教学:以学生为主体,以学习为中心,强化学生的学习主人翁意识。鼓励争辩,课堂氛围宽松和谐; 开放式教学:课上课下融合,校内校外结合。培养学生发散思维,增大学生的学习自主权; 研究式教学:改变灌输式为研讨式、探索式。教师给思路,指点学生自主获取知识; 实践性教学:充分利用实验室,通过上机实习,加强学生的实践能力。 系:执笔人: 主持人: 编制日期: