《程序设计实践》课程安排及要求-2017

合集下载

程序设计实践

程序设计实践

程序设计实践1. 引言程序设计实践是计算机科学与技术专业中的一门重要课程,旨在帮助学生提升软件开发能力和项目管理能力。

通过本课程的学习,学生将掌握软件开发的基本原理和方法,并且能够应用这些知识解决实际问题。

本文将介绍程序设计实践的教学目标、内容和方法,并提供一些学习的建议。

2. 教学目标程序设计实践的主要教学目标如下:•培养学生的编程能力,包括但不限于算法设计、数据结构、代码实现等方面。

•提高学生的团队合作能力,让他们能够在软件开发项目中有效地协作。

•培养学生的解决问题的能力,使他们能够从实际问题出发,分析问题并提出解决方案。

•帮助学生熟悉软件开发的工作流程,了解软件开发过程中的各个环节。

•培养学生的项目管理能力,让他们能够合理组织和安排项目的进度、资源和成员。

3. 教学内容程序设计实践的教学内容主要包括以下方面:3.1 编程基础在程序设计实践课程中,学生需要掌握一门编程语言的基本语法和常用数据结构。

他们需要学习如何定义变量、编写函数、使用条件和循环语句等。

此外,学生还需要了解如何使用数组、链表、栈、队列等数据结构。

3.2 算法设计算法设计是程序设计实践课程中的重要内容。

学生需要学习各种经典算法的原理和实现方法,例如排序算法、查找算法、图算法等。

此外,学生还需要学习如何设计自己的算法来解决特定问题。

3.3 软件开发流程学生需要了解软件开发的各个阶段,包括需求分析、系统设计、编码、测试和维护等。

他们需要学习如何使用工具和方法来支持软件开发流程,例如版本控制工具、测试工具等。

3.4 团队合作在程序设计实践课程中,学生一般会组成小组来完成一个软件项目。

他们需要学习如何与团队成员进行有效的沟通和合作,如何分工合作、协调进度等。

4. 教学方法为了达到上述教学目标,可以采用以下教学方法:•理论教学:通过课堂讲解和教材阅读,向学生介绍基本理论知识和算法设计原则。

•实践操作:通过编写小程序和完成实际项目,让学生应用所学知识解决实际问题。

《C语言程序设计实习》课程教学大纲

《C语言程序设计实习》课程教学大纲

《C语言程序设计实习》实习教学大纲数学与自然科学类、工程基础类、专业基础类、专业类、工程实践与毕业设计(论文)、人文社会科学类。

一、课程简介《C语言程序设计实习》是针对大学一年级本科生的通识实践课,适用于电子与信息工程学院的电子信息工程与通信工程专业,为后续的《单片机原理与应用》、《嵌入式系统》以及《DSP技术与应用》等涉及编程开发的课程提供了程序开发实践基础。

其教学目的:通过C语言的基本编程技能训练以及小型综合项目程序开发,培养学生的编程实践能力。

其主要实习要求:在指定的地点集中进行,由指导老师辅导,帮助学生通过团队协作完成一个完整的软件产品开发项目。

作为一门实践课程,在项目实践过程中,逐步培养团队意识,学习如何在网上收集资料,掌握程序设计的项目调试与测试技术,熟悉项目的需求分析、总体设计、详细设计、模块实现等具体环节,培养学生的实践动手能力。

二、课程教学目标《C语言程序设计实习》以培养学生应用问题分析能力以及运用程序语言解决问题的能力为目的,综合应用先修课程《C语言程序设计》学习的C语言知识,针对实际问题,分析需求、编写应用程序,运用IDE软件进行程序调试与测试,帮助学生初步掌握C语言程序编程的基本知识并将其用于实际问题的分析与解决过程,培养学生的代码编写、程序调试、以及项目设计等实践能力。

在实习过程中不断强调软件实践在软件开发学习中的重要性、我国行业需求对软件实践的重要指导意义、软件工程思想对软件实践的重要指导意义、软件行业规范对软件开发习惯培养的重要性、以及沟通对团队合作的重要性,大力培养学生的软件开发思维、行业见识与服务目标、工程管理思维、工匠精神、以及团队合作意识,为培养符合我国软件行业需求的优秀人才奠定基础。

本课程的具体教学目标如下:1.基于IDE工具的软件开发、调试与测试技能目标:培养使用软件工具对复杂软件工程问题进行调试与测试的能力。

熟练使用C-Free、Dev-C、CodeBlocks、VC++、VS-2015等常用C语言IDE软件,及其一系列辅助设计工具,例如:①代码编辑的辅助功能使用方法,例如文本彩色加亮、代码输入提示、智慧输入、代码模板插入、变量与函数的查找与位置索引、缩进对齐、格式自动化以及代码分析等功能;②项目编译的辅助功能使用方法,例如语法预先自动检测、编译器版本选择以及未使用函数提示等功能;③项目调试的辅助功能使用方法,例如基于内存地址的变量管理、基于调用栈的变量管理、基于运行环境的变量管理以及基于查找监视的变量管理等功能。

大学计算机程序设计实践课程

大学计算机程序设计实践课程

《大学计算机程序设计实践课程》1. 引言大学计算机程序设计实践课程是一门旨在培养学生编写高质量、可维护、可扩展程序的课程。

本文档将深入探讨该课程的重要性、涉及的主要内容和学习目标,以及如何成功完成这门课程。

2. 课程目标•理解并掌握基本的程序设计概念和编码技巧。

•学习使用常见编程语言(如C++、Java)进行实际项目开发。

•培养解决问题和分析需求的能力。

•掌握代码版本控制工具(例如Git)的基本使用方法。

•进行个人项目或合作项目,锻炼团队合作精神和沟通能力。

3. 课程内容3.1 基础知识和技术•程序结构和算法:学习如何设计清晰的程序结构,理解常用算法,并能够运用到实际问题中。

•数据结构:介绍不同数据结构(如数组、链表、栈、队列等),并了解它们在程序设计中的应用场景。

•输入输出处理:熟悉基本的输入输出操作,包括文件读写、命令行参数等。

3.2 编码实践•调试技巧:掌握调试程序的方法和工具,能够定位和修复常见错误。

•单元测试:了解单元测试的重要性,并学习如何编写有效的测试用例来验证代码功能。

•代码规范:遵循良好的编码风格和规范,提高代码可读性和可维护性。

3.3 实际项目开发在课程中,学生将有机会参与实际项目开发,通过团队合作完成一项具体任务。

这将帮助学生应用所学知识进行问题解决,并培养自主学习和创新能力。

4. 学习方法•授课教师指导:参与课堂互动,及时向教师请教问题。

•自主阅读与实践:阅读相关教材、参考资料,并积极进行实践练习。

•小组讨论和交流:与同学们分享经验、疑问以及解决方案。

5. 考核方式考核方式通常由以下几种形式组成: - 平时表现:包括课堂表现、作业完成情况和课程参与度。

- 实验报告:完成实验项目并撰写对应的实验报告。

- 期末项目:根据课程要求独立或协作完成一项综合项目,并进行演示和答辩。

6. 总结大学计算机程序设计实践课程是培养学生编写高质量、可维护、可扩展程序的重要环节。

通过这门课,学生将掌握基本的程序设计概念和编码技巧,并能够运用所学知识解决实际问题。

《程序设计》课程介绍及要求

《程序设计》课程介绍及要求

学习建议与提高途径
学习建议
建议学生注重理论与实践相结合,多进行编程实践, 加深对知识点的理解和掌握。同时,积极参加课程讨 论和小组活动,提高团队协技创新活动,拓展编 程视野,提高编程技能和创新能力。同时,积极利用 网络资源和学习平台,自主学习相关知识和技术。
了解不同计算机体系结构的特点和优 劣
软件系统
包括操作系统、编程语言、应用程序 等
编程语言概述
1 2
编程语言分类
了解机器语言、汇编语言、高级语言等
编程语言特点
了解不同编程语言的特点、适用场景和优缺点
3
编程语言发展趋势
了解当前和未来编程语言的发展趋势和新技术
程序设计思想与方法
面向过程程序设计
01
了解结构化程序设计的基本思想和方法
面向对象程序设计
02
了解面向对象程序设计的基本思想和方法,如类、对象、封装、
继承、多态等
程序设计风格
03
了解不同程序设计风格的特点和优劣,如简洁明了、易于维护

算法与数据结构基础
算法基本概念
了解算法的定义、特性和评价 标准
常用算法介绍
了解并熟悉排序、查找、图论 等常用算法
数据结构基本概念
了解数据结构的定义、分类和 基本操作
THANKS FOR WATCHING
感谢您的观看
课程时间
每学时通常为45分钟,具体根据学校 的课程时间安排而定。建议学生合理 安排课余时间进行预习和复习,以保 证学习效果。
02 教材与参考资料
教材简介
《程序设计基础》
本课程主要教材,系统介绍了程序设 计的基本概念、语言基础、算法与数 据结构、程序设计方法等内容,适合 初学者入门和提高。

《程序设计实践》课程报告

《程序设计实践》课程报告

课程名称:程序设计实践专业班级:学生姓名:学号:任课教师:学期:课程报告任务书成绩评定教师:1 需求分析1.1.开发一个一个手机通讯录,用于记录联系人的姓名,年龄,性别,手机号码,QQ号码,家庭住址,,以及电子邮件。

1.2.满足用户对通讯录的基本操作:新建,删除,修改,排序,查找,浏览,以及文件的读与写,扫描已有文件中的联系人资料。

新建:用户可以添加多个联系人。

并进行按照名字排序。

删除:满足用户按照名字对联系人进行删除操作。

修改:满足用户对联系人的信息进行修改。

排序:实现联系人按照名字和号码进行排序。

查找:满足用户对联系人进行查找,对名字、号码和QQ号码进行查找处理。

浏览:输出所有人的信息。

文件的读与写:对联系人的保存与读。

2 概要设计(小三黑体)2.1模块概要2.1.1定义变量——结构体struct friends_list{ //储存联系人信息char name[20]; //姓名char age[5]; //年龄char sex[3]; //性别char phonenumber[15]; //电话号码char QQnumber[12]; //QQ号码char address[80]; //地址char num[500]; //编号char mail[40]; //电子邮箱struct friends_list *next;};2.1.2 自定义函数struct friends_list *load_friend(struct friends_list *head);//从文件中读取联系人void save_friend(struct friends_list *head); //保存联系人struct friends_list *Create_Lianxi_Doc(struct friends_list *head); //新建联系人struct friends_list *Delete(struct friends_list *head,char *name);//删除联系人struct friends_list*xiugai(struct friends_list*head,char *name);//修改联系人struct friends_list *sort_friend(struct friends_list *head,char*name);//排序void Print_friends_Doc(struct friends_list *head); //查看所有联系人void search_friend1(struct friends_list *head,char *name);//按姓名对联系人进行查找void search_friend2(struct friends_list *head,char *phonenum);//按电话号码对联系人进行查找void search_friend3(struct friends_list *head,char *QQnumber); //按QQ号码对联系人进行查找struct friends_list *scanf_friend();//扫描文件2.1.3 流程图与模块图图1.1 2.1.4 自定义模块 2.1.4.1 新建联系人此模块为联系人的新建,用户在提醒语句的提示下依次输入新建联系人的信息,并且在用户输入最后一条信息后回车结束新建,系统自动返回主菜单参数为head ,返回值为head 。

《程序设计实践课程设计》教学大纲

《程序设计实践课程设计》教学大纲

《程序设计实践课程设计》教学大纲一、课程设计基本信息课程设计环节代码:110579课程设计环节名称:程序设计实践英文名称:PracticeforProgrammingDesign课程设计周数:1学分:1适用对象:信息与计算科学专业本科生先修课程与环节:大学生信息技术基础、JaVa语言程序设计二、课程设计目的和任务《程序设计实践》是一门实践性很强的课程,不仅要学习基本理论知识,更要加强上机实践,通过上机实践验证算法的正确性,掌握和巩固所学理论知识。

因此JAVA语言程序设计课程设计的重要程度不亚于知识传授。

其重要要求之一是训练学生对基本概念、基本语句的理解、掌握并能灵活运用。

其主要目的是使学生掌握JAVA语言的基本语法,能使用JAVA语言编写完整的程序。

能独立完整开发一个具有一定规模的软件课题,从而真正体验软件的实际编写过程与开发方法。

并以此为基础开发满足问题要求的小型应用软件,这也是软件工程的综合性基础训练的重要一环。

通过本次课程设计,可以帮助学生在尽可能短的时间内对计算机语言知识有一个比较全面、深入和系统的认知理解,培养学生的数据抽象能力、提高在软件开发中的算法分析和程序设计的能力。

课程思政目标:通过本课程的教学实施,引导学生正确看待我国计算机领域发展面临的问题,深入理解社会主义核心价值观。

在程序设计过程中,注重培养学生的计算思维,也能自然融入中华优秀传统文化教育。

通过将计算机伦理教育融入课堂教学,能够引导学生深刻理解并自觉践行职业道德和职业规范,增强职业责任感,提升学生的工程伦理修养。

三、课程设计方式独立完成。

教师给出若干题目,每道题目设置不同的分值,做对每道题目即可获取相应的分数。

让学生自由选择题目,每组1-3人。

课程设计通过的依据是教师运行学生完成的程序能得到课程设计任务书中要求的结果。

四、课程设计教学(或指导)方法与要求1.同学仔细阅读《程序设计实践课程设计任务书》课程设计方案,认真主动完成课设的要求。

《Python程序设计实践》课程教学大纲

《Python程序设计实践》课程教学大纲

《Python程序设计实践》课程教学大纲一、课程基本信息课程编号:Sk297课程名称:Python程序设计实践英文名称:Python Programming Design Practice课程类型:实践教学课程要求:必修学时/学分:3周/3先修课程:Python 语言程序设计后续课程:面向对象程序设计(Java)、数据结构与算法等。

适用专业:数据科学与大数据技术二、课程描述本课程是“Python语言程序设计”课程的集中实践和技能训练课程,旨在引领学生巩固、拓展Python语言的基本语法知识,加深对程序设计方法的理解。

选择适当的开发工具和环境,借助规模较小的问题透彻理解和掌握Python语言的基本语法现象,熟悉过程化、结构化程序设计技术;通过解决包含多语法现象的综合问题,实现对内存、外存的正确使用,理解调试工具与方法;通过查阅资料,针对具有应用背景的综合性项目,设计完整的解决方案并编写程序。

从而储备完备的Python语言语法和结构化模块化程序设计方法的知识,完成对中小型问题解决方案的分析和设计,利用Python语言程序得到正确的结果。

三、教学目标1. 能解释利用Python语言程序设计方法和计算机解决问题的过程,说明常见语法错误出现的原因并予以修正。

(支持毕业能力要求1)2. 能熟练使用控制结构、序列、函数、文件等知识解决相关的应用问题,能说明代码规范性的一般要求并在程序设计中加以合理运用。

(支持毕业能力要求1)3. 能查阅文献,综合运用数学、物理等方法,设计有实际背景和一定规模的复杂应用问题的解决方案,能够对出现的逻辑错误予以分析并修正,运用程序得到正确答案。

(支持毕业能力要求3)4. 能够根据具体应用问题设计满足特定需求的应用程序,并能够在设计环节中体现模块化、结构化程序设计思想和创新意识,考虑社会、安全、法律以及环境等因素。

(支持毕业能力要求3)5. 能正确选择并熟练运用一种工具和环境,编辑、调试和运行Python语言程序完成设计任务。

《程序设计实训》课程教学大纲

《程序设计实训》课程教学大纲

《程序设计实训》课程教学大纲课程中文名称:Java程序设计实训课程英文名称:Training for Java Programming Design课程编号:SJ002307学分:2总学时:40 实验学时:0上机学时:40开课学期:2适用专业:大数据学院各专业先修课程:《Java语言程序设计》开课单位:大数据学院一、课程性质和教学目标(需明确各教学环节对人才培养目标的贡献,即专业人才培养目标中的知识、能力和素质)课程性质:程序设计实训为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,复习、巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握;锻炼学生的分析解决实际问题的能力。

提高学生适应实际,实践编程的能力;同时也培养学生在项目开发中团队合作精神、创新意识及能力。

教学目标:1、对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理;2、系统设计要实用,编程简练,可用,功能全面;3、说明书、流程图要清楚;4、记录设计情况(备查,也为编写设计说明书作好准备);5、要求采用模块化程序设计方法,及锯齿型书写格式,要求上机调试通过,验收时能按要求修改程序增加系统功能;6、课程设计上交内容:设计报告一份(按格式书写);源程序文件。

二、课程教学内容及学时分配(含实践、自学、作业、讨论等的内容及要求)2.1、排队问题(5学时)2.1.1、问题描述体育老师小明要将自己班上的学生按顺序排队。

他首先让学生按学号从小到大的顺序排成一排,学号小的排在前面,然后进行多次调整。

一次调整小明可能让一位同学出队,向前或者向后移动一段距离后再插入队列。

例如,下面给出了一组移动的例子,例子中学生的人数为8人。

0)初始队列中学生的学号依次为1, 2, 3, 4, 5, 6, 7, 8, 9;1)第一次调整,命令为“3号同学向后移动2”,表示3号同学出队,向后移动2名同学的距离,再插入到队列中,新队列中学生的学号依次为1, 2, 4, 5, 3, 6, 7, 8, 9;2)第二次调整,命令为“8号同学向前移动3”,表示8号同学出队,向前移动3名同学的距离,再插入到队列中,新队列中学生的学号依次为1, 2, 4, 5, 8, 3, 6, 7, 9;3)第三次调整,命令为“3号同学向前移动2”,表示3号同学出队,向前移动2名同学的距离,再插入到队列中,新队列中学生的学号依次为1, 2, 4, 3, 5, 8, 6, 7, 9。

c语言程序设计实践课程设计

c语言程序设计实践课程设计

c语言程序设计实践课程设计一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、编程技巧和相关算法,培养学生独立编写C语言程序的能力,提高学生的逻辑思维和问题解决能力。

具体分为以下三个部分:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数、数组和指针等知识。

2.技能目标:学生能够熟练使用C语言编写程序,解决实际问题,具备一定的编程实践能力。

3.情感态度价值观目标:培养学生对计算机科学的兴趣和热情,提高学生自主学习、合作探究的能力,培养学生的创新精神和团队意识。

二、教学内容本课程的教学内容主要包括C语言的基本语法、编程技巧和相关算法。

具体安排如下:1.第一章:C语言概述,介绍C语言的发展历程、特点和基本语法。

2.第二章:数据类型和运算符,讲解整型、浮点型、字符型数据以及各类运算符的使用。

3.第三章:控制结构,学习顺序结构、分支结构和循环结构的使用。

4.第四章:函数,包括函数的定义、声明、调用以及递归等概念。

5.第五章:数组和指针,讲解一维、二维数组的定义和使用,以及指针的基本概念和应用。

6.第六章:字符串和文件操作,学习字符串的表示、处理方法以及文件读写操作。

7.第七章:算法和编程实践,介绍常见的排序算法、查找算法,并通过实际案例提高学生的编程能力。

三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法:1.讲授法:教师讲解基本概念、语法规则和算法原理,引导学生理解和掌握相关知识。

2.案例分析法:通过分析实际案例,让学生学会将理论知识应用于解决实际问题。

3.实验法:安排上机实验,让学生动手编写程序,培养学生的编程实践能力。

4.讨论法:课堂讨论,鼓励学生发表自己的观点,提高学生的思辨能力和团队协作能力。

四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《C语言程序设计》等相关教材,为学生提供系统性的学习资料。

2.参考书:提供《C程序设计语言》等参考书籍,帮助学生深入了解C语言的内涵。

《程序设计》课程实验教学大纲

《程序设计》课程实验教学大纲

《程序设计》课程实验教学大纲一、课程基本信息课程代码:课程名称:程序设计英文名称:Programming Languages and Programming实验总学时:30适用专业:本科计算机科学与技术、软件工程、信息管理与信息系统、电子商务、信息与计算科学专业课程类别:学科基础课先修课程:计算机科学导论二、实验教学的总体目的和要求本课程是一门实践性非常强的课程,要求学生注重实践,掌握程序设计的基础知识、基本概念和基本技能,一方面为《数据结构》、《面向对象的程序设计》、《软件工程》等后续课程的学习奠定程序设计基础,另一方面使学生不但掌握高级编程语言的知识、编程技术和基本算法,更重要的是掌握程序设计的思想和方法,培养编写和调试简单应用程序的技能,具备利用计算机求解实际问题的基本能力。

在掌握C语言的基本语法后,重点应放在提高编程能力的训练上。

通过多层次的实践教学环节,培养学生的严谨求实态度、工匠精神、创新精神,提高其创新能力。

(一)对学生的要求1. 实验前复习课程有关内容,熟练掌握本实验所涉及的基本概念、基本知识和基本技能,仔细设计完成每道题的算法,并画出流程图。

2. 写出实验预习报告,无实验预习报告者不得上机实验。

3. 实验课时原则上要求学生独立完成实验,严禁抄袭和拷贝。

4. 实验中遇到问题时可举手请求教师帮助解答,但原则上要求自己发现问题,自己分析问题,自己解决问题,以培养独立编写、调试程序的基本技能和利用计算机求解实际问题的基本能力。

5. 实验后写出实验报告,其内容应包括实验目的,经实验验证且结果正确的每道题的算法和流程图,程序的原代码及运行结果,并对运行结果和实验中出现的问题作出分析和解释。

(二)对教师的要求1.实验课前,应向学生说明实验的目的及相关的注意事项。

2.对于算法的关键点应予提示,以利学生思考。

3.实验课应检查学生的实验预习报告并耐心回答学生的提问,随时注意学生实验的进展情况,对普遍性的问题应及时作出纠正。

程序设计实践课程教学大纲

程序设计实践课程教学大纲

程序设计实践课程教学大纲一、课程简介《程序设计实践》是专业基础课程,为《程序设计基础》之后续课程,其主要目的是让学生进一步地对C语言基础知识,尤其是对数组、函数、指针、结构体、文件等内容进行深入的理解和掌握,课程结合具体的应用实例,应用软件工程和结构化程序设计的基本思想,将基本数据结构、算法、技巧进行综合,循序渐进地启发学生,直至完成综合的实例,同时,训练了学生实际分析问题的能力、编程能力和培养学生良好的编程习惯。

二、课程目标(一)课程具体目标1. 掌握C语言相关的编程进阶知识,并能够按照设计方案要求进行计算机软件实现;2. 具有良好的表达能力,专业的描述方法,能与业界同行及社会公众进行准确、高效的沟通和交流。

(二)课程目标与专业毕业要求的关系表1 本课程对专业毕业要求及其指标点的支撑(三)课程对解决复杂工程问题能力的培养在课程理论知识讲授环节,注重培养学生程序设计实践能力与解决复杂工程问题的能力。

在授课过程中引入与生活相关的实际案例,比如:学生信息管理系统、图书馆信息管理系统、简单的游戏设计等。

针对这些复杂案例,将需求分析、概要设计、详细设计、编码、调试与测试整个程序开发过程贯彻始终,通过案例引导学生将复杂问题进行分解,运用工程开发的方法解决复杂工程问题。

并通过适当的课后作业锻炼和检验学生解决复杂工程问题的能力。

在实验教学环节,以培养学生解决复杂工程问题的能力为目标,围绕课程支撑的毕业要求指标点安排实验项目,设计实验内容,明确实验要求,指导实验实施,严格实验成果考核。

在课程考核环节,根据课程支撑的课程目标选择合适的考核方式,考题设置应完全覆盖课程支撑的课程目标,考题设计应充分考虑学生解决问题所需知识和能力的考查,考题的难度和深度应能够体现复杂工程问题的特征。

总之,本课程的教学通过在理论讲授、课后作业、课内实验、课程考核等环节充分贯彻培养学生解决复杂工程问题能力的理念和要求,实现本课程支撑课程目标的达成。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《程序设计实践》课程设计任务书适用专业年级:电信类2016级1. 课程安排1.1 教学目标与任务《程序设计实践》是电信类专业的一门重要的实践课。

本课程设计是为使《程序设计基础(C语言)》课程取得更好的教学效果而设置,是进一步培养学生综合应用VC的各种编程知识和技巧进行应用程序编写的实际能力,包括:⑴训练学生掌握对数组、指针、链表、文件等的基本操作;⑵训练学生掌握模块化程序设计方法;⑶训练学生对一个实际应用系统进行综合分析、设计、编程及调试等的能力;⑷培养学生自主学习和独立创新的精神。

通过本课程的学习,要求学生能够运用C语言的理论知识,运用流程图的基本手段,熟悉C语言的标准编程规范,取得程序设计说明书及源代码等成果。

同时,通过本课程的学习训练学生文档编写能力、问题的分析与解决能力、流程图的绘制能力、代码编写能力、程序调试能力、小组协调与合作能力等,从而强化学生对C语言的认识,能够熟练使用C 语言的基本语法结构,能够运用C语言的函数进行小组开发,并利用流程图进行程序设计和交流,掌握code review的形式和方法,掌握自主开发中小型程序的能力,了解大型程序开发的步骤和方法。

1.2 基本要求本课程要求以一人一组的形式进行程序开发。

在课程结束(含中期阶段性结束)时,每人都需提交以下几份成果:1) 电子版的系统设计报告2) 纸质版的课程设计报告3) 程序源代码1.3 课程阶段说明本次课程设计分为两个阶段,第一个阶段为1-8周,第9周进行考核(考试),主要训练程序设计的基本功,包括程序设计三个基本结构、函数、数组、指针、链表、文件等的基本操作和部分典型算法;第二个阶段为10-17周,利用模块化的程序设计方法,对一个应用系统进行分析、设计和编程调试并撰写课程设计报告。

本课程分为两个阶段,如表1所示。

表1 课程的3个阶段1.3.1 基本能力训练阶段按要求完成基本能力训练阶段的所有题目(题目见2.1):1.3.2 系统程序设计阶段根据给定的综合程序设计题目(2.2),选择1题或自主选择题目。

完成对题目的功能分析,数据结构设计,程序流程设计及代码编写,调试等工作。

1.4 评分标准本次课程设计第一阶段占50%(其中平时检查和考勤20%,考试占30%);第二阶段占50%(其中平时检查和考勤10%,答辩30%,报告10%)。

1.5 上机辅导安排本课程总共64学时,16周,每周4学时(2学时集中上机,2学时由指导教师自主安排答疑)。

班级:电信类1601-1606班。

表2 上机辅导安排1.6 选题要求1) 基础训练题目每题都做。

2) 综合题目选择1题,或自主选题。

自主选题必须要用到链表或数组,文件操作,用户交互操作等。

【注】如果最后发现学生提交上来的成果是抄袭自网上现成的程序和文档,那么这门课程的成绩为零分。

2. 参考选题2.1 基础题1、输入x ,求分段函数⎪⎪⎩⎪⎪⎨⎧<+<≤----≥+-=10)sin()cos(0102101)(22x x x x x xx x x x f 的值。

2、分别利用循环和递归求1+2+3+……+n 的和,其中n 从键盘输入。

3、输入一个正整数,求该正整数的位数以及各位数字之和。

4、输入一个正整数,将该正整数表示为其各个质因子之积的形式,如24=2*2*2*3。

5、输入一个正整数,求其各个因数之和(所谓一个数的因数,是指除了这个数本身之外,其它能整除这个数的数,如18,其因数有1,2,3,6,9)。

6、求出100~999之间的所有水仙花数(所谓水仙花数是指一个三位数,其各位数字的立方和等于该数本身)。

7、任何大于等于6的偶数都可以表示为两个素数之和,请将6~100之间的所有偶数都表示来两个素数之和,其中判断一个数是否是素数设计成函数。

8、输入两个正整数,输出这个两正整数的最大公约数和最小公倍数。

9、有斐波拉契数列1,1,2,3,5,8,13……,请按每行6个数据输出该裴波拉契数列的前30项。

请分别用循环和递归算法求解。

10、利用泰勒展开式求cosx 和sinx 的值,要求当最后一项的值小于10-7时停止。

+-+-=!6!4!21)cos(642x x x x+-+-=!7!5!3)sin(753x x x x x11、输出九九乘法表(可以全部输出,也可以按要求输出上三角或下三角的形式,要求每个式子数字占两位,其它符号1位,如 9* 9=81)。

12、输出1000以内的所有亲密数对,所谓亲密数对是指,如果m的因素和是n,而n的因数和是m,且m和n不相等,则称m和n是亲密数对。

13、用矩形法求函数)fπx=在区间(a,b)之间的积分,其中a,b从键盘输2cos()(x入(a<b)。

14、输入n打印如下实心菱形图案和空心菱形图案(下图为n=5时)。

15、输入一个正整数,将其转换为二进制、八进制或十六进制之后输出(程序中可以进行进制的选择)。

16、输入一行字符,统计其中字母、数字、其它符号的个数。

17、输入一行字符,将其中的大(小)写字母转换成小(大)写字母。

18、输入一个英文句子,统计其中单词的个数。

19、输入若干个数据,求输入数据中的最大值、最小值、平均值。

20、输入若干个数据,统计输入数据中大于平均值的数据个数。

21、输入n个数据存入一个一维数组中,将其顺序倒置后输出。

22、输入一个字符串,倒序输出该字符串。

23、输入n个数据,对其进行排序输入(简单排序、冒泡排序、选择排序、插入排序)。

24、输入n个数据,查找其中是否存在x ,如果存在输出其下标号。

25、输入n个数据,删除其中的x,再输出剩下的n-1个数据。

26、输入n个数据,将其中所有重复的数据删除只剩一个。

27、输入n个数据,对其进行循环移位输出。

28、以直角或等腰三角形的形式输出杨辉三角形。

29、以高斯消元法求解多元一次方程组的解。

30、输入一个m×n的矩阵,求该矩阵每行的最大值、最小值、平均值,每列的最大值、最小值或平均值。

31、输入一个m×m的矩阵,求其对角线上元素之和,或求其对角线上元素的最大值、最小值。

32、输入一个m×n的矩阵,输出其中所有在行上最大列上最小的元素的下标和元素本身。

33、输入一个m×m的矩阵,求其转置矩阵。

34、输入若干个字符串,按字符串从小到大输出,或按字符串的长度从短到长输出。

35、输入一个字符串,输出其左子串、右子串或中间的子串。

36、随机出十道100以内的加减乘除运算题(每题只含一个运算符),并根据输入结果给出得分。

37、结构体数组的排序输出(如:学生的成绩管理)。

38、带有头结点的单链表的建立和遍历。

39、不带头结点的单链表的建立和遍历。

40、对带有头结点的链表中满足某个条件的结点进行删除。

41、对不带头结点的链表中满足某个条件的结点进行删除。

42、对带有头节点的有序链表,插入一个结点,使其仍然有序。

43、对不带头结点的有序链表,插入一个结点,使其仍然有序。

44、利用链表实现两个多项式相加。

45、利用链表实现两个多项式相乘。

46、利用位操作输出一个整数的二进制数据。

2.2 综合题2.2.1 图书管理系统设计并实现一个小型的图书管理系统,要求设计一个数据结构来管理多本图书,并能实现图书的添加、删除、插入等,以及将图书信息保存到文件中、从文件中读入图书信息。

主要用到的数据结构:结构体、简单链表。

主要用到的C语言知识:结构体、指针、链表、文件输入/输出等。

2.2.2 学生管理系统设计并实现一个小型的学生管理系统,要求设计一个数据结构来管理多个学生,并能实现学生的添加、删除、插入等,以及将学生信息保存到文件中、从文件中读入学生信息。

主要用到的数据结构:结构体、简单链表。

主要用到的C语言知识:结构体、指针、链表、文件输入/输出等。

类似的管理系统包括:课程管理系统、社团管理系统、超市商品管理系统、超市会员管理系统、车辆管理系统等。

2.2.3 字符界面扫雷游戏【注1】这个例子摘自教材:王衍,王桂平,冯睿,马雪英编著. 程序设计方法及在线实践指导. 浙江大学出版社. 2010年1月. (附有电子版)编程实现一个字符界面的扫雷游戏。

功能需求如下:1) 允许用户输入地图的大小,为简化起见,地图的大小是N×N的,N的值从键盘输入,5≤N≤20。

默认为5。

2) 地图中地雷的个数允许用户输入。

建议用户输入的地雷个数小于N*N/4。

地雷的分布是随机的。

3) 初始时显示地图,各个位置都没有点开,也没有标记,格式如下图所示(该地图大小为10×10)。

_______________________________________|___|___|___|___|___|___|___|___|___|___||___|___|___|___|___|___|___|___|___|___||___|___|___|___|___|___|___|___|___|___||___|___|___|___|___|___|___|___|___|___||___|___|___|___|___|___|___|___|___|___||___|___|___|___|___|___|___|___|___|___||___|___|___|___|___|___|___|___|___|___||___|___|___|___|___|___|___|___|___|___||___|___|___|___|___|___|___|___|___|___||___|___|___|___|___|___|___|___|___|___|图1 字符界面扫雷游戏的地图4) 玩游戏时,用户每次操作是从键盘输入3个数据:x y op来表示的,(x,y)表示操作的位置,字符op表示要执行的操作。

可以执行的操作有:点开(用字符“.”表示)、标记地雷(用字符“!”表示)、取消标记地雷(用字符“c”表示)、退出游戏(用字符“q”表示)。

a) 如windows扫雷游戏一样,当点开的位置(x,y),其8个相邻位置上地雷总数为0,则点开连成一片的空白区域。

某个位置的8个相邻位置从左上角开始按顺时针顺序依次为:左上角、上、右上角、右、右下角、下、左下角、左。

b) 如果在游戏过程中踩到地雷,则游戏失败。

c) 如果用户标记出来的每个地雷位置跟实际的位置一致,并且标记出来的地雷个数与实际地雷个数一致,则游戏成功完成。

并且,这时把还没有点开的位置(这些位置上都没有地雷)都点开。

5) 每执行一次操作后,显示操作后的地图。

6) 使用文件记录游戏的步骤,时间和结果。

7) 使用6)的文件,重现游戏过程。

图2 某次游戏过程。

相关文档
最新文档