C语言程序设计

作者:高潮 时间:2019-06-10 点击数:

 

                                                                                                           

课程简介

课程大纲

教学团队

教学课件

实验内容

例题代码

考试系统

作业平台

 


一、课程简介 ( 资源下载:https://pan.baidu.com/s/1IGthv_DbYXpZYmtLxSDJyA,提取码:agx8 )

  

 现代科技发展离不开计算机,现代工科大学生需要掌握计算机编程技术,“C语言程序设计”课是我校学习该课程学生人数较多、开设专业也较多的一门必修课。对于应用型本科学生来说,既感受到计算机编程的重要作用,但往往又被复杂繁琐的语法所困扰,被应试教育所累。现代工程教育提出了成果导向的教育理念(Outcome Based Education,OBE),注重应用能力培养、自学能力培养,以案例为导向,淡化知识的系统教学,系统知识可以留待自学和遇到需要时再学习。这样会提高学习兴趣、目的明确、理论结合实际、学以致用。
  传统的“C语言程序设计”课的教学内容偏重语法体系、注重偏、难、怪的语法细节,程序例题、习题脱离实际应用,容易导致以应试为导向,而使学生对该课程的学习目的感觉迷茫,挫伤了学生的学习兴趣,往往课程学完后只是会考试,还是不会编程应用。
  本课程将现代工程教育提出的成果导向的教育理念(OBE)应用于“C语言程序设计”课的教学改革实践,内容突出重点,注重实例,以培养学生的编程能力为重点,淡化意义不大的偏、难、怪的语法细节问题。C语言将是计算机专业学生的入门语言,也是电子信息类、机械控制类学生进一步进行可编程器件、智能设备开发的工作语言。
  目前,学习程序设计一般采用C语言入门,它有诸多适合做编程入门语言的特点:面向过程、结构化程序设计、规范、清晰、功能强、可直接控制底层、可直接访问硬件、与多种语言有相似性、容易再学习新的编程语言等。但C语言的标准输入输出函数使用很不方便也是其一个明显不足,往往花费初学者很多时间和精力进行学习和程序调试。为此本课程仍然采用C语言作为编程基础语言,同时利用C++兼容C的特点,用C++程序进行编程示例,输入输出采用C++的输入输出流技术,其余采用C的语法。这样使学生更多关注于程序结构和算法,掌握程序开发能力,学以致用。
  本课程教学内容分为十三章,分别讲授C语言的基础知识、数据类型、运算符、表达式、程序结构、函数、数组、指针、字符串、构造数据类型、文件等知识,最后一章介绍程序设计综合应用。
  本课程采用上机作业和考试,本网站介绍了实验教学内容、上机作业平台的使用介绍、上机考试系统的使用介绍。五邑大学智能制造学部“C语言程序设计”课程组为本课程编写了教材《程序设计基础》和《程序设计实验指导书》,由清华大学出版社出版。

    返回

 

二、课程大纲

序号

教学内容一一

学生学习  

预期成果  

课内学时

课外学时

教学方式  

1  

教学内容:

l 课程总体情况介绍

l 程序设计的特点和发展历程

l 用计算机求解实际问题的特点程序与程序设计语言

l 程序设计的基本过程和结构

l 介绍一种可视化集成开发环境

重点:

用计算机求解问题的基本特点

程序设计的相关概念和基本过程

程序的基本结构。

难点:

理解用计算机求解问题的基本特点,源程序、目标程序和可执行程序的特征。

l 会列举一种可视化集成开发环境的使用方法

l 会复述相关的基本知识

l 会使用C语言编写“hello world”程序。

2/2

课堂讲授与案例讨论;课后结合MOOC视频资源进行自主学习;上机

2

教学内容:

l 基本数据类型的概念

l 数值型数据类型在内存中的表示及取值范围

l 变量的定义、命名规则、存储与赋值

l 数据类型的转换规则

l 算术、赋值、关系、逻辑等运算符的含义和优先级

l 常用表达式的概念、书写方式和计算规则

l 简单的屏幕输出

重点:

掌握基本的数据类型、变量的定义和赋值、常用运算符和表达式的使用

难点:

理解数据类型的转换、++、--、%、&运算符的操作规则和含义,以及运算符优先级和结合性。

l 能够诠释数据类型的基础知识

l 能正确应用变量的命名规则和赋值方式

l 会使用数据类型的转换、优先级和表达式的基本处理方法。

2/2

课堂讲授与案例讨论;课后结合MOOC视频资源进行自主学习;上机

3  

教学内容:

l 算法的概念和描述方法

l 流程图的绘制方法

l 顺序控制结构的特点

l 顺序控制结构语句的使用方式

l 标准输入输出函数

重点:

顺序控制结构的特点

难点:

绘制流程图和熟练应用输入输出函数

l 能解释顺序控制结构的书写规范

l 对于相关的工程计算问题通过分析和判断知道该问题是否适合采用顺序控制结构求解。

4/4

课堂讲授与案例讨论;课后结合MOOC视频资源进行自主学习;上机

4  

教学内容:

l 条件控制结构的特点和执行过程

l 单分支、双分支、多分支的条件控制语句

l switch语句

重点:

掌握利用条件控制结构设计求解简单的工程计算问题。

难点:

理解嵌套的条件控制结构。

l 能诠释条件控制结构的书写规范

l 对于相关的工程计算问题通过分析和判断知道该问题是否适合采用条件控制结构求解。

4/4

课堂讲授与案例讨论;课后结合MOOC视频资源进行自主学习;上机

5  

教学内容:

l 循环控制结构的特点和执行过程

l for语句、while语句和do-while语句

l 嵌套循环

l 流程的转移控制语句break和continue

l 简单的程序调试技术和方法。

重点:

掌握利用循环控制结构设计累加、累乘、统计等算法的基本方法。

难点:

理解嵌套的循环控制结构的流程控制,以及break语句和continue语句的作用和区别。

l 能诠释循环控制结构的书写规范和程序调试技术

l 能应用循环结构实现累加、累乘、统计、迭代等常用算法

l 对于稍复杂的工程计算问题通过综合分析能够综合应用三种控制结构实现实现解决方案。

4/4

课堂讲授与案例讨论;课后结合MOOC视频资源进行自主学习;上机

6  

教学内容:

l 常用的标准函数

l 利用标准函数实现相对复杂的计算

l 函数定义与声明的含义和格式

l 函数调用的格式与函数返回值类型

l 函数的执行过程

重点:

函数的定义与声明,函数的调用

难点:

理解函数返回值以及函数执行过程

l 能辨别函数设计的原则和设计方法

l 会使用自定义函数求解整数的阶乘、最大公约数、最小公倍数等常规问题

4/4

课堂讲授与案例讨论;课后结合MOOC视频资源进行自主学习;上机

7  

教学内容:

l 函数封装和软件复用的概念和意义

l 如何为一个函数设置参数

l 函数被调用时,函数参数是如何传递的

l 变量的生存周期和作用域的概念

l 递归的概念与递归函数的描述

l 递归的回归和实现

l 利用函数实现模块化程序设计的基本原则和方法

重点:

递归函数的设计与应用、利用函数实现模块化程序设计的基本方法

难点:

理解参数的设计原则与参数的传递方式、变量的生存期和作用域、递归函数的实现机理和执行过程。

l 认知函数封装和软件复用的意义

l 能诠释函数参数传递的机理

l 会根据具体的问题设置合适的函数参数和返回值

l 会应用自定义函数求解如阶乘、斐波那契数列等递归问题。

4/4

课堂讲授与案例讨论;课后结合MOOC视频资源进行自主学习;上机

8  

教学内容:

l 一维和二维数组的定义格式和存储方式

l 数组元素初始化及其访问

l 数组作为函数参数时的传递规则

l 常用的排序和查找算法

重点:

掌握向函数传递一维和二维数组的基本方法,选择和冒泡排序法。

难点:

理解数组名的特殊意义。数组作为函数参数时的传递方式,选择和冒泡等排序方法。

l 能够诠释数组的基本概念和存储方式

l 能够应用一维和二维数组作为函数参数求解最大值、最小值和查找等问题

l 能够应用选择法、冒泡法等算法实现一维数组数据的排序

6/6

课堂讲授与案例讨论;课后结合MOOC视频资源进行自主学习;上机

9  

教学内容:

l 字符串常量

l 字符串的存储

l 字符串的访问和处理函数

l 字符串作为函数的参数

重点:

理解字符串的存储方式,应用字符串作为函数参数求解常规问题。

难点:

字符串的表示方法以及字符串作为函数的参数在字符串处理中的应用

l 能够总结解释用数组表示字符串的方法及其特点

l 会应用字符串作为函数的参数对字符串进行查找、排序等操作

4/4

课堂讲授与案例讨论;课后结合MOOC视频资源进行自主学习;上机

10  

教学内容:

l 指针类型的特点和定义格式

l 指针和数组的关系

l 指针数组及其应用

l 利用指针操作数组的方式

l 指针为函数参数时的传递方式

重点:

掌握不同基类型的指针变量的定义和应用方式,理解指针作为函数参数时的参数传递方式

难点:

理解指针作为参数传递的方式和指针与数组之间的关系

l 会诠释指针的定义格式

l 能够详述指针的特点及其和数组的关系

l 会应用指针做函数参数解决矩阵转置、数组求最值等计算问题。

6/6

课堂讲授与案例讨论;课后结合MOOC视频资源进行自主学习;上机

11  

教学内容:

l 存储空间的管理方式

l 动态内存分配的概念

l 动态内存分配实现的方式

重点:

会应用动态内存解决动态数组问题

难点:

理解动态内存的概念和实现方式

l 会诠释动态内存分配的概念

l 能够应用动态内存解决动态数组在数据查找、插入、删除、统计等方面的问题

2/4

课堂讲授与案例讨论;课后结合MOOC视频资源进行自主学习;上机

12  

教学内容:

l 结构体的定义和成员引用

l 结构体数组的定义和成员引用

l 结构体指针的定义和成员引用

l 向函数传递结构体数据

l 共用体和枚举类型数据

l 结构体作为函数参数时的特点

重点:

结构体及嵌套的结构体(数组)成员的引用方法

难点:

结构体作为函数参数时数据的传递方式,结构体与共用体在存储空间占用方面的区别

l 能够概括结构体、结构体数组和结构体指针的定义和成员引用方式

l 能复述共用体和枚举类型数据的特点

l 会使用结构体(数组)展示并处理较为复杂的数据。

4/4

课堂讲授与案例讨论;课后结合MOOC视频资源进行自主学习;上机

13  

教学内容:

l 文件的概念

l 文本文件和二进制文件区别

l 文件的打开、读写、关闭等操作

重点:

掌握常用的文件操作函数,文本文件的操作和应用

难点:

理解C语言中流的概念   ,了解文件的异常处理方式

l 能够详述文件的基本概念

l 能够总结文本文件和二进制文件的区别

l 会使用常用的文件操作函数对文本文件进行读写关闭等操作。

2/4

课堂讲授与案例讨论;课后结合MOOC视频资源进行自主学习;上机

 

 返回

 


三、教学团队




四、上机考试系统介绍

  1. 打开浏览器,访问网址http://10.10.101.105/jsjwzh

  2. 点击页面下方的按钮“手工安装”。

  3. 提示下载插件时选择“运行”。

  4. 确认运行程序。

   

  5. 点击“安装”。

  6. 点击“确定”。
 


  7. 点击“下一步”。

   

   8. “准考证号”处输入考生的学号,点击“下一步”。

  9. 核对考生信息,有误返回上一步修改学号,无误则点击“下一步”进入考试页面或等待页面。

  补充说明:上述步骤9,若考生登录时考试开始时间未到,点击“下一步”后显示的是等待页面。待考试开始后,系统会自动跳转至考试页面(当考生人数较多时会稍有延时)。若系统未能自动跳转至考试页面,考生可关闭浏览器重新登录。

  进入答题界面后,操作同作业系统。

 返回

 

 


五、上机作业平台介绍

  1、从QQ或百度网盘(https://pan.baidu.com/s/1IGthv_DbYXpZYmtLxSDJyA,提取码:agx8)下载软件:“作业练习系统 安装程序10.10.101.105.rar”,解压缩后安装,会在桌面生成图标;

  2、点击桌面图标打开系统;
  3、在打开的窗口中,第一次要按“配置修改”,将服务器的IP地址修改为:10.10.101.105。

  4、用学号即可登录,密码也是学号。

  5、登录后,提示:环境检查不通过时,直接按“确定”。进入系统后,选择“我的作业”、“查询”,选择某次作业即可进入做作业。

 

 返回


 

联系我们
  • 通讯地址:广东省江门市蓬江区迎宾大道中99号香港台山商会大楼508、512室

  • 联系电话:0750-3299662、3299701

  • 电子邮箱:wyuznzzxb@163.com

版权所有2020©五邑大学 粤ICP备15096031号