1、高级语言程序设计课程教学大纲一、课程基本信息课程名称高级语言程序设计学分3总学时48理论学时24实践学时24课程性质专业必修课先修课程计算机导论、计算机应用基础适用专业计算机相关专业二、课程性质与目的课程性质:高级语言程序设计是计算机科学与技术专业的一门专业基础课。通过讲 授高级语言程序设计的基本概念、基本思想、基本方法和基本技能,具备高级语言程序设计 能力,进而学会用C语言解决实际应用问题,提高学生应用计算机解决实际问题的能力。 初步积累编程经验,为学生后续的数据结构、Java基础课程学习、以及毕业设计 的开发与设计奠定专业基础。此课程不仅使学生掌握高级编程语言的知识、编程技术和基本算法,更
2、重要的是掌握程 序设计的思想和方法,具备利用计算机求解各专业实际问题的基本能力。课程的重点集中在 语法知识、程序控制结构、数组、结构体、指针等知识点及其应用。课程目的:该课程采用案例工程式教学,其基本任务是让学生理解并掌握高级语言程序 设计的基本理论、编程技术和基本算法,掌握计算机处理问题的思维方法,应用VC+软件 进行规范化的软件开发,并能将现实生活中遇到的复杂问题抽象为计算模型,分析解决计算 机处理实际问题的过程,激发学习兴趣和潜能,提升计算机语言的学习能力。三、课程目标(一)课程知识目标要求学生掌握C语言程序设计的基本概念和基本方法。主要包括以下内容:1. c语言基础知识:包括C语言的基
3、本数据类型、运算符与表达式;2. C语言基本程序结构:包括顺序结构程序、选择结构程序、循环结构程序;(2)编写程序查找一个英文句子中的最长单词;(3)编写基于递归的冒泡排序程序,并编写测试程序进行测试;(4)编写基于递归的选择排序程序,并编写测试程序进行测试。主要仪器:计算机,Win7系统+CB或VC实验六实验编号:6实验名称:指针及其应用实验学时:2实验类别:验证实验性质:必做实验目的:(1)掌握指针变量的定义与初始化;(2)掌握指针访问一维数组的方法;(3)掌握使用字符指针表示及访问字符串的方法;实验内容:(1)用指针法编写函数myStrcmp(char*t, char*s),实现与Str
4、cmp等价的功能;(2)计算学生总分,并按总分降序输出学生成绩信息,编写测试程序进行测试。主要仪器:计算机,Win7系统+CB或VC实验七实验编号:7实验名称:结构体及其应用实验学时:2实验类别:验证实验性质:必做实验目的:(1)掌握结构体类型的定义;(2)掌握对结构体成员的引用;(3)掌握结构体变量的定义和应用。实验内容:(1)编程设计一个存储手机通讯录的结构体类型,并定义结构体变量,输入某通讯录信息并在屏幕上输出;主要仪器:计算机,Win7系统+CB或VC七、课程成绩考核方法为了达成课程目标,采用的教学环节有课堂教学、在线教学平台(教学视频、留言板、 作业、测试)、课堂实践。目的是让学生通
5、过课程学习,逐步掌握面向对象编程的应用方法 和技巧。1 .课堂教学:课堂讲授以传授基本知识、基本原理、程序设计的基本控制结构、复杂 的数据结构(数组、结构体、指针等)的程序分析与设计方法为主,以提出问题、分析问 题、解决问题、案例应用为主要手段,尽可能多地介绍规范化程序设计的具体应用,结合 算法案例、课堂练习,课后配合在线学习平台教学视频、留言板、作业、测试等多种方式 巩固课堂教学内容。2 .课程成绩:学生应按要求参加全部的课堂教学活动,按要求独立完成作业。期末考试:针对课程的基本知识、程序设计的基本控制结构、复杂的数据结构(数 组、结构体、指针等)的程序分析与设计方法、综合应用等方面进行考核
6、,题型包括填 空题、选择题、简答题、程序设计题等。3 .课程成绩评定包括三个局部:在线平台学习占20 %;实验30%;闭卷考试占50 %。九、教材及参考文献4 .教材:5 .参考书:3. C语言中复杂数据类型及其应用:包括函数的定义和应用、数组的应用、指针的应 用以及结构体的应用。(二)课程素质目标L通过编写程序培养学生耐心、细致、有条理的工作作风,通过调试程序培养学生面对 问题时自信、沉着、冷静的心理素质;2 .培养学生在解决比拟复杂的问题时,把握全局、统筹规划的能力;3 .培养学生相互协作的能力与团队精神;4 .使学生初步建立计算思维(程序化思维)的思想。(三)课程能力目标1 .能够理解、
7、掌握面向过程软件开发的基本概念、基本原理、基本方法及软件开发规 范;2 .掌握软件模块化设计思想,能综合运用程序设计的基本原理和基本方法,对软件开 发中的实际问题进行分析;3 .能够应用软件规范,使用函数进行模块化程序设计,具有在复杂程序中使用数组、 结构体、指针等数据结构解决问题的能力;4 .具有使用现代开发工具进行程序的编写、运行、调试及进一步学习其他计算机语言 的能力;(四)课程德育目标注重在课程课件和实验教学素材中融入思想政治教育的内容,实现思想政治教育工作贯 穿于教育教学全过程,实现知识传授、能力培养与价值引领的有机统一,着力培养有社会责 任、有创新精神、有专门知识、有实践能力、有健
8、康身心的应用型高级专门人才。四、学时分配章节(专题)各章(专题)名称讲授学时实验学时第一章(专题一)C语言概述20第二章(专题二)C语言基础知识22第三章(专题三)算法与c语言程序设计48第四章(专题四)函数44第五章(专题五)数组66第六章(专题六)指针22第七章(专题七)自定义数据类型22第八章(专题八)文件202424五、课程内容及要求1 . C语言概述(理论2学时)1.1 程序设计语言L2C语言简介1.3 C语言程序的基本结构L4C语言程序的开发工具知识要求:(1)能理解程序、程序设计、程序设计语言的基本概念;(2)能安装、使用C语言开发环境;(3)能够编写简单C程序并编译运行;重点:
9、能理解程序、程序设计、程序设计语言的基本概念;安装、使用C语言开发环境;编写简单C程序并编译运行;难点:安装开发环境,编写简单C程序并编译运行;作业:开发环境安装1题,开发工具使用1题2 .C语言基础知识(理论2学时,实验2学时)2.1 C程序中的常见符号2.2 数据类型2.3 运算符与表达式2.4 数据类型转换要求:(1)能使用C语言的基本数据类型及表示范围;(2)能进行C语言变量定义及初始化;(3)能使用C语言算术运算、关系运算、赋值运算和+、-等常用运算符进行数据 运算;(4)能使用赋值相容规那么和强制类型转换;重点:能使用数据类型定义变量和常量;使用各种运算符进行数据运算;能进行数据类
10、型转 换。难点:各种数据类型变量的表示范围;强制类型转换。作业:各类数据运算5题,数据类型转换1题3 .算法与C语言程序设计(理论4学时,实验8学时)3.1 算法与算法描述3.2 顺序结构3.3 选择结构3.4 循环结构要求:(1)能够理解算法的概念及特点,掌握算法的描述方法;(2)能进行简单的顺序结构程序设计;(3)能掌握if语句、if-else语句、嵌套if-else语句及switch多分支语句的使用;(4)能使用while语句,for语句及do while语句实现循环控制;(5)能使用break、continue及goto语句实现程序的跳转;(6)能应用迭代法、穷举法等方法进行问题求解;
11、重点:理解算法与算法表示方法;掌握选择控制结构语句的使用;使用计数法、标记法等循 环控制语句;通过迭代、递推、穷举等方法实现循环程序设计。难点:多分支和多重循环控制的设计方法;利用分支与循环控制语句进行问题求解。作业:选择结构程序设计4题,循环结构程序设计5题4,函数(理论4学时,实验4学时)1.1 函数概述;1.2 函数的定义1.3 函数调用1.4 函数嵌套调用1.5 函数递归调用1.6 变量的作用域与生存期要求:(1)能掌握C语言函数的分类,函数声明的方法;(2)能掌握函数有参、无参,有返回值、无返回值的定义与调用方法;(3)能掌握函数的嵌套调用和递归调用方法;(4)能利用模块化程序设计思
12、想,进行问题求解。(5)能利用变量的作用域与生存期实现数据传递。重点:函数的定义、声明与调用方法;通过函数调用实现参数传递;通过典型问题实现函数 嵌套与递归调用;利用模块化程序设计思想,进行问题求解;利用变量的作用域与生存期实 现数据传递。难点:通过典型问题实现函数递归调用;利用模块化程序设计思想求解问题。作业:函数的定义与调用2题,函数的嵌套与递归调用2题,变量的作用域1题。5 .数组(理论6学时,实验6学时)5.1 一维数组5.2 二维数组5.3 字符数组要求:(1)能对一维数组和二维数组进行定义、引用与初始化;(2)能使用一维数组,实现数据的查找、删除、插入、排序等操作;(3)能够理解字
13、符串的存储结构特点,利用字符数组存储、处理字符串数据;(4)能利用字符串函数处理字符数据;(5)能根据数据特点定义数组存储批量数据,并通过算法实现数据处理;重点:一维数组和二维数组的定义、引用与初始化;数组作函数参数;利用数组对批量数据 进行存储和处理;字符数组的使用。难点:数组作函数参数;利用数组对批量数据进行存储和处理。作业:数组的定义、引用与初始化4题,数组作函数参数2题,字符数组2题。6 .指针及其应用(理论2学时,实验2学时)6.1 指针概述6.2 指针变量6.3 指针与函数6.4 指针与数组6.5 字符指针6.6 指针的高级应用要求:(1)能区分指针与指针变量;(2)能掌握指针变量
14、的定义与初始化,利用指针间接访问变量;(3)能掌握指针作为函数参数进行参数传递,区分值传递与地址传递;(4)能应用指针访问数组,进行指针运算;(6)能理解数据存储空间的动态内存分配。重点:利用指针间接访问变量;应用指针访问数组,进行指针运算;指针数组的定义及使用;动态内存分配。难点:指针作为函数参数进行参数传递;动态内存分配。作业:指针变量的定义与初始化2题,指针与函数1题,指针与数组3题,字符指针3题。7 .自定义数据类型(理论2学时,实验2学时)7.1 结构体变量的定义和使用7.2 结构体数组7.3 结构体指针7.4 动态数据结构要求:(1)能掌握结构体类型与结构体变量的定义;(2)能利用
15、指针访问结构体变量成员;(3)能掌握向函数传递结构体变量;重点:掌握结构体类型与结构体变量的定义;利用指针访问结构体变量成员;利用结构体数 组存储大规模复杂数据对象。难点:应用结构体数组存储复杂对象集合。作业:结构体类型的定义1题,结构体数组2题。8 .文件(理论2学时)8.1 文件概述8.2 文件的翻开和关闭8.3 文件的读/写操作要求:(1)能掌握文件的基础知识;(2)能掌握文件的翻开与关闭操作,实现文件的随机读取及应用;(3)能利用函数,实现文件的读写操作。重点:文件的基础知识;文件的翻开与关闭操作;文件读/写函数的使用。难点:文件读/写函数的使用。作业:文件的翻开和关闭1题。六、本课程
16、的实验环节实验一实验编号:1实验名称:数据类型、运算符与表达式实验学时:2实验类别:验证实验性质:必做实验目的:(1)熟悉实验环境Visual C+ 6.0;掌握变量和常量的概念;(2)掌握整形、浮点型和字符型变量的定义和引用方法;(3)掌握简单算术表达式的书写与求值方法。实验内容:(1)调试程序,并分析程序的输出结果;(2)a为4位整数,编写程序,求其反序数存入变量b后输出;(3)编写程序,立方体的长、宽、高,计算立方体的体积和各侧面面积并输出。主要仪器:计算机,Win7系统+CB或VC实验二实验编号:2实验名称:算法与C语言程序设计实验学时:2实验类别:验证实验性质:必做实验目的:(1)掌
17、握字符输入/输出函数的使用方法;(2)掌握格式输入/输出函数的使用方法;(3)能够应用输入/输出与算术运算符进行顺序结构程序设计。实验内容:(1)编程从键盘输入一个小写英文字母,将其转换成大写英文字母及其十进制的ASCII码值显示在屏幕上;(2)完善实验一(2)程序,要求a为从键盘上输入的4为整数;(3)完善实验一(3)程序,要求能够从键盘上输入立方体的长、宽、高,并计算立方体的体积和各 侧面面积并输出。(4)华氏温度与摄氏温度的转换公式,编写程序从键盘输入华氏温度将其转换成摄氏温度并输 出。主要仪器:计算机,Win7系统+CB或VC实验三实验编号:3实验名称:程序基本控制结构实验学时:6实验
18、类别:验证实验性质:必做实验目的:(1)掌握if语句,if else语句及嵌套if else语句的用法;(2)掌握switch case多分支语句;(3)掌握for语句及do while语句实现循环控制的方法;(4)掌握三种循环控制结构,并设计程序。实验内容:(1)编写输入三条边长a、b、c,判断它们能否构成三角形,假设构成三角形,那么进一步判断此三角形 是哪种类型的三角形;(2)编写一个程序,输入年和月,输出该月有多少天;编写程序从键盘输入一个无符号整数,输出 它的各位数字之和;(3)编写程序求1! +2! +3! +20!的和;(4)编程找到三位数中所有的幻影素数,并统计共有多少对二(5)
19、采用循环程序设计,分别在屏幕中央输出到三角形和棱形图形;(6)编程求正整数a和b的最大公约数;(7)编程解决“百钱买百鸡”的问题。(8)编程分析出正确的母子关系,3个母亲为A、B、C, 3个孩子为X、Y、Z。其中3位孩子的回答 如下:A说她的孩子是X; X说他的妈妈是C; C说Z是他的孩子。主要仪器:计算机,Win7系统+CB或VC实验四实验编号:4 实验名称:函数及其应用实验学时:4实验类别:验证实验性质:必做实验目的:(1)掌握无参数函数,有参数函数的定义与调用方法;(2)熟悉函数声明的方法;(3)初步掌握模块化程序的设计基本思想,并能进行问题求解。实验内容:(1)编写一个函数int su
20、m(int n),求1+2+3+n的和作为函数的返回结果,并编写main函数进行 测试;(2)设计函数bool isSxh(int n)判断整数n是否是水仙花数,假设是那么返回turn,否那么返回false。 编写函数输出所有的水仙花数;(3)编写一个函数print (int n)在屏幕中央按金字塔规律输出n行图形,并编写main函数进行测 试。主要仪器:计算机,Win7系统+CB或VC实验五实验编号:5实验名称:数组及其应用实验学时:6实验类别:验证实验性质:必做实验目的:(1)熟练掌握简单项选择择排序、冒泡排序、二分查找等算法;(2)理解字符串的存储结构特点;(3)能够设计基于一维数组的递归算法程序。实验内容:(1)设计双向冒泡排序程序,并编写测试程序进行测试;