《C语言程序设计课程》实验教学大纲
课程名称:C语言程序设计
课程代码:304056031 304096031
课程属性:专业(技术)基础课
实验教材或指导书名称:自编
实验性质:独立开设
实验学时:1周 实验学分:1
面向专业:计算机相关专业(高职)
实验室名称:专业实验室
一、
实验目的与要求:
1.巩固C语言程序设计中的重点和难点,进一步培养学生的结构化程序设计思想;
2.通过实践着重巩固数组、函数、指针、结构体等重要内容;
3.掌握编写中型程序的基本思路、技巧和调试方法;
4.激发学生的学习兴趣和创新能力,为后续课程打下基础。
5.通过实验煅练学生的实际动手能力,提高学生的编程和程序调试能力。
二、
实验过程安排
学生必须仔细阅读《C语言程序设计》课程,认真主动完成课设的要求。有问题及时主动通过各种方式同学间相互交流或与教师联系沟通。
学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课设过程中不断检测自己的计划完成情况,及时向教师汇报。
课程设计按照要求需在一周之内完成,每天5小时上机调试C语言设计的程序,总共至少要上机调试程序25小时
课程设计就是要运用本课程的有关课程中的知识和技术来解决实际的问题,其主要需要进行以下几个方面的工作:首先要采用一种简明、严格的问题分析描述,然后设计求解方法(算法描述),再用计算机来实现这种求解方法,在经过测试定型后制作必要的文档。
1. 建立模型
用形式模型来刻画问题,将有益于问题的解决。对于形式化的问题,我们容易知道是否有现成的算法或程序可以利用。深刻分析题目的求解思路。
2. 构造算法
建立了适当的分析后,问题就可以转换为一些经典问题的综合或变异形式的求解。可用流程图分析完成
3. 编程
将问题的描述算法用c语言来表示并将其转换为完整的上机程序。
4. 调试
将完整的上机程序在机器上调试,记录调试过程,出现问题分析,及解决问题过程
5. 总结
对设计进行总结和讨论,包括本设计的思路。
三、
成绩考试(考核)方式及评分标准:
以完成规定的实验目的、任务、主要步骤和上交的实验报告及讲述设计思路为依据,根据其完成数量和质量进行评分。
评分标准:
1.在教师的指导下不能完成实验任务,为不及格;
2.在教师的指导下能完成实验部分任务,为及格;
3.能独立完成大部分实验任务,在教师的指导下能完成部分实验任务,为中;
4.能独立完成实验任务,完成实验报告,为良;
5.能独立完成实验任务,完成实验报告,并能对实验数据进行分析,得出相关结论,为优。
四、主要实验仪器设备:
PC机50台、安装了Windows2000或以上版本操作系统和C语言编程环境(如Visual C++6.0等)。
五、主要参考书目:
[1] 卢敏.《C语言程序设计》.北京:中国水利水电出版社,2008。
[2] 谭浩强.《C程序设计》.北京:清华大学出版社,第3版。
[3] 谭浩强.《C程序设计题解与上机指导》. 北京:清华大学出版社,第3版。
六、基本实验项目
C语言程序设计课程
序号
实验项目名称
实验类型
计划
学时
各专业开出要求
必 做
选 做
1
c语言课程设计基础实验(3题)
验证
15
必 做
2
小型综合程序设计
设计
10
必 做
总学时:25
(一)、实验目的与内容
实验(1):c语言课程设计基础实验(选做一,见附页:实验内容)
目的:
1、 掌握设计程序设计的思路,流程图。
2、 理解C语句表示逻辑量的方法;学会正确使用逻辑运算符和逻辑表达式
3、 了解如何使用控制语句来完成一个相对复杂的C程序。
4、 掌握C语言数组及函数的用法
5、 掌握指针和数组、字符指针、字符串、字符数的用法。
6、 掌握结构体类型方法以及结构体变量的定义和引用。
内容:
1、 课程设计内容(具体见实验内容,每个小组的内容不同)。
2、 问题整体设计说明
3、 程序代码
4、 结果测试
实验(2):小型综合程序设计(题一、二选做一,题三、四选做一)
目的:
1、 复习C语言中学过的基本知识。
2、 掌握C语言中函数设计方法和结构化设计的思想。
3、 掌握规范的程序设计的思想
4、 掌握规范程序编码格式
内容:
题一:
1、 课程设计内容。
编写简单的学生信息管理系统。功能如图所示。学生的信息包括学生姓名和成绩。如选择1,则输入学生的信息等。
2、 问题整体设计说明
3、 系统功能模块结构图
4、 程序代码
5、 结果测试
题二:
1. 课程设计内容。
编写简单的图书管理系统。功能如图所示。图书的信息包括书号、书名、作者名、价钱。如果选择1,表示更新(添加)图书信息;2、表示浏览所有的图书信息;3、表示查找某本图书,如果有,则显示出来,没有,就提示无些书;4、表示删除图书的信息;5、退出系统。
2. 问题整体设计说明
3. 系统功能模块结构图
4. 程序代码
5. 结果测试
题三:通信录
设一个通信录由以下几项数据信息构成:
数据项 类型
姓名 字符串
地址 字符串
邮政编码 字符串
电话号码 字符串
试为通信录数据定义类型和定义通信录变量,实现功能:存取、显示、删除记录、查询记录等功能。
题四:成绩记录簿
编制一个C语言成绩记录簿,每个学生信息包括:学号、姓名、C语言成绩。具体功能:
(1)创建信息链表并以磁盘文件保存;
(2)读取磁盘文件并显示输出所有学生的成绩;
(3)按学号或姓名查询成绩;
(4)添加成绩记录;
(5)修改指定姓名或学号的学生的成绩并可存盘;
(6)显示输出60分以下、60~79、80~89、90分以上各分数段的学生信息。
(二)、实验说明:
1、每天原则上有6节实验课。学生必须签到。
2、分组完成实训内容、每小组中每个人需完成指导教师指定实验题数。
3、实验结果
1)上交实验报告。
实验报告严格按照“丽水学院计算机实验报告”纸填写全,包括:课程,班级,学号,姓名;组别,同组者姓名,实验日期;实验目的,实验环境,实验内容,实验结果。
其中实验内容和实验结果必须包含:实验题目;程序设计思路(可用流程图或自然语言);
程序代码;测试结果。
课程设计报告:(保存在word
文档中,上传ftp空间并上交打印稿,文件名要求按照"姓名-学号-课程设计报告"起名,如文件名为"张三-05-课程设计报告".doc
)要求按照如下几个内容认真完成;
其中包括:
(1) 课程设计要求及环境
(2) 课设题目及分析
包括:
a)课题分析:
在该部分中叙述,每个课题的功能要求,以及分析思路
b)概要设计
在此说明每个部分的算法设计说明(可以是描述算法的流程图),每个程序中使用的设计说明
c)详细设计
各个课题实现的源程序,对每个题目要有相应的源程序(可以是一组源程序,每个功能模块采用不同的函数实现)
源程序要按照写程序的规则来编写。要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。
d)调试分析
测试数据与测试输出的结果,每个设计和调试时存在问题的思考(问题是哪些?问题如何解决?),算法的改进设想及思路。
(3) 课设总结: 总结可以包括 :
课程设计过程的收获、遇到问题、遇到问题解决问题过程的思考、程序调试能力的思考、对c语言这门课程的思考、在课程设计过程中对《c语言程序设计》课程的认识等内容
2)提交实验内容。
把设计的程序压缩成.rar文件,以班级+姓名命名,上传给指导教师
附页:
实验内容: c语言课程设计基础实验
第一组:
1、 为优待顾客,商店对购货在1000元和1000元以上的,八折优惠;500元以上(包括500元,下同),1000元以下的,九折优惠;200元以上,500元以下的,九五折优惠;100元以上,200元以下的,九七折优惠;100元以下不优惠。请输入购货款后,打印该交的货款。
2、 青年歌手参加歌曲大奖赛,有10个评委对他进行打分,试用选择法对10个分数排序。
3、 编写一个自定义函数,求字符串的长度。在main函数中输入字符串,并输出其长度。(用指针方法)。
第二组:
1、 电报计费规则:若为普通电报,每个字0.75元,如不足10个字,按10个字计算。若为加急电报,则加上一个字,再加倍收费。
2、 青年歌手参加歌曲大奖赛,有10个评委对他进行打分,试用冒泡法对10个分数排序。
3、 编写一个自定义函数,将字符串s中所有的空格字符删去。(用指针方法)
第三组:
1、输入一个数(1~7),用英文显示对应的星期一至星期日。
2、有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中。
3、将数组a中的n个整数按相反顺序存放。(用针方法)
第四组:
1、 判断输入的一个年份是否闰年。
2、 对三人的四门课程分别按人和科目求平均成绩,并输出包括平均成绩的二维成绩表。
3、 在输入的字符串中统计字符’s’的个数。(用指针方法)
第五组:
1、计算两点A(x1,y1)和B(x2,y2)之间的距离。所有数据以及返回类型都是float类型。
2、用“折半查找法”从有10个数的a数组中对关键字m查找,若找到,返回其下标值,否则返回-1。
3、编写一个自定义函数,求字符串的长度。(用指针方法)。
第六组:
1、 编写一个函数,输入一个月份号,输出该月的英文名。
2、 十进制数转化成二进制。
3、输入某个学生的信息(学号、姓名、成绩)并输出。
第七组:
1、sum=2+5+8+11+14----,输入正整数n,求sum的前n项和。
2、二进制数转化成十进制。
3、在输入的字符串中统计字符’s’的个数。(用指针方法)
第八组
1、求数列的和。设数列的首项为81,以后各项为前一项的平方根,输入n,求前n项的和。
2、青年歌手参加歌曲大奖赛,有5个评委对他进行打分,试编程求这位选手的平均分(去掉一个最高分和一个最低分)。
3、输入某个学生的信息(学号、姓名、成绩)并输出。
第九组:
4、 个人所得税的累进计算方法为:1000以内不纳税。超过1000元的部分:若小于或等于500元,税率为5%;若大于500元且小于等于2000元,税率为10%;若大于2000元且小于等于5000元,税率为15%;若大于5000元且小于20000元,税率为20%;若大于20000元,税率为25%。试计算某人应交纳的个人所得税。
5、 青年歌手参加歌曲大奖赛,有10个评委对他进行打分,试编程求这位选手的平均分(去掉一个最高分和一个最低分)。
6、 先存储一个班级学生的姓名,从键盘输入一个姓名,查找该人是否为该班学生?
第十组:
1、输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
2、输出100~150中所有的素数
3、将数组a中的n个整数按相反顺序存放。(用指针方法)
第十一组:
1、有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前n项之和。
2、古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第n个月的兔子总数为多少?
3、定义一个结构体变量,其成员包括:职工号、职工名、性别、年龄、工资、地址。进行输入和输出。
第十二组:
1、 输入一个正整数n,再输入n个学生的成绩,计算平均分,并统计不及格成绩的个数。
2、 青年歌手参加歌曲大奖赛,有10个评委对他进行打分,试用冒泡法和选择法对10个分数排序。
3、 编写一个自定义函数,将字符串s中所有的空格字符删去。(用指针方法)
第十三组:
1、猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了1个。第二天早上又将剩下的桃子吃掉一半,又多吃了1个。以后每天早上都吃了前一天剩下的一半再多1个。到第10天早上想再吃时,见只剩下1个桃子了。求第一天共摘了多少。
2、用“折半查找法”从有10个数的a数组中对关键字m查找,若找到,返回其下标值,否则返回-1。(先排序,后查找)。
3、输入某个学生的信息(班级、学号、姓名、性别、成绩)并输出。
第十四组:
1、 编程求下面分段函数的值。
y=
2、 编写自定义两个函数,一个是二进制数转化成十进制。一个是十进制转化成二进制数。在主函数中调用这两个函数。
3、 在一行字符串中删去指定的字符。例如,要求一行文字:“I have 50
Yuan.”中,删去字符’0’,使其变为“I have 5 Yuan.”(利用指针)
第十五组:
1、电报计费规则:若为普通电报,每个字0.75元,如不足10个字,按10个字计算;若为加急电报,则加上一个字,再加倍收费。
2、有a个学生,每个学生学b门课,已知所有学生的各门课的成绩,分别求每门课的平均成绩和每个学生的平均成绩。
3、编写一个自定义函数,求字符串的长度。(用指针方法)。
第十六组:
4、 判断输入的一个年份是否闰年。
5、 设计两个自定义函数,一个是“将字符串中的字母全部变成大写”。一个是“将字符串中的字母全部变成小写字母”。在主函数中调用这两个函数。
3、有n个学生,每个学生考m门课,要求编一函数,能检查n个学生有无不及格的课程,如果有某一学生有一门或一门以上课程不及格,就输出该学生的号码(学生号从0算起,即0,1,2,……号)和其全部课程成绩。