程序设计实验大纲
- 格式:doc
- 大小:109.00 KB
- 文档页数:11
附件:“计算机程序设计”实验教学大纲英文名称:C++ Programming Language课程中文名称:计算机程序设计课程英文名称:Computer Programming课程编号:COMP1001实验学时:32学时,本课程总学时为64学时,实验学时占总学时的50%。
学分:课程总学分为3适用专业:一、二年级学生先修课程:大学计算机基础开课学院:电信学院开课学期:春、秋季教材及实验指导书:1.崔舒宁编著,《Visual C2008程序设计》,交大教材科,2012年一、实验课程简介本实验旨在使学生了解程序设计语言的基本知识,掌握程序设计的编程方法与调试技术。
其实验内容分为二个部分,第一,介绍程序设计语言基础,包括程序设计语言概述、数据类型、运算符和表达式、控制结构、数组类型、函数、编译预处理、结构体和共用体、指针和文件;第二部分为介绍面向对象技术,包括类和对象、继承与派生、多态性、模板。
二、实验课性质、目的和任务性质:“计算机程序设计”是面向非计算机类各专业的必修计算机类基础课程,实验在这门课程的教学中具有重要的作用,是课程的重要组成部分。
目的:帮助学生理解和掌握课程内容,训练学生的编程能力和程序调试能力。
任务:(1)培养学生C/C++程序设计能力,涵盖C/C++的基本理论和知识。
(2)软件测试与调试的能力,学会C/C++程序的基本调试技术。
(3)分析问题、解决问题的能力。
(4)独立撰写实验报告的能力。
三、实验课教学基本要求1.C++语言基础知识掌握变量与常量的定义与使用方法;掌握基本数据类型和表达式的使用方法,掌握C++的基本语句。
理解结构化和面向对象程序设计的基本思想和有关概念,掌握C++程序的基本框架和上机调试计算机程序的过程。
2.数组、指针与引用掌握数组的定义、初始化和访问方法;掌握字符串使用方法;理解指针和引用的概念,掌握指针使用方法,理解指针与数组的关系,了解动态内存管理方法。
3.函数掌握函数的定义与函数调用方法,理解变量的生命周期、作用域和存储类别(自动、静态、寄存器、外部),掌握C++库函数的使用方法。
4.类与对象的基础知识理解类与对象的基本概念,掌握类及其成员的声明、定义、访问方法,对象的创建与使用方法;掌握构造函数与析构函数的定义与使用;掌握静态数据成员与静态成员函数的定义与使用。
5.类的复用掌握类的组合语法;掌握派生类的定义和访问权限,类的数据成员与成员函数的继承;理解多态性概念及虚函数机制的要点;了解运算符重载。
6.输入/输出流理解C++流的概念,掌握数据的格式输入输出,掌握文件的I/O操作。
7.综合程序设计能力掌握利用所学到的面向对象的程序设计方法,编制含有多个类的程序;掌握根据实际问题和给定的算法,设计类结构并编码实现,解决小型问题。
8.程序调试掌握C++程序调试的基本方法;理解程序错误的种类和产生的原因,掌握排除语法错误的基本技能;掌握程序调试的基本技能(如设置断点、单步执行、查看中间运行结果等)。
四、实验教学的内容与基本要求1.实验项目名称:C++集成开发环境的使用实验目的:(1)掌握集成开发环境的使用方法;(2)了解C++程序的基本特点。
实验内容提要:(1)熟悉Visual C++集成开发环境。
(2)编写一个计算矩形面积的程序。
(3)编写乘法计算器程序。
(4)编写生日卡程序,使其能够输入和显示日期。
(5)使用梯形法计算下式定积分的值。
⎰-+11)(sin dx e x x(6)编写一个计算矩形面积的程序。
2.实验项目名称:基本数据类型及其运算实验目的:(1)掌握整型、长整型、浮点型、双精度型和字符型等数据类型;(2)掌握各种数据类型的基本概念;(3)掌握常数和变量的使用方法。
实验内容提要:(1)输入三个实数,检验其能否构成一个三角形。
(2)输入两个角度值x 、y ,计算如下式子的值。
|)cos(||)||sin(|y x y x ++(3)编写一个程序,要求完成以下要求: 1) 提示用户输入任意的3个小数;2)显示这三个小数; 3)将这三个小数相加,并显示其结果; 4) 将结果按四舍五入方法转换成整数并显示。
(4)从键盘输入任意三个整数,然后输出这三个数并计算其平均值。
(5)编写一个程序,将字符串“Love ”译成密码,译码方法采用替换加密法,其加密规则是:将原来的字母用字母表中其后面的第3个字母的来替换,如字母c 就用f 来替换,字母y 用b 来替换。
提示:分别用4个字符变量来存储'L'、'o'、'v'和'e',利用ASCII 表中字母的排列关系,按照译码方法对各个变量进行运算后输出即可。
3.实验项目名称:选择及循环程序设计实验目的:(1)掌握C++的选择结构语句的使用,如: if …else …, switch …(2)掌握C++的循环结构语句的使用,如: while …, do …while …, for …. 实验内容提要:(1)编写计算n 的阶乘程序。
(2)计算1!+2!+3!+…+10!。
(3)编写程序求斐波那契数列的第n 项和前n 项之和。
(4)编程求 ...)12()!(2)!2(...5423132arcsin 221253++++⋅⋅⋅⋅+⋅+≈+n n x n x x x x n n 。
(5)用牛顿法求方程0634223=-+-x x x 在1.5附近的根。
(6)求解猴子吃桃问题。
(7)编写一个程序,寻找用户输入的几个整数中的最小值。
并假定用户输入的第一个数值指定后面要输入的数值个数。
例如:当用户输入数列为: 5 20 15 300 9 700时,程序应该能够找到最小数9(8)有一分数序列,...1321,813,58,35,23,12(即后一项的分母为前一项的分子,后项的分子为前一项分子与分母之和),求其前n 项之和。
(9)求a+aa+aaa+aaaa+... ...+aa...a (n 个),其中a 为1~9之间的整数。
例如:当a = 1, n = 3时,求1+11+111之和;当a = 5, n = 7时,求5+55+555+5555+55555+555555+5555555之和。
(10)猜幻数游戏。
由系统随机给出一个数字(即幻数),让游戏者去猜,如果猜对,则打印成功提示;否则,打印出错提示,并提示游戏者选择下一步动作,最多可以猜5次。
4.实验项目名称:数组与字符串的输入和输出实验目的:(1)掌握一维、二维数组的定义和使用方法(2)掌握字符数组和字符串处理的库函数(3)掌握结构体类型的定义与使用方法实验内容提要:(1)使用数组来求斐波那挈数列的第n 项和前n 项之和。
(2)编写程序计算矩阵的转置。
(3)使用数组编写一个统计学生课程平均分的程序:输入6个学生的学号和3门课程的成绩(整数形式),统计每个学生3门课程的平均分(整数形式),最后输出统计结果。
输出格式:学号 高数 英语 体育 平均分-----------------------------------------------------------------(4)编写一个程序,要求用户输入一个十进制正整数,然后分别转换成为二进制数、八进制数和十六进制数输出。
(5)输入10个字符到一维字符数组s 中,将字符串置逆。
即s[0]与s[9]互换,s[1]与[8]互换,...,s[4]与s[5]互换,输出置逆后的数组s 。
(6)替换加密(恺撒加密法):加密规则是:将原来的小写字母用字母表中其后面的第3个字母的大写形式来替换,大写字母按同样规则用小写字母替换,对于字母表中最后的三个字母,可将字母表看成是首未衔接的。
如字母c 就用F 来替换,字母y 用B 来替换。
请将字符串“I love you ”译成密码。
5.实验项目名称:函数的声明、定义和调用实验目的:(1)掌握函数定义及函数调用;(2)掌握函数间参数传递方式(值方式和引用方式);(3)掌握库函数的使用。
实验内容提要:(1)编写字符串反转函数mystrrev( ),该函数的功能为将指定字符串中的字符顺序颠倒排列。
然后再编写主函数验证之。
(2)编写一组求数组中最大最小元素的函数。
(3)编写函数isprime(int a)用来判断变量a 是否为素数,若是素数,函数返回1,否则返回0。
调用该函数找出任意给定的n 个整数中的素数。
(4)打印出以下的杨辉三角形(要求打印出10行)111 12 1 13 3 1 14 6 4 1 15 10 10 5 1 … …(5)用弦截法求一元方程0)(=x f 在区间[]10,x x 之间的一个根。
(6)编写字符串查找函数。
(7)编写一组函数来实现词频统计功能。
6.实验项目名称:指针的声明和使用实验目的:(1)掌握指针的概念,学会定义指针变量和使用指针变量进行间接引用;(2)掌握数组的指针和指向数组的指针变量;(3)掌握二维数组中行指针的概念和使用。
实验内容提要:(1)使用指针编写一个对整型数组进行排序的函数,排序方法使用例4-6的交换排序法(冒泡排序法)。
(2)编写程序,将某一个输入的位数不确定的正整数按照标准的三位分节格式输出,例如,当用户输入82668634时,程序应该输出82,668,634。
(3)编写程序,把10个整数1、2、…、10赋予某个int型数组,然后用int型指针输出该数组元素的值。
(4)用指针编写一个程序,当输入一个字符串后,要求不仅能够统计其中字符的个数,还能分别指出其中大、小写字母、数字以及其他字符的个数。
(5)编写一个函数, 用于将一个字符串转换为整型数值。
其原型为: int atoi(char *string);其中参数string为待转换的字符串(其中包括正、负号和数字),返回值为转换结果。
(6)编写一个函数,用于生成一个空白字符串,其原型为:char *mystrspc(char *string, int n);其中参数string为字符串,n为空白字符串的长度(空格符的个数)。
返回值为指向string的指针。
7.实验项目名称:函数和指针程序设计实验目的:(1)掌握函数调用的方法;(2)掌握函数的递归调用方法;(3)掌握函数调用中参数的值传递和地址传递方法和含义。
实验内容提要:(1)使用递归算法编写如下程序:对于任意给定的实数X和整数k>0,计算X k。
(2)Ackermann函数ack(m,n)由以下递归定义:ack(0, n)=n+1ack(m, 0)=ack(m-1, 1)ack(m, n)=ack(m-1, ack(m, n-1)) 其中m>0, n>0 编写一个计算此函数的递归程序。
(3)使用递归算法编写求斐波那契数列的第n项的函数,并编出主函数进行验证。