课程编号:02202001
课程名称:程序设计实践。
课程性质:专业基础限选。
总学时:30(实践学时30) 学分:2
适用专业:计算机科学与技术。
一、教学目标。
程序设计实践》课程的教学目标旨在训练学生c语言编程的基本能力。通过本课程的训练,使学生具备后续程序设计类课程,如数据结构、算法分析与设计等,所要求的编程能力,为这些教学活动的顺利开展打下良好基础。
二、教学说明。
程序设计实践》分模块对学生的c语言编程技能进行训练,涵盖了基本设计方法、输入输出、指针、字符串、参数传递、递归调用、文件操作等项目。这些技能即是后续与程序设计类课程经常要用到的,也是日后从事c语言程序开发所必备的,乃至对掌握其他编程语言,如、和等也是非常有益的。
训练模块的设计,以及各模块中训练题目的选择是基于以往教学经验,挑选学生普遍薄弱以及未来经常使用的编程技能编辑而成。教师可根据具体情况,特别是学生对c语言编程的掌握情况,灵活调整训练模块和模块中的训练题目。
目前各模块基本相对独立,前后顺序可以调整,但仍建义将实验一和实验二放在最开始;实验三不晚于实验六;实验四不晚于实验五。建议每次课能抽出部分时间对与本模块相关的理论知识做简单归纳总结。
本课程是对编程能力的训练,因此反对学生参考成熟的程序,甚至鼓励学生尽量少用库函数,而是自己独立编程实现。这一点与其他程序设计类课程有所不同,望在教学实施过程中予以注意。本课程虽是对编程能力的训练,但在注重结果正确的前提下,也应注意对学生良好编程风格的培养。
鼓励学生选择与训练模块相关的,来自于自己程序开发实践活动的题目参与训练,但要事先征得教师的认可。
如果条件允许,应该全程开展对训练结果的机器自动检查。
三、教学内容及要求。
实验一基本设计方法训练。
一)实验内容。
本次实验对基于程序流程图写**,以及通过程序流程图分析**的程序设计方法进行训练。
实验题目分如下两大类,学生可分别从每类中选择1道来完成:
1.流程图转换为**。
1)写出下列流程图对应的**。
2)写出下列流程图对应的**。
2.**转换为流程图。
1)画出下列**的流程图。
p = (1; jp =
1; j<1; )
p = q =
q )q); p =
n">)
2)画出下列**的流程图。
r11;p11->;
r222->;
p12) p1->2->)
p1->(p1->)p2->)
p22->;
r2);r22;
r11;p11->;
(p1->>p2->)
r2->1;
r1->2;
p22->;
r22;(p1->)
r11;p11->;
二)实验要求。
能写出程序流程图对应的**,并能画出**对应的程序流程图。
实验二输入输出格式控制训练。
一)实验内容。
本次实验对输入输出语句的使用,主要是格式控制参数的使用进行训练。
实验题目分如下两大类,学生可分别从每类中选择2道来完成:
1.输入语句。
1)读入一组以空格分隔的数,把它们存入数组,用逗号分隔的方式输出,并统计数的个数。
例:【输入】20 37.5 43 5 87.0【回车】
【输出】20,37.5, 43,5,87.0
2)按照“学号【空格】姓名【空格】性别【空格】年龄【回车】”的格式输入若干学生信息,将他们存储在结构体数组中(即每一个学生的信息存储在一个结构体中),输入以“”结束。统计学生信息数量,并按行输出每条学生信息(逗号分隔)。
例:【输入】20142101 19【回车】
20142102 18【回车】
回车】输出】2
20142101,19【回车】
20142102,18【回车】
3)读入一组以制表符()分隔的数,把它们存入数组,并用逗号分隔输出。
例:【输入】5【】35【】15【】100【回车】
【输出】5,35,15,100【回车】
2.输出语句。
1) 打印如下图形,层数由用户输入,最后一行左侧顶格。
2)打印如下图形,层数由用户输入,中间一行左侧顶格。
3)打印倒的杨辉三角形,层数由用户输入,第一行左侧顶格。例:
3.综合类。
1)输入一组以逗号分隔的整数,以回车结尾,以每行5个,空格分隔,左对齐的方式输出它们。
例:【输入】100,21,3950,7,8,3289,943,495,34134,343,209,47,2,7293,29,2732,843,392,24【回车】
输出】100 21 3950 7 8
2)输入一组以逗号分隔的整数,以回车结尾,以每行5个,空格分隔,右对齐的方式输出它们。
例:【输入】100,21,3950,7,8,3289,943,495,34134,343,209,47,2,7293,29,2732,843,392,24【回车】
输出】 100 21 3950 7 8
3)输入一组以空格分隔的英文单词,以回车结尾,以每行5个,空格分隔,左对齐的方式输出它们。
例:【输入】
回车】输出。
4)输入一组以空格分隔的英文单词,以回车结尾,以每行5个,空格分隔,右对齐的方式输出它们。
例:【输入】
回车】输出。
5)输入一组以逗号分隔的小数,以回车结尾,以每行5个,空格分隔,小数点对齐的方式输出它们。
例:【输入】10.0,2.
1,39.50,7.8,328.
9,9.43,49.5,341.
34,34.3,2.09,0.
47,2.0,7.293,29.
00【回车】
输出】 10.0 2.1 39.50 7.8 328.9
6)输入一组以空格分隔的英文单词,以回车结尾,以每行5个,空格分隔,中间对齐的方式输出它们。
例:【输入】
回车】输出。
二)实验要求。
能利用输入输出语句完成相应任务。
实验三指针及字符串训练。
一)实验内容。
本次实验对指针的使用和字符串的操作进行训练。
实验题目如下,学生可从中选择2道来完成:
1.用指针操作实现一个二维数组的转置运算。
输入:输入包含m + 1行。第一行是整数m和n,两项之间用一个空格隔开(1 <=m, n <=10)。
其中,m,n分别为数组的行数和列数。第二行到第m + 1行每行均有n个整数,相邻两项之间用一个空格隔开。
输出:包含n行,是转置后的二维数组。每行均有m个整数,相邻两项之间用一个空格隔开。
例:【输入】3 2【回车】
1 2【回车】
4 5【回车】
7 8【回车】
【输出】1 4 7【回车】
2.输入一段英文,从中找出最长的英文单词。英文单词由空格分隔。(用字符指针实现,且不能调用库函数。
)注:英文单词只包含大写字母和小写字母;若最长的英文单词有多个,则输出第一个。
3.输入一串符号,将其中连续的阿拉伯数字视为整数,计算并输出它们的和。(用字符指针实现,且不能调用库函数。)
例:【输入】1283453790【回车】
输出】4641(因为12+824+5+3790=4641)
二)实验要求。
能利用指针完成相应任务,并能对字符串进行操作。
实验四参数传递训练。
一)实验内容。
本次实验对函数调用过程中的参数传递进行训练。
实验题目如下,学生可从中选择2道来完成:
1.二维矩阵a和b作为输入参数,传入函数,函数完成的运算,结果放在二维矩阵c中。函数负责找出c中值最小的元素。编程实现上述函数,最终要求输出c和c中最小元素的值。
不能用全局变量。
2.字符串1和2 作为输入参数,分别传入函数。函数负责从传入的字符串中截取指定范围(例如:从第2个字符开始,到第5个字符结束的部分)的内容(截取范围也作为函数的输入参数传入。
)。截取结果分别放在字符串3和4中。再将3和4作为输入参数传入函数。
函数负责将传入的两个字符串顺序拼接在一起。编程实现上述函数,要求最终输出拼接结果。不能用全局变量。
3.每个学生信息存储在一个结构体中,结构体包括学号、数学成绩、英语成绩、计算机成绩、平均成绩五部分。函数负责计算一个学生的平均成绩。函数负责找到平均成绩最高的学生, 函数负责按**的形式输出一个学生的全部信息,内容全部左对齐,表头为编程实现上述函数,要求输出一个班中(不少于8人)平均成绩最高的学生的信息。
程序设计教学大纲
数学与计算机科学教研室。教学大纲。2010年9月。程序设计 教学大纲。供非信息管理专业和生物医学工程专业使用 前言。程序设计 是医疗本科 检验本科 影像等专业学生的一门计算机应用必修课。课程旨对visual foxpro在数据管理应用方面作介绍,使学生初步了解visual foxpro在医学领域的实...
程序设计教学大纲
广东医学院。数学与计算机科学教研室。教学大纲。2010年9月。程序设计 教学大纲。供非信息管理专业和生物医学工程专业使用 前言。程序设计 是医疗本科 检验本科 影像等专业学生的一门计算机应用必修课。课程旨对visual foxpro在数据管理应用方面作介绍,使学生初步了解visual foxpro在...
教学大纲 高级程序设计
课程编号 3510006课程类型 必修课。开课学期 第5学期学分 4 学分。本课程课内总学时 72学时,理论讲授46学时,上机实验26学时。适用对象 计算机科学技术专业本科学生。先修课程 程序设计基础。使用教材及参考书 采用教材 c 应用程序设计,韦鹏程,中国铁道出版社,2011.7 采用主要参考书...