基于CDIO的程序设计类课程案例的设计与实施

基于CDIO的程序设计类课程案例的设计与实施
基于CDIO的程序设计类课程案例的设计与实施

基于CDIO的程序设计类课程案例的设计与实施

摘要:传统的程序设计类课程教学与实验案例不利于计算机专业学生工程能力的培养。基于CDIO教学模式的框架,提出程序设计类课程教学与实验案例的设计原则,并结合盐城师范学院课程体系的具体情况,设计相应的实施方案。实践结果表明,基于CDIO的教学与实验案例的实施,激发了学生学习主动性,训练了学生的工程思维,帮助学生积累了必要的开发经验,从而培养了工程能力。

关键词:CDIO;教学改革;程序设计类课程;案例设计

长期以来,程序设计类课程教学强调语法知识,轻视设计、编码以及团队协作能力的培养,忽视工程经验的积累。大部分程序设计类课程相关教材、实验指导书以及教学参考书中的案例设计以辅助讲解语法规则为目的,案例虽简单易理解,但无益于学生工程能力的培养。从我院几年的程序设计类课程教学效果反馈以及跟踪调查结果可以看出,大部分学生虽然系统地掌握了程序设计语言基础知识,但不能很好地完成后续实践课程与各级软件竞赛中原型系统的开发。因此,我院以CDIO工程教育模式为指导思想,以C++程序设计课程为龙头,改革程序设计类课程的教学模式,探索教学环节与实践环节案例的设置策略与方案,实践结果表明,在具有较强工程背景与应用价值的案例的学习与实践中,学生增强了主动学习的意识与能力,积累了必要的开发经验,培养了工程能力。

1CDIO工程教育模式

上世纪90年代末,MIT(Massachusetts Institute of Technology,麻省理工学院)航空航天系教师着手在小范围内探讨如何能把理论知识的传授和实践能力的培养结合起来,开始推动CDIO(Conceive构思、Design设计、Implement实施、Operate 运作)教育改革计划。1999—2000学年,MIT开展了小型的预研究。2000年10月,MIT联合瑞典3所大学,合作组成跨国研究组,启动CDIO工程教育改进计划[1]。近年来,国内包括清华大学[2]、中南大学[3]等在内多所高校关注CDIO 教学模式,并结合自身专业与课程的特点,进行了一系列有益的探索。CDIO的观点是教师在构思—设计—实施—运作真实世界中的系统与产品过程中教授工程原理[4]。

课程改革是CDIO四大主题之一[5],也是学生学习构思与设计复杂系统相关知识、技能的重要保证。CDIO的课程改革必须解决两个问题:什么是工程类学科学生应该掌握的完整的知识、技能以及意识体系;如何改革才有助于学生更好地掌握这些技能。为了解决这两个问题,CDIO提出了包括一体化课程设计(Integrated Curriculum Design)、设计—实施经验(Design-Implement Experiences)、建立工程工作区(Engineering Workspace)等一系列措施[6]。其中设计—实施经验是CDIO计划的主要特点,也是实现一体化课程的最重要措施[5]。本文借鉴设计—实施经验的基本思想,结合程序设计类课程的特点,提出了程序设计类课程

C语言程序设计课程设计题目

1 一元稀疏多项式的运算 问题描述:设有两个带头指针的单链表表示两个一元稀疏多项式A、B,实现两个一元稀疏多项式的处理。 实现要求: ⑴输入并建立多项式; ⑵输出多项式,输出形式为整数序列:n,c1,e1,c2,e2……c n,e n,其中n是多项式的项数,c i,e i分别为第i项的系数和指数。序列按指数降序排列; ⑶多项式A和B相加,建立多项式A+B,输出相加的多项式; ⑷多项式A和B相减,建立多项式A-B,输出相减的多项式; ⑸多项式A和B相乘,建立多项式A×B,输出相乘的多项式; ⑹设计一个菜单,至少具有上述操作要求的基本功能。 测试数据: (1) (2x+5x8-3.1x11)+(7-5x8+11x9) (2) (6x-3-x+4.4x2-1.2x9)-(-6x-3+5.4x2+7.8x15) (3)(x+x2+x3)+0 (4)(x+x3)-(-x-x-3) 2 成绩排序 假设某年级有4个班,每班有45名同学。本学期有5门课程考试,每门课程成绩是百分制。假定每个同学的成绩记录包含:学号、姓名各门课程的成绩共7项,其中学号是一个10位的字符串,每个学生都有唯一的学号,并且这4个班的成绩分别放在4个数组中,完成以下操作要求: ⑴编写一个成绩生成函数,使用随机数方法,利用随机函数生成学生的各门课程的成绩(每门课程的成绩都是0∽100之间的整数),通过调用该函数生成全部学生的成绩; ⑵编写一个平均成绩计算函数,计算每个同学的平均成绩并保存在成绩数组中; ⑶用冒泡排序法对4个班的成绩按每个同学的平均成绩的以非递增方式

进行班内排序; ⑷用选择排序法对4个班的成绩按每个同学的平均成绩的以非递增方式进行班内排序; ⑸对已按平均成绩排好序的4个班的同学的构造一个所有按平均成绩的以非递增方式排列的新的单链表; ⑹设计一个菜单,至少具有上述操作要求的基本功能。 3 迷宫问题 问题描述:以一个m×n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 实现要求: ⑴实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。 ⑵编写递归形式的算法,求得迷宫中所有可能的通路; ⑶以方阵形式输出迷宫及其通路。 [测试数据] 迷宫的测试数据如下:左上角(1,1)为入口,右下角(8,9)为出口。 1 2 3 4 5 6 7 8 实现提示:

综合程序课程设计题目汇总1

*注意 2人一组共同完成一个题目,任务书要求分工必须明确。对 于题目比较容易的,也可1人一个题目。可以从如下题目中选择,教师也可以自拟题目,但必须达到足够难度。 题目设计:赵敏孙成立 题目1、计算器程序设计 [问题描述]:设计一个多功能计算器,可以完成基本的计算。 [设计要求]: 1.具备整型数据、浮点型数据的算术(加、减、乘、除)运算功能。依次输入第一个运算数、运算符(+,-,*,/)、第二个运算数,然后输出结果。结果可以作为下一个运算的第一运算数。按‘C’清屏,按‘R’返回菜单。 例如:输入:2 + 5 输出:7 2.实现单运算符表达式计算的功能。输入的操作数可以包含整数或浮点数。输入表达式如下: 例如:输入:2+5 输出:7 3.除数为零或者输入的不是数字时进行异常处理 题目2、两个源程序的相似性判别 [问题描述] 对于两个C语言的源程序清单,用哈希表的方法分别统计两个程序中使用C语言关键字的情况,并最终按定量的计算结果,得出两份源程序清单的相似性。[基本要求] C语言关键字的哈希表可以自建,也可以利用《数据结构及应用算法教程》(严蔚敏陈文博编著清华大学出版社)书中8.10的哈希表。此题的工作主要

是扫描给定的源程序,累计在每个源程序中C 语言关键字出现的频度。在扫描源程序过程中,每遇到关键字就查找哈希表,并累加相应关键字出现的频度。为保证查找效率,建议自建哈希表的平均查找长度ASL 不大于2。 扫描两个源程序所统计的所有关键字不同频度,可以得到两个向量。如下面简单的例子所示: 关键字 程序1种关键字频度 程序2种关键字频度 哈希地址 0 1 2 3 4 5 6 7 8 9 X 1=[4,3,0,4,3,0,7,0,0,2] X 2=[4,2,0,5,4,0,5,2,0,1] 通过计算向量X1和X2的相对距离来判断两个源程序的相似性,相对距离的计算方法是 1/2 1212121/21/21/21/2 121122||(()())||||()()T T T X X X X X X s X X X X X X ---==???,T 表示向量的转置。 按例子所给的数据,s ≈0.13。显然当X 1=X 2时,s=0,反映出可能是同一个程序;s 值越大,则两个程序的差别可能也越大。 [测试数据] 做几个编译和运行都无误的C 程序,程序之间有相近的和差别大的,用上述方法求s,并对比差异程度。 [实现提示] 本题的很大工作量将是对源程序扫描,区分出C 程序的每一关键字。可以为C 语言关键字集建一棵键树,扫描源程序和在键树中查找同步进行,以取得每一个关键字。 题目3、 学生成绩管理系统 现有学生成绩信息,内容如下

《C语言程序设计》课程教学设计方案

《C语言程序设计》课程教学设计方案 -CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN

C语言程序设计课程教学设计方案 课程名称:C语言程序设计 课程编号:590109120632 课程类型:理论含实践 课程学时:94学时,其中理论教学47学时,实践教学47学时 适用专业:图形图像制作 一、课程教学设计的背景 (一)专业认知 1.专业培养目标:全面贯彻党的教育方针,面向企事业单位平面设计与制作、室内外设计与制作及基础图像处理等一线岗位,培养适应我国社会主义市场经济和现代化建设需要,德、智、体、美全面发展,掌握设计理论知识,熟练运用计算机辅助设计软件进行平面及三维产品设计制作,具备一定的美术设计理念和艺术素养以及基层青年工作能力的高端技能型专门人才。 2.人才培养规格: (1)基本素质与基本技能要求 学生应具有良好的德、智、体、美全面发展的综合素质,具有正确的人生观、价值观和良好的职业道德修养,具有高职生应有的文化修养及健康的体魄和心理素质;具有较扎实的计算机操作能力;具有相当水平的英语应用能力。 (2)专业素质与专业技能要求 掌握数字化平面、立体图形及图像制作技术的基础理论和基本原理,具有一定的审美能力,具备基础数字图像制作与处理、典型平面产品设计与印前图文处理、三维装饰效果图制作、建筑施工图制作等能力,熟练掌握相关计算机制图软件,能综合运用所学知识,设计制作高品质的平面典型产品及三维立体图像。 (3)专业拓展能力要求 具备计算机制图应用领域的相关知识和能力,特别是在互联网基础应用、网站规划与网页设计、网络动画制作等方面的知识和能力,能够学有所长,拓展延伸,加大专业辐射面,培养锻炼学生的自主创业能力。 3.证书要求:

程序设计基础课程设计

设计题目:学生成绩管理系统班级:计0902 姓名:付乐颖 学号:20091221067 完成日期:2010.10.15

1. 课程设计目的和要求 随着科学的发展和社会的进步,许多过去有人工处理的繁杂事务开始交付计算机来完成。学生成绩管理系统可以说是一个得力助手,它利用计算机对学生成绩进行统一管理,实现学生成绩信息管理工作流程的系统化、规范化和自动化,提高了广大教师的工作效率。 本程序旨在训练学生的基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件等的各种基本操作,使学生能对C语言的文件操作有一个更深的理解。为进一步开发出高质量的信息管理系统打下坚实的基础。 2. 课程设计任务内容 学生包含以下信息项:学号、姓名、学院、班级、高数成绩、英语成绩、C语言成绩、总分、平均分。系统的主要功能包括: 1. 创建学生成绩信息文件,根据提示输入学生的各项信息,计算出总分和平均分,然后按学号对学生信息进行排序,并将排序后的学生成绩信息存储到一个二进制文件中。 2. 增加学生信息,在原有学生信息文件的基础上增加新的学生成绩信息,要求:增加后的学生信息仍按学号排序,并继续保存至原文件。 3. 删除学生信息,提示用户输入要进行删除操作的学号,如果在文件中有该信息存在,则将该学号所对应的学生信息删除,否则输出提示信息,并提示用户选择是否继续进行删除操作。 4. 修改学生信息,提示用户输入要进行修改操作的学号,如果在文件中有该息存在,则将提示用户输入该学号对应的要修改的选项,结果保存至原文件,并提示用户选择是否继续进行修改操作。 5. 按不同条件对学生信息进行查询操作,输出满足条件的学生信息。 (1) 按学号查询,输入一个学号,输出对应的学生信息。

java课程设计2013级大纲以及设计报告

珠海学院课程教学大纲 课程名称:java程序课程设计 适用专业: 2013级计算机科学与技术 课程类别:专业基础课 制订时间:2014年12月 计算机科学与技术系制

目录 1java程序课程设计教学大纲 2 java程序课程设计说明书 3 java程序课程设计报告(模板) 4 java程序课程设计成绩评定表 java程序课程设计教学大纲 (2011年制订,2014年修订) 一、课程编号: 二、前修课程:java程序设计 三、学分:2学分 四、学时: 32学时 五、课程性质与任务: 1.课程性质:《java程序课程设计》是吉林大学珠海学院计算机科学与技术系为本科生各专业开设的专业实践课。计算机科学与技术系本科生在完成《java 程序设计》课程学习后,通过本课程进入专业实践训练环节,其主要目的是使学生深入理解并实践在《java程序设计》课程中所学的有关知识,通过课程设计增强学生的实践动手能力,提高学生独立分析和解决实际问题的能力。培养学生配合完成任务的能力,为学生毕业后的实际工作打好基础。 课程设计是培养学生综合运用所学知识锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。Java语言的应用十分广泛,例如大型信息系统、通信、网络控制等。java课程设计对增强学生对基础知识的掌握和综合运用是非常必要,对后续许多专业课程的学习和实践训练都具十分重要的意义。 2.课程任务:本课程要求学生在学习了java基础编程的相关技术后,将课本中多个章节的编程技术灵活运用到一些复杂的综合例题中去,使学生了解应用问题

的分析方法和设计解决实际问题的具体过程,掌握应用java进行程序设计的基本规范和技巧,掌握面向对象编程的设计思想,重点掌握java的基本语法规则、输入输出方法、网络编程、多线程编程、小应用程序、数据库编程的综合应用。通过编程掌握调试java程序的基本技巧、模块化应用程序和测试运行复杂应用程序的基本流程。 六、课程教学基本要求提供足够多的程序设计选题,题目应覆盖面较为广泛,部分题目要具有开放性,要求每个学生根据自己的实际情况选择题目,经教师批准后即可进入实际工作阶段。 课程设计结束对每个学生进行验收,要求每个学生提交合格的课程设计报告,还要保证程序能够运行,能够讲清楚自己的工作。老师在检查过程中可针对程序提出问题,学生回答,若程序无法运行得到结果并且具有大量编译错误,而且对程序的内容无法正确解释,则实践老师可以根据实际情况给予评分为不及格,若程序可以运行,但完成的界面以及方法不够完善,则酌情扣分,若程序运行无问题,则提问回答不好的也要相应扣分。课程设计课程集中安排在第十一周。每个同学都要提交初期、中期和最后的文档,提交课程设计报告,要求在规定时间内提交文档。最后验收时,若文档不全,成绩受到一定影响。 七、学时分配表 2011年 12 月8日 java程序课程设计说明书

程序设计基础课程设计报告 内容样例

第一章目的与要求 书上有。 第二章需求分析 软件设计的一个重要的环节就是需求分析。本章在对ATM取款机管理系统的应用情况作了全面调查的基础上,确定系统目标,并对系统所需要的基础功能进行分析,从而确定用户的需求。以下是ATM取款机管理系统所需要的需求分析。 ATM管理系统包括六个模块:登录,挂失功能,修改密码,取款功能,转账功能,查询功能。 ①登录: 输入银行卡的账号,密码,验证银行卡的卡号,密码是否正确,之后进入主界面 ②挂失功能: 确认是否对银行卡进行挂失,挂失后账户无法操作 ③修改密码: 用户可自由对其银行卡密码进行修改,修改之后的新密码将会覆盖其原密码 ④取款功能: 用户可自由取得所持银行卡内的存款,所取款数必须在其原有账户余额之内 ⑤转账功能: 用户可将本账户中的存款转入其他账户,转账过程中,需要转入账户的账

号 ⑥查询功能: 用户可查询用户信息,其中包括用户姓名、用户身份证号码、银行卡号以及存款余额 模拟ATM取款机的操作: 首先录入账户信息,格式如下 ㈠、登录功能:输入帐号和密码进行登录,如密码错误提示重新输入密码,如帐号错误提示无此帐户。 ㈡、查询功能:查询账户余额。 ㈢、取款功能:取款,更新余额。 ㈣、挂失功能:挂失后,该账户不能进行任何操作。 ㈤、修改密码:输入原密码和新设置密码。 ㈥、转账功能:输入转账的转出账户以及转账金额,进行转账。

第三章设计分析 3.1、ATM系统管理 3.1.1系统基本功能 首先,确定系统中存在两种用户,一种是ATM,可以进行信息录入和后台管理。另外一种是取款人,取款人主要是进行信息的查询,不能进行信息录入。所以在创建类的时候,先创建一个ATM类,然后创建取款人类,并与ATM 类形成有元,进而继承ATM的所有功能,并添加录入信息的功能。 基本功能: 登录功能---------输入帐号和密码进行登录,如密码错误提示重新输入密码,如帐号错误提示无此帐户。 查询功能---------查询账户余额。 取款功能---------取款,更新余额。 挂失功能---------挂失后,该账户不能进行任何操作。 修改密码---------输入原密码和新设置密码。 转账功能---------输入转账的转出账户以及转账金额,进行转账。、

C语言程序设计课程设计题目

1一元稀疏多项式的运算 问题描述:设有两个带头指针的单链表表示两个一元稀疏多项式A、B,实现两个一元稀疏多项式的处理。 实现要求: ⑴输入并建立多项式; ⑵输出多项式,输出形式为整数序列:n,c1,e1,c2,e2……c n,e n,其中n 是多项式的项数,c i,e i分别为第i项的系数和指数。序列按指数降序排列; ⑶多项式A和B相加,建立多项式A+B,输出相加的多项式; ⑷多项式A和B相减,建立多项式A-B,输出相减的多项式; ⑸多项式A和B相乘,建立多项式A×B,输出相乘的多项式; ⑹设计一个菜单,至少具有上述操作要求的基本功能。 测试数据: (1) (2x+5x8-3.1x11)+(7-5x8+11x9) (2) (6x-3-x+4.4x2-1.2x9)-(-6x-3+5.4x2+7.8x15) (3)(x+x2+x3)+0 (4)(x+x3)-(-x-x-3) 2成绩排序 假设某年级有4个班,每班有45名同学。本学期有5门课程考试,每门课程成绩是百分制。假定每个同学的成绩记录包含:学号、姓名各门课程的成绩共7项,其中学号是一个10位的字符串,每个学生都有唯一的学号,并且这4个班的成绩分别放在4个数组中,完成以下操作要求: ⑴编写一个成绩生成函数,使用随机数方法,利用随机函数生成学生的各门课程的成绩(每门课程的成绩都是0∽100之间的整数),通过调用该函数生成全部学生的成绩; ⑵编写一个平均成绩计算函数,计算每个同学的平均成绩并保存在成绩数组中; ⑶用冒泡排序法对4个班的成绩按每个同学的平均成绩的以非递增方式进

行班内排序; ⑷用选择排序法对4个班的成绩按每个同学的平均成绩的以非递增方式进行班内排序; ⑸对已按平均成绩排好序的4个班的同学的构造一个所有按平均成绩的以非递增方式排列的新的单链表; ⑹设计一个菜单,至少具有上述操作要求的基本功能。 3迷宫问题 问题描述:以一个m×n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 实现要求: ⑴实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。 ⑵编写递归形式的算法,求得迷宫中所有可能的通路; ⑶以方阵形式输出迷宫及其通路。 [测试数据] 迷宫的测试数据如下:左上角(1,1)为入口,右下角(8,9)为出口。 1 2 3 4 5 6 7 8 实现提示:

软件综合课程设计教学大纲

珠海学院课程教学大纲 课程名称:计算机软件综合课程设计 适用专业: 2015级软件工程专业 课程类别:专业基础课 制订时间:2017年6月 计算机科学与技术系制

目录 1 《计算机软件综合课程设计》教学大纲 2 《计算机软件综合课程设计》(模板) 3 《计算机软件综合课程设计》成绩评定表

《计算机软件综合课程设计》教学大纲 一、课程设计基本信息 课程代码: 课程名称:计算机综合应用课程设计 课程学时:32学时 课程学分:2.0 适用对象:计算机科学与技术专业、软件工程专业 先修课程:高级语言程序设计、数据结构、操作系统、数据库原理与应用 二、课程设计目的和任务 本课程设计是检验计算机专业的学生在大学主干课程完成之后,为了加深和巩固学生对前两年所学理论和应用知识的理解,同时提高学生综合运用的能力和分析问题、解决的问题的能力而开设的一门实践课程。 通过本环节学生能够充分把前两年学到的知识综合应用到实际的编程实践中,可以进一步巩固所学到的理论。通过实现一个中等规模的应用软件,提高利用计算机系统解决实际问题的能力,为顺利毕业、进入社会打好基础;通过对程序的规范编写,可以培养学生良好的编程风格,包括程序结构形式,行文格式和程序正文格式等;并培养学生的上机调试能力。 三、课程设计方式 1、课程设计题目的选定 采用指导教师提供参考题目与学生自主命题相结合的办法选定课程设计题目。要求不多于4个人一个小组,不得重复,所涉及数据库的基本表至少在5张表以上,在尽量满足数据库设计原则的前提下,允许适当冗余以提高检索的速度。其中学生自主命题需要指导教师严格的审核,看是否满足课程要求,检查是否为重复课题。 2、课程设计任务的完成

《WEB程序设计》课程教学大纲概要

《WEB程序设计》课程教学大纲 课程简介 《WEB程序设计(JSP实现)》课程是计算机科学与技术专业的重要必修课,它涉及到数据库应用,计算机网络,java程序设计等诸多方面的知识和能力。是实践性很强且面向实际应用的重要专业课。 课程大纲 一、课程的性质与任务: 《WEB程序设计(JSP实现)》课程在计算机科学与技术专业中属于专业课范畴。它的综合性极强,它综合运行数据库应用,计算机网络,java程序设计等诸多方面的知识和能力。实践性强,应用面广是它的另外两大性质。 本课程的任务是使学生学习、掌握、运用JSP技术设计完成WEB站点设计,为以后建立更有实际应用价值的WEB站点打下基础。 二、课程的目的与基本要求: 1.通过本课程的教学,使学生能了解交互式网站的原理和作用;使学生对Web网站建设的全过程从整体上有一个较清晰的了解;对当前Web网站所使用的技术有较清晰的理解; 2.掌握交互式WEB系统的设计方法;能运用JSP独立完成一些简单但完整的交互式系统;能读懂较复杂的交互式系统原代码。 3.强化面向程序设计编程思想,提升编程理念,增强软件开发能力。为学生在未来网络化信息化社会里更好地从事网络技术应用与相关工作打下良好的基础, 三、面向专业: 计算机科学与技术 四、先修课程: 《数据库系统原理》、《Java语言高级程序设计》、《计算机网络》

五、本课程与其它课程的联系: 《数据库系统原理》、《Java语言高级程序设计》、《计算机网络》是学习本学科的基础。本学科是面向网络的,所以必须先具备《计算机网络》的相关知识,它又是以网页形式呈现的,需要数据库系统的后台支持,所以须先学习《数据库管理系统》,它是用JSP(JA V A SERVER PAGE)实现的,所以必须先学习《Java语言高级程序设计》。本学科对本专业的后续学科无严格要求,实际上本学科可以是本专业学习的最后几门学科之一。 六、教学内容安排、要求、学时分配及作业: 第1章JSP简介(2学时) 1.1 什么是JSP(C) 1.2 JSP页面(C) 1.3 JSP的运行原理(B) 1.4 安装配置JSP运行环境(A) 1.5 JSP页面的测试(C) 1.6 JSP与JavaServlet的关系(C) 基本要求:理解JSP的运行原理,掌握安装与配置JSP运行环境的方面。 第2章JSP语法(4学时) 2.1 JSP页面的基本结构(B) 2.2 变量和方法的声明(A) 2.3 Java程序片(A) 2.4 表达式(A) 2.5 JSP中的注释(A) 2.6 JSP指令标签(A) 2.7 JSP动作标签(A) 基本要求:了解JSP页面的基本结构;掌握JSP的语法;学会变量和方法的声明和调用;学会运用指令标签和动作标签。 第3章JSP内置对象(4学时) 3.1 request对象(A) 3.2 response对象(A) 3.3 session对象(A) 3.4 application对象(A) 3.5 out对象(A) 基本要求:学会运用JSP的六个内置对象。理解相关理论。 第4章JSP中的文件操作(2学时)

程序设计基础课程设计

1 矩阵的操作(6人) 设有两个矩阵A=(a ij)m×n,B=(b ij)p×q 实现要求: ⑴编写矩阵输入函数INPUT_MAT,通过该函数完成矩阵的输入并返回保存矩阵的数组和对应矩阵的行数、列数。(不能使用全局变量) ⑵编写矩阵输出函数OUTPUT_MAT,通过该函数完成矩阵的输出。 ⑶求矩阵的转置,矩阵的转置A’=(a ji)n×m,转置前输出原矩阵,转置后输出转置矩阵。 ⑷求矩阵A、B的和。矩阵A和B能够相加的条件是:m=p,n=q;矩阵A和B如果不能相加,请给出提示信息;若能够相加,则求和矩阵C并输出C。 C=A+B=(c ij)m×n,其中c ij=a ij+b ij ⑸求矩阵A、B的积。矩阵A和B能够相乘的条件是:p=n;矩阵A和B 如果不能相乘,请给出提示信息;若能够相乘,则求积矩阵D并输出D。 D=A×B=(d ij)m×q,其中d ij=∑a ik×b kj,k=1,2,……,n ⑹设计一个菜单,具有求矩阵的转置、求矩阵的和、求矩阵的积、退出等基本的功能。在求矩阵的和或求矩阵的积时要求能够先提示输入两个矩阵的,然后再进行相应的操作。

2 数据汇总 (6人) 问题描述: 在数据处理中经常需要对大量数据进行汇总,将相同关键字记录的某些数据项的值叠加起来,生成一个分类汇总表。 假设某超级市场销售有m种商品(假设商品的编号为1,2,3,┅┅,m),有n台前台收款机(假设收款机的编号为1,2,3,┅┅,n)进行收款,以记录的形式提供给计算机,每个记录表示某台收款机的一种商品一次交易的数量和销售额。记录由4个域组成:收款机编号、商品编号、销售数量、销售金额。构造一个结构体类型,每次销售数据以一个结构体变量保存在一个数据文件中。实现要求: ⑴编写实现将数据记录插入到数据文件的最后的函数; ⑵编写以收款机为单位的数据分类处理函数。构造n个单链表,每个链表保存一台收款机的销售记录,这n个单链表的头指针存放在一个指针数组中,通过数组的下标就可以知道是哪台收款机。读取数据文件的记录,将所有的销售记录(数据文件中的全部记录)分解插入到n个单链表; ⑶统计每台收款机的销售总额; ⑷编写以商品为单位的数据分类处理函数。构造m个单链表,每个链表保存一种商品的销售记录,这m个单链表的头指针存放在一个指针数组中,通过数组的下标就可以知道是哪种商品。读取数据文件的记录,将所有的销售记录(数据文件中的全部记录)分解插入到m个单链表; ⑸以商品为单位,统计每种商品的销售总额。 ⑹设计一个菜单,具有插入数据记录、按收款机统计销售总额、按商品统计销售总额、退出系统等最基本的功能。

程序设计题目

程序设计题一:学生信息管理系统 【课题内容】 学生信息的管理是每个学校必须具有的管理功能,主要是对学生的基本情况及学习成绩等方面的管理。该系统模拟一个简单的学生管理系统,要求对文件中所存储的学生数据进行各种常规操作,如:排序、查找、计算、显示等功能。通过此课题,熟练掌握文件、数组、结构体的各种操作,在程序设计中体现一定的算法思想,实现一个简单的学生信息管理系统。 【基本要求】 (1)学生信息包括: 学生基本信息文件(student.txt)(注:该文件不需要编程录入数据,可用文本编辑工具直接生成)的内容如下: 学号姓名性别宿舍号码电话号码 01 张成成男 501 87732111 02 李成华女 101 87723112 03 王成凤女 101 87723112 04 张明明男 502 87734333 05 陈东男 501 87732111 06 李果男 502 87734333 07 张园园女 102 87756122 ………………… (2)学生成绩基本信息文件(score.dat)及其内容如下:((注:该文件内容需要编程录入数据,具体做法见下面的要求) 学号课程编号课程名称学分平时成绩实验成绩卷面成绩综合成绩实得学分 01 A01 大学物理 3 66 78 82 02 B03 高等数学 4 78 -1 90 01 B03 高等数学 4 45 -1 88 02 C01 VF 3 65 76 66

…………………… (3)需要实现的功能 1)数据录入和计算功能:对score.dat进行数据录入,只录入每个学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共7个数据,综合成绩、实得学分由程序根据条件自动运算。 综合成绩的计算:如果本课程的实验成绩为-1,则表示无实验,综合成绩=平时成绩*30%+卷面成绩*70%;如果实验成绩不为-1,表示本课程有实验,综合成绩=平时成绩*15%+实验成绩*15%+卷面成绩*70% 。 实得学分的计算:采用等级学分制,综合成绩在90-100之间,应得学分=学分*100%;综合成绩在80-90之间,应得学分=学分*80%;综合成绩在70-80之间 ,应得学分=学分*75%;综合成绩在60-70之间,应得学分=学分*60%;综合成绩在60以下 ,应得学分=学分*0%。 2)查询功能:分为学生基本情况查询和成绩查询两种 (1)学生基本情况查询: ①、输入一个学号或姓名(可实现选择),查出此生的基本信息并显示输出,格式如下: ②、输入一个宿舍号码,可查询出本室所有的学生的基本信息并显示输出。(格式如上所示) (2)成绩查询: ①、输入一个学号时,查询出此生的所有课程情况,格式如下: 学号:xx 姓名:xxxxx 课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx 课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx 课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx ………………… … 共修:xx科,实得总学分为: xxx (3)删除功能:

C语言程序设计说课教案.docx

C语言程序设计说课教案 《C语言程序设计》说课教案 从以下方面说明 : 一、课程性质、地位 二、教学对象分析及要求 三、课程体系 四、课程的重点、难点及突破 五、教学方法与教学手段 六、学生考核 七、教学计划 一、课程性质、地位 1.课程的性质 《C语言程序设计》课程是高职高专通信类和电子信息类各专业职业素质必修 课,旨在培养高职学生运用计算机进行逻辑思维的能力,掌握运用 C 语言编程来解决岗位工作中实际问题的方法和步骤,为提高职业能力和拓展职业空间打下坚实基 础。所以,本课程主要针对培养这类人才基本程序设计能力的目的而设置的课程。 学生毕业后工作岗位主要有计算机管理员、单片机应用设计员、网络应用等, 在计算机控制、单片机应用、电子技术、通信技术等相关行业中都将使用 C 语言作为应用系统开发设计语言, C语言也是其它编程语言类课程的前导课程,也是信息产业部计算机专业和软件专业水平资格考试 ( 程序员、网络管理员等 ) 考试中要求的主要程序设计语言。 应用程序设计 软件工程

C++、 VC、VB 数据结构 C语言程序设计 2.课程的地位 通信技术 ( 计算机网络方向 ) 专业和电子信息技术专业,C语言室基础,是计算机应用设计的基础。是学习其他程序语言的前导及基础。二、教学对象分析及要求 1( 教学对象 本系学习 C 语言课程的生源是高中生源和中专生源。高中生文化基础扎 1 实,但计算机专业知识薄弱,开始学习时较困难,但入门提高较快。中专 生,文化基础薄弱,但计算专业已经学习一些,开始学习不会很困难,但 是知识转换能力方面会有困难,学习进度会慢一点。针对不同生源学生在 教学方法和重难点方面有所区别。 ( 对同一生源不同程度学生采取如下策略2 状态策略 1 厌学扎实其理论基础,找到实践成功点 2 较差结合实际案例,提高解决问题的能力 3 乐学知识转换,提高具体的应用能力 4 较好知识转换,提高综合的应用能力 高职智力不差,但自控能力相比较差。所以要从非智力因素入手,培养 学生的学习积极性,提高实际动手能力。 3( 在教学中教与学 问题教学演示探究教

《测量程序设计课程设计》指导书-2015

测量数据处理程序设计指导书 设计名称:测量数据处理程序设计 计划周数:2周 适用对象:测绘工程专业本科 先修课程:测量学,测量平差基础,大地控制测量,测量程序设计 一、设计目的 测量数据处理程序设计是学生在系统学习完大地控制测量学、测量平差基础、测量程序设计等相关课程之后,为了系统理解控制网平差的整体过程及综合运用科学工具而安排的。通过课程设计主要达到以下几个目的:掌握控制网平差课程设计具体内容、方法和步骤;通过理论联系实际,进一步巩固已学到的专业理论知识,并加深对理论的认识;培养学生对编写代码,上机调试和编写说明书等基本技能;锻炼学生阅读各类编程参考书籍及加以编程运用的能力。 二、设计内容及日程 在VB、 VC软件或matlab科学计算软件的平台上,选择的具体课程设计题目,进行程序设计与实现,共计10个工作日,工作程序如下: 三、设计的组织: 1.设计领导 (1)指导教师:由教研室指派教师、实验员兼任。

职责:全面组织设计大纲的实施,完成分管工作及相关技术指导。 (2)设计队长:学生班长兼任。 职责:协助教师做好本班学生的人员组织工作。 (3)设计组长:每组一人。 职责:组织执行下达的设计任务,安排组内各成员的工作分工。 2.设计分组 学生实习作业组由3~4人组成(含组长一人)。 四、设计内容 在VB、VC或MATLAB 软件平台上,按选择的设计题目进行相关程序开发 1、闭合导线简易平差、附合导线简易平差支导线计算 2、闭合水准网计算、附合水准网简易平差 3、地形图编号(新、旧两种方法) 4、误差椭圆的参数的计算与绘制误差椭圆 5、水准网严密平差 6、高斯正反算计算 7、高斯投影换带计算 8、七参数大地坐标转换(WGS84-bj54坐标转换、WGS84-CGCS2000坐标转换) 9、四参数坐标转换(西安80-bj54坐标转换、CGCS2000-bj54坐标转换、CGCS2000-西安80坐 标转换(平面) 10、大地高转换为正常高的计算 11、工程投影变形超限的处理 12、遥感图像数据处理 13、曲线(曲面)拟合 14、摄影测量空间后方交会 15、****管理信息系统设计与开发 五、上交成果 1) 小组利用vb、vc或matlab编写的软件包一个及测试数据一份 2)小组关于所开发程序设计说明书一份 3) 个人课程设计的心得一份 4)小组答辩PPT一份

程序设计基础课程设计题目

“程序设计基础”课程设计候选题目 一、编写一个菜单驱动的学生成绩管理程序。功能实现如下: 1.能输入并显示n个学生的m门考试科目的成绩、总分和平均分。 2.按总分进行排序。 3.按学号进行排序. 4.能任意输入一个学号,能显示该学生的姓名、各门课的成绩。 5.将输入的学生成绩数据保存到文件中。 6.从文件中读出学生成绩数据。 二、图书管理程序的设计。功能要求如下: 1.借书 2。还书 3。图书维护:删除图书、增加图书等。 4。读者维护:包括新增读者、更改读者信息、查找读者、读者信息删除、读者信息输出等。 三、编写一个学生成绩文件管理的程序。功能要求如下: 1.定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩 2.从键盘输入10个学生的以上内容,存入文件stud.dat,关闭文件 3.打开stud.dat文件,将数据读出,查看是否正确写入,关闭文件。 4.打开文件stud.dat文件,读出数据,将10个学生按照平均分数从高到低进行排序, 分别将结果输出到屏幕上和另一文件studsort.dat中。 5.从studsort.dat 文件中读取第2,4,6,8,10个学生的数据。 四、编写一个用指针优化学生成绩排名的程序.功能要求如下: 1.定义一个数组stu[10]存放10个学生的成绩,从键盘输入数据,要求用指针实现2.将数组stu[10]的内容输出到屏幕上,要求用指针实现 3.将成绩数组按照从高到低进行排序,要求用指针实现 4.将第三步内容放在函数中实现,在主函数中调用实现排序,用指针实现,输出排序后的成绩单 5.采用指针方法,输入字符串“student score ”,复制该字符串并输出(复制字符串采用库函数或用户自定义函数)

C语言程序设计课程设计报告

C语言程序设计课程设计实验报告 一、设计名称:学生成绩管理查询系统 实验项目性质:综合性 所涉及课程:C语言程序设计 计划学时:实验学时12 二、设计目的: 1.通过本课程设计,培养上机动手能力,使学生巩固《C语言程序设计》课 程学习的内容,掌握工程软件设计的基本方法,强化上机动手能力,闯过编程关; 2.为后续各门计算机课程的学习打下坚实基础。 3.理解程序设计的思路,掌握结构化程序设计的方法,综合使用C语言进行 程序编写,巩固常用的C语言概念,如数组、指针、结构体、链表、文件操作等,注意良好的程序设计风格的培养。提高编写程序解决实际问题的能力、调试程序的技能。 三、设计环境(软件、硬件及条件) 1.硬件:PC机 2.软件:Turbo C++ 四、设计说明: 程序系统的结构:用一系列图表列出本程序系统内的每个程序(包括每

个模块和子程序)的名称、标识符和它们之间的层次结构关系。 主程序: ●新建:输入记录(遇#号时停止输入)。 ●插入:在指定位置插入记录。 ●显示:列出所有记录。 ●查询: 1、按学号查询; 2、按名字排序。 ●删除: 1、按学号删除; 2、按名字删除; 3、删除所有记录。 ●排序: 1、按语文成绩排序; 2、按英语成绩排序; 3、按数学成绩排序。 ●保存:保存为任意名字,系统自动加后缀名为.txt。 ●读取:读取程序目录下的后缀名为.txt的文件。 ●退出:退出程序。 五、各功能模块的具体实现,用图表表示。

输入记录 显示 按学号(姓名)查询信息

按学号(姓名)删除信息 Y N 读取文件

保存文件

六、各模块(函数)的功能介绍,数据结构设计描述,参数说明等。 STUDENT *init(); /*初始化链表*/ STUDENT *create(); /*新建链表*/ STUDENT *del_no(STUDENT *h);/*按学号删除信息*/ STUDENT *del_name(STUDENT *h); /*按姓名删除信息*/ void print(STUDENT *h); /*显示信息函数*/ void search_no(STUDENT *h); /*按学号搜索*/ void search_name(STUDENT *h); /*按姓名搜索*/ STUDENT *insert(STUDENT *h); /*插入信息函数*/ void sort(STUDENT *h);/* 排序函数*/ void save(STUDENT *h);/*保存数据到文件*/ void load(STUDENT *h); /*从文件读取数据*/ int menu_main(); /*菜单函数*/ void inputs(char *prompt,char *s,int count);/*输出信息*/ 七、程序代码: Enter records\n"); printf(" 2. Add records\n"); printf(" 3. List records\n"); printf(" 4. Search records\n"); printf(" 5. Delete records\n"); printf(" 6. Sort records\n"); printf(" 7. Save files\n"); printf(" 8. Load files\n"); printf(" 9. Quit\n\n"); printf("*****************************************\n");

C++面向对象程序设计课程设计报告

. 课程设计 课程名称C++面向对象程序设计题目名称公司人员管理系统 专业班级13级计算机科学与技术一班学生林涛、甑德胜、梁增辉 吴志伟、齐、江靖 学号51302011015、51302011016、51302011001 51302011037、51302011006、51302011009指导教师郭有强 二○一四年六月二十日

目录 一、引言 (2) 二、课程设计报告 (4) 1、问题描述 (4) 2、系统总体方案 (4) 3、设计思路和主要步骤 (5) 4、各功能模块和流程图 (5) (1)各功能模块 (5) (2)流程图 (6) 三、系统测试 (9) 四、心得体会 (15) 五、参考文献 (17) 附:程序设计代码 (18)

一、引言 1985年,管理信息系统的创始人,高登?戴维斯给出的管理信息系统的定义是:“它是一个利用计算机硬件和软件,手工作业,分析、计划、控制和决策模型,以及数据库的用户一机器系统。它能提供信息,支持企业或组织的运行、管理和决策。”这个定义说明了管理信息系统的组成要素:计算机硬件、软件、数据库、模型库和用户。 随着我国社会的不断进步,人们对管理信息系统越来越重视,再加之管理信息系统在管理方面所产生的巨大影响,也使得人们越来越关注管理信息系统的发展趋势。由于管理信息系统的发展受到以上各种变革因素的制约,传统的管理信息系统必然向现代管理信息系统发展,在这个发展过程中,管理信息系统的发展将会呈现出以下趋势: 管理信息系统将会越来越注重以人为本。管理科学的发展有科学管理理论、行为管理理论和现代管理理论三个发展阶段,正在向着越来越人性化的方向发展,即以人为本。基于管理学的这一研究视角,管理信息系统也将向着更加人性化的方向发展。在今后的管理信息系统中将会越来越注重人的因素,以人为出发点和中心,围绕着激发和调动人的主动性、积极性、创造性展开的,以实现人与社会共同发展的一系列管理活动。而且这种人性化还会贯穿于管理信息系统的开发设计与研究中,具体表现为今后的管理信息系统将具有更加友好的人机界面,易于人们操作,也会考虑到不同用户的不同需求,更加个性化。 管理信息系统向智能化方向发展。随着人工智能技术的发展,数据仓库、数据挖掘技术在管理信息系统中的应用,管理信息系统必将向着智能化方向发展,如产生了很多的决策支持系统、专家系统等等。智能化的管理信息系统具有思维模拟活动,它具有很高的自学习、自组织和进化性,并具有知识创新功能,可以解决非结构化事务,在决策中处于主导地位,是人的向导,在体系上将是大规模分布式计算模式,以基于网络神经元构件的智能网为主。 管理信息系统向集成化方向发展。随着当前系统集成技术的提高,集成技术和方法也逐步地运用到管理信息系统中。由于管理信息系统将包含多个子系统,因此将这些功能集合在一起以便更好地发挥它的作用,这就是集成化的管理信息系统。集成化的管理信息系统将管理信息系统的各个子系统有机地结合起来,达到互通信息、共享数据资源的目的,其支撑技术是数据库和计算机网络。集成管

《C语言程序设计》项目实训指导书

安徽国防科技职业学院 C 语 言 课 程 设 计 指 导 书 学期:12-13第1学期 班级:软件121班 实训日期:第18周

指导教师:付贤政

《C语言程序设计》项目设计指导书 实训班级:软件111班 实训时间:第18周 一、设计目的与任务 C语言程序设计是软件技术专业的重要专业基础课。学生通过对C语言的学习,已经具备了使用C语言编写简单的程序的能力。为了加强程序设计基础,开设课程设计,使学生对C语言有更全面的理解,进一步提高运用语言编程解决实际问题的能力,同时,为后续课程的学习夯实基础。 本课程设计要求每组同学在一周时间内,独立分析、设计并完成,并上交课程设计报告。可选择如下任务之一: 任务一:题目:学生成绩管理系统 功能: 1.菜单提示:在系统初始化时能在屏幕上出现提示,根据提示选择相应的操作; 2.基本功能:能正常启动程序、退出程序,能在屏幕上正常显示提示和相关信息; 3.功能一:系统数据初始化。能按照要求输入每位学生的学号、姓名,性别、年龄以及政 治、语文、数学、计算机、体育五门课程的成绩; 4.功能二:按指定形式在屏幕上打印输出学生基本信息,可按照学号、成绩顺序在屏幕上 打印输出; 5.功能三:根据姓名、学号查询。按照屏幕提示输入你要查询学生的姓名(或者学号),从 原始的数据中找到该学生的信息,并在屏幕上打印输出; 6.功能四:统计学生平均成绩,并在屏幕上打印输出; 7.功能五:将现有学生数据写入磁盘文件,然后从文件中读取出来; 8.数据的删除(选做):根据输入的学号删除指定的数据记录。(可选) 9.数据的修改(选做):根据输入要修改的学生学号,返回该学生的信息后,再逐个修改每 个学生的基本信息,最后保存修改;(可选) 分步实施: 1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数; 2、完成最低要求:建立房间列表,完成登记入住、查询房间入住情况功能。 3、进一步要求:完成计费和费用查询功能。 任务二:题目:酒店房间登记与计费管理系统 功能:

程序设计课程教学大纲

聊城市技师学院信息工程系 《C++程序设计》课程教学大纲 80学时(上机实验 24 学时) 一、课程的性质和任务 C++语言是在C语言基础上扩充了面向对象机制而形成的一种面向对象的程序设计语言,它对降低软件的复杂性,改善其重用性和可维护性,提高大型软件的开发效率,具有十分重要的意义。C++程序设计 主要讲授C++语言的基本语法、数据类型、程序的结构与语句、数组、函数、指针、构造数据类型、类和对象、继承与派生、多态性和虚函数、模板、 I/O 流等方面的问题。 通过本课程的学习,使学生掌握有关面向对象的思想和基本概念,树立面向对象的编程思想,学会程序设计的基本方法和技能,具有用程序设计语言解决实际问题的能力,使学生能编写出符合规范和性能良好的程序,为后续课学习及今后的应用开发打好基础。 二、课程教学内容的基本要求、重点和难点 (一)C++概述 了解程序设计基本概念、程序设计方法,一般问题的计算机求解过程;掌握C++程序结构,main()函 数,C++源程序的编辑、编译、链接和运行,VisualC++6.0集成开发环境的安装和使用。 重点:C++程序结构,main()函数,C++语言程序上机调试步骤和方法。 难点:C++程序结构。 (二)数据类型、运算符与表达式 掌握基本数据类型的定义和使用,熟练掌握整型与实型数据的输入与输出,字符型数据的输入与输出。掌握常用运算符和表达式的使用,包括算术运算符、关系运算符、逻辑运算符、自增自减运算符、赋值运算符及其表达式的使用,了解运算符的优先级。了解标识符的构造规则,理解强制类型转换的使用。 重点:数据输入输出中格式控制符的使用,基本数据类型的表示范围对使用的影响。难点:数据类型转换,运算符的混合使用。 (三)程序的结构与语句 掌握表达式语句和结构化程序设计的三种基本结构,包括顺序结构、选择结构和循环结构,熟练掌握选择结构中的 if-else 语句和 switch 语句,循环结构中的 while 语句和 for 语句,了解 do-while 语句。理解 break 语句与 continue 语句使用上的区别。 重点:掌握三种基本结构,混合使用三种基本结构解决实际问题。难点:循环结构的嵌套使用。 (四)函数熟练掌握函数的定义和使用方法;掌握函数参数传递的方式;理解函数的作用范围;掌握函数重载、递归函数。了解预处理和函数原型的使用;了解变量的作用域和存储类型。 重点:掌握函数的声明、定义、调用和返回;掌握函数参数传递的两种方式对程序运行结果的影响;函数重载。 难点:理解按地址传递函数参数,递归函数的使用。 (五)数组熟练掌握一维数组和二维数组的定义、初始化和数组元素的引用方法;掌握一维数组的基本操作和基本算法,能应用一维数组进行线性查找和排序。熟练掌握字符数组的定义、初始化与引用;掌握字符数组的输入与输出。了解数组的存储结构。 重点:一维数组定义及使用方法,并应用一维数组解决实际问题。难点:理解字符数组与字符串的区别和它们的使用。(六)指针正确理解指针变量和地址的概念;掌握指针变量的定义与运算;掌握通过指针引用变量的方法;掌握通过指针引用数组元素的方法。 重点:指针定义与运算,指针与数组,指针变量作为函数的参数。难点:运用指针表达复杂的数据结构,动态分配内存。 (七)构造数据类型掌握结构体类型定义和结构体类型变量的引用;掌握结构体数组和结构体指针的定义、初始化与使用;能够正确引用结构体成员;了解共用体;了解枚举型。 重点:结构体类型定义、结构体类型变量的引用;结构体数组,指向结构体的指针。难点:结构体数组。 (八)类与对象理解类的基本概念,熟练掌握类的定义方法;理解信息隐藏、封装和抽象数据类型等基本概念以及它

相关文档
最新文档