导航菜单
首页 >  程序设计综合实践考试  > C++《程序设计综合实践I》教学大纲

C++《程序设计综合实践I》教学大纲

C++《程序设计综合实践I》教学大纲

《程序设计综合实践I》教学大纲

一、课程基本信息

1.课程名称:程序设计综合实践I 2.课程编号: 3.课程体系/类别:实践必修 4.课程性质:必修 5.学分:1 6.先修课程:程序设计基础 7.适用专业:计算机科学与技术专业、网络工程专业、信息安全专业

二、课程教学目标

《程序设计综合实践I》是一门理论性和实践性均较强的专业基础课,是在学习完《程序设计基础》这门理论课之后为加强学生的动手实践能力而开设的一门课程设计课,程序设计综合实践是集中实践性环节之一,是学习完程序设计基础课程后进行的一次全面的综合练习。通过学生自己动手编程实践,培养学生的编程思维,训练和提高学生的编程能力,为今后高质量完成毕业设计打下坚实的基础。本课程要求以团队合作形式,根据选题的难度,每组最多由2人组成(若选择与机器人设计相关的题目则每组最多由3人组成),也可以独立完成。本课程目的是使学生通过一个相对综合的小项目开发的完整过程了解项目的开发全程,巩固《程序设计基础》课程所学的内容,使学生能够熟练掌握程序设计语言的基本知识,掌握程序设计的思想和方法,能利用所学的基本知识和技能解决简单的程序设计的问题,培养学生的团队合作和与人沟通能力。 本课程的教学目标有如下几点: 1、 在掌握了程序设计的基本概念、程序设计语言的语法,特别是结构化程序设计的三大结构、数组、函数、文件等程序设计知识的概念和应用后,具备利用程序设计的基础知识分析和表示待求解问题,设计合理的程序结构的能力。 2、 能够掌握高级程序设计语言集成开发环境的安装及应用,掌握一定的软件开发技术,能够根据待解决问题的需要,编写出结构清晰、功能完整的程序。 3、 具备初步的高级语言程序设计能力,具备常用开发软件的应用能力及解决复杂工程问题的能力;能够获取、选择开发所需的相关技术、资源和工具并用于分析和解决复杂工程问题;能就相关复杂工程问题与业界同行及社会公众进行有效沟通和交流,包括撰写报告和设计文稿、表达或回应指令,具备发现问题、解决问题的能力。 学习本课程后,学生能够应用程序设计语言开发一个较为实用的软件系统,具备一定的计算机专业基本技能和应用能力,能够综合运用程序设计的知识和一些初步的算法发现和分析计算机领域的复杂工程问题,能够设计相应的研究方法和设计方法解决问题。

三、课程目标和毕业要求的对应关系

课程目标和毕业要求的对应关系见表1。

表1 课程目标和毕业要求的对应关系 毕业要求 毕业要求指标点 课程目标 1工程知识: 能够将数学、自然科学、工程基础和专业知识用于解决计算机及相关领域的复杂工程问题。 1.4 能够基于工程实践实现计算机相关领域复杂工程问题的解决方案,并对方案进行评价。 1 4 研究:能够基于科学原理并采用科学方法对计算机领域中的复杂工程问题进行研究,包括设计实验、分析与解释数据、并通过信息综合得到合理有效的结论。 4.2按照研究需要设计实验,能正确操作实验装置,运用计算机软硬件实验环境进行实验,并正确采集、整理实验数据。 2 10 沟通: 能够就计算机领域复杂工程问题与业界同行及社会公众进行有效沟通和交流,包括撰写卷面报告、设计文档、编写代码和口头陈述等。能够在跨文化背景下进行沟通和交流,具备一定的国际视野。 10.1 能够就计算机领域复杂工程问题的设计方案、研究方法、技术路线等问题,通过书面报关、设计文稿、程序或口头陈述等方式,清晰地表达团队或个人观点与设计理念。 3

四、课程教学内容和要求

《程序设计综合实践I》为软件类课程设计,课程设计来源于实践、服务于实践,工学结合开发课程设计,在项目安排上以符合本专业的生产实际为项目主体,通过给定的一些综合实训题目,对程序设计基础所需的各种知识进行整合,重点培养学生对于一个完整的软件系统的综合设计、分析与应用能力。课程设计题目主要以小型信息管理系统为主,另外有一些机器人操作的题目,允许学生自拟题目,但自拟题目需要经过老师同意。在引入项目的基础上,每个知识点由相应的任务来支撑,处处体现“项目引导、任务驱动”。 设计分以下几个阶段进行:开题、概要设计、详细设计、系统测试与调试、系统验收。 (1) 课程设计实施的步骤与环节 主要实施步骤与环节包括: 教学内容 时间安排(每年) 1、组建课程设计小组、确定课程设计主题以及完成开题报告。 第一周 2、学生完成选定的课程设计题目。 3、学生撰写课程设计报告。 4、学生汇报课程设计结果,提交课程设计报告。 开学前一周内 5、指导教师上报课程设计成绩。 开学后一周内 (2) 各环节的内容

课任教师确认本人指导的学生名单,按每组学生为1-3名分组。课任教师讲解课程设计的性质、目的、方法、要求、流程、时间安排、组队要求、选题和开题报告、调研方法、概要设计、详细设计、系统测试与调试、系统验收、报告或论文的规范与要求、评分标准等。确定各小组的选题。 4)通过QQ、电话、电子邮件以及诸如腾讯会议等在线会议的形式,追踪指导学生的课程设计过程,解疑释惑。需要追踪的过程包括撰写开题报告、概要设计、详细设计、系统测试与调试等过程指导、实践报告(论文)的撰写等环节。便于指导教师了解学生课程设计的进度情况,及时调整工作方案。 5)检查学生的课程设计程序完成情况; 6)学生撰写并修改课程设计报告或论文; 7)学生就本小组的课程设计题目,向全班汇报课题的构思和完成结果; 8)评定课程设计报告或论文并提交成绩。 (3)学习内容与指标点之间的支撑关系 本课程的为1个学分。本课程的学习内容和要求及对指标点的支撑关系见表2。 表2 学习内容和要求及对课程目标的支撑关系 学习内容 学习要求 建议 学时 对应的课程目标 选题 理解本所选课题的目的、要求和意义,根据小组的知识应用能力选择课题 2 课程目标1 开题 针对课题开展调查研究,阅读中外文献,提出自己的解决方案,制订个人工作计划 4 课程目标1 概要设计 明确系统的输入和输出,确定采用的数据结构和操作算法 4 课程目标2 详细设计 设计数据结构和操作算法 6 课程目标2 系统测试与调试 输入测试数据,调试程序,分析实验结果 2 课程目标2 撰写设计报告 掌握课程设计报告或论文的编写规范 10 课程目标3 汇报、答辩 能够对所做的工作做简单的陈述 4 课程目标3 (4)建议选题 表3为建议但并不限于此的可选课程设计题目,通过完成选题的设计与开发,培养学生综合利用C/C++语言进行程序设计的能力(课程目标1),加强函数的运用及学生对软件工程方法的初步认识(课程目标2),提高软件系统分析能力和程序文档建立、归纳总结的能力,培养学生利用系统提供的标准函数及典型算法进行设计(课程目标3)。

表3 参考选题及学习要求 参考选题 学习要求

1、班级学生成绩管理系统

具体要求如下:(1)通过此模块来管理课程信息,包括查询、添加、修改、删除等功能。在进行课程信息添加时,系统会自动监测所添加的信息是否已经存在,如果存在,会提示已经存在。在进行课程信息删除时,同样要求再次确定。(2)实现对学生信息、课程成绩的文件存取(分别存储在StudentInfo.txt、StudentScore.txt和GraduateCheck…txt文件中),实现对学生信息、课程成绩的记录增加、删除及修改。(3)实现输入学生学号或姓名查询并显示学生的课程成绩。

2、简单的产品管理系统

合理运用C/C++/Java语言的数组、指针、结构体及文件操作等,实现一个模拟的班级学籍管理系统。该系统用于管理产品的基本信息及信息统计。具体要求如下:(1) 通过键盘或读取文件的方法读取产品的信息,对各类产品进行统计和分析。(2) 要求使用结构数组和结构指针,各个功能分别使用函数来完成,主函数和各个函数分别存放在不同的.c文件中,要求使用头文件。(3) 要求使用选择法排序,折半查找法进行查找。(4) 要求在程序中能够运用结构化程序设计的选择和循环结构,并熟练使用相关的语句(如do while、for、if-elseif等)。(5)创新要求。在基本要求达到后,进行创新设计,如进行删除或插入操作。

3、个人信息管理系统

合理运用C/C++/Java语言的数组、指针、结构体及文件操作等,实现一个模拟的个人信息管理系统。该系统可以对每个学生的消费、生活及学习进行系统的管理,把这几项内容综合在一起开发了具有个人特色的管理系统。 具体要求如下:(1) 学生的基本信息管理主要包括了学生的姓名、学号、性别、出生年月、专业、爱好等内容。(2) 消费模块主要包括个人消费记录。主要功能有:数据的添加、数据的查找、数据的删除、数据的修改、数据逐个显示、消费总额的显示等。(3) 学生课程成绩模块主要包括学习成绩记录。主要功能有:数据的添加、数据的查找、数据的删除、数据的修改、数据逐个显示、消费总额的显示等。(4) 要求在程序中能够运用结构化程序设计的选择和循环结构,并熟练使用相关的语句(如do while、for、if-else等)。程序要有主菜单,能够完成主要的功能。

4、 通信录管理系统

合理运用C++语言的数组、指针、结构体及文件操作等,实现一个模拟的班级通信录管理系统。该系统用于管理学生的基本信息、通信信息等。具体要求如下:(1) 通过键盘或读取文件的方法读取学生的通信信息。(2) 系统需要有添加模块、查询模块、删除模块、修改模块等。(3) 用户登录查询时,可以通过输入姓名或学号等查到某人的信息,并输出这些信息。若找不到则显示找不到信息。(4) 在添加某人信息时,若通讯录中已有该人的信息,则提示信息已存在。(5) 要求在程序中能够运用结构化程序设计的选择和循环结构,并熟练使用相关的语句(如do while、for、if-elseif等)。程序要有主菜单,能够完成主要的功能。

5、 班级信息管理系统

合理运用C++语言的数组、指针、结构体及文件操作等,实现一个模拟的班级通信录管理系统。该系统用于管理学生的基本信息、通信信息等。具体要求如下:(1)工作人员可以通过此程序来管理学生信息,包括查询,添加,修改,删除等功能。(2)在进行添加时,系统会自动监测所添加的学生信息是否已经存在,如果存在,会提示用户该学生已经存在。(3)在删除时,要首先弹出对话框,让用户确认是否删除,只有经过确认才能够被删除。(4)在进行学生信息管理时,不准用户修改学号。(5)通过键盘或读取文件的方法读取学生的信息。(6)能够运用结构化程序设计的选择和循环结构,并熟练使用相关的语句(如do while、for、if-elseif等)。(7)程序要有主菜单,能够完成主要的功能。

6、 小型公司人员信息管理系统

某公司有三类人员,经理、兼职技术人员、兼职销售员。这些人员分别具有以下属性:(1) 经理:姓名、编号、固定工资、当月薪水、计算月薪、显示信息。(2) 兼职技术员:姓名、编号、工作小时、每小时工资额、当月薪水、计算月薪、显示信息。(3) 兼职销售员:姓名、编号、销售额、销售提成、当月薪水、计算月薪、显示信息。 具体要求:(1) 人员编号基数为1000。每输入一个人员信息,编号顺序加1。(2) 月薪计算方法是:经理固定工资8000元,兼职技术员按100元/小时领取月薪,兼职销售员按当月销售额的4%提成。(3) 工作人员可以通过此程序来管理人员信息,包括查询,添加,修改,删除等功能。(4) 在进行添加时,系统会自动监测所添加的人员信息是否已经存在,如果存在,会提示用户该人员已经存在。(5) 在删除时,要首先弹出对话框,让用户确认是否删除,只有经过确认才能够被删除。

7、 学院教职工信息管理系统

某学院有三类人员,教师、实验室人员、办公室人员。这些人员分别具有以下属性:(1) 教师:姓名、编号、职称、固定工资、当月课时数、当月薪水、计算月薪、显示信息;(2) 实验室人员:姓名、编号、固定工资、工作小时、每小时工资额、计算月薪、显示信息;(3) 办公室人员:姓名、编号、固定工资、当月薪水、计算月薪、显示信息。具体要求如下:(1)人员编号基数为1000。每输入一个人员信息,编号顺序加1。(2)月薪计算方法是:教师固定工资2000元,教授课酬为30元/小时,副教授为25元/小时,讲师和助教为20元/小时;实验室人员固定工资1000元,每小时课酬额10元;办公室人员的固定工资为2500元。(3)工作人员可以通过此程序来管理人员信息,包括查询,添加,修改,删除等功能。(4)在进行添加时,系统会自动监测所添加的人员信息是否已经存在,如果存在,会提示用户该人员已经存在。(5)在删除时,要首先弹出对话框,让用户确认是否删除,只有经过确认才能够被删除。

8、库存管理系统

设计开发一个简单的库存管理系统,服务于诸如鞋店,汽车配件,百货或文具店等销售商店。程序应该包含:(1)一个包含出售各种项目记录的文件。记录应包含:项目名称、项目描述、目前的库存量、重新定货级别——定单的数量、重新定货的数量、供应商细节、重新定货的运输时间、标识大宗定货。(2)一个包含大宗定货信息记录的文件。记录格式应为:定货编号(唯一)、项目编号、定货日期、到货日期。要求系统可以实现以下功能:(1)允许在线登录销售;(2)允许在线支付;(3)打印合适的重新定货表格;(4)允许对两个文件的查询,例如查找过期的定单和缺货的项目。扩展功能:(1)文件结构。包含批发和零售的价格信息;(2)引进第三个文件,记录每天的销售额;(3)按要求输出总的存货量,可支付的大宗定货总量。

9、模拟家庭关系

设计一个模拟家庭关系的数据结构。每个人用一个结构体表示, 包含有他(她)的名字、性别、年龄和指向其父亲、母亲、配偶、子女链的指针,如图所示。试编写以下函数和函数: (a)增加一个新人; (b)检查某两人之间关系的函数;©检查某两人是否堂兄弟姐妹的布尔函数;(d)检索某人, 并输出他的直系亲属的情况;(e)遍历整个结构。

10、模拟博彩游戏

编写一个程序,读入一个正整数N,模拟N个人之间的赌博游戏。该游戏按以下方式进行:每一个玩家都有一个赌博卡片,该卡片由5×5的正整数矩阵构成,卡片的中心是空的。第一列由1到16之间的数构成;第二列由17到32之间的数构成;如此等等。在游戏开始时,中心位置是隐蔽的(covered)。一个玩家在1到80的范围之内猜卡片上被覆盖的数。每猜到一个,就在卡片上把对应的元素翻转过来。当13个被覆盖的数全部被猜到时,用猜过的数列给该卡片一个“bingo”。被覆盖的数字包括:矩阵中心9个元素;矩阵四角4个元素。你的程序应该为玩家随机产生卡片(根据上面描述的规则),并产生每次猜的数,直到有一个或多个玩家得到一个“bingo”卡片。程序输出:一张卡片被标为“bingo”之前,所猜的所有数;当每张卡片都得到一个“bingo”时,每张卡片上被覆盖的数。

11、文件加密、解密。

用C/C++语言实现一个文件加密、解密程序。示例:对一个普通的文

相关推荐: