《程序设计课程设计》参考题
C语言程序设计习题试题集
《C语言程序设计》精品课件试题目录(按住CTRL键点击超链)单项选择题 (002)阅读程序题 (018)程序填空题 (039)编写程序题 (070)《高级语言程序设计》课程设计制作小组2007年4月四、编写程序题及参考答案导读:虽然题目基本按照教材章节顺序排列的,但是把同类题目尽量排在一起,便于读者学习掌握编程方法和思路,提高自己的编程能力。
【4.1】已知银行整存整取存款不同期限的月息利率分别为:0.315% 期限一年0.330% 期限二年月息利率=0.345% 期限三年0.375% 期限五年0.420% 期限八年要求输入存钱的本金和期限,求到期时能从银行得到的利息与本金的合计。
【4.2】输入年份year和月month,求该月有多少天。
判断是否为闰年,可用如下C语言表达式:year%4==0 && year%100!=0 || year%400==0。
若表达式成立(即表达式值为1),则year为闰年;否则,表达式不成立(即值为0),year为平年。
【4.3】编写一个简单计算器程序,输入格式为:data1 op data2。
其中data1和data2是参加运算的两个数,op为运算符,它的取值只能是+、-、*、/。
【4.4】输入n值,输出如图所示矩形。
【4.5】输入n值,输出如图所示平行四边形。
【4.6】输入n值,输出如图所示高为n的等腰三角形。
【4.7】输入n值,输出如图所示高为n的等腰三角形。
【4.8】输入n值,输出如图所示高和上底均为n的等腰梯形。
【4.9】输入n值,输出如图所示高和上底均为n的等腰空心梯形。
【4.10】输入n值,输出如图所示边长为n的空心正六边型。
【4.11】输入n值,输出如图所示图形。
【4.12】输入n值,输出如图所示图形。
【4.13】输入n值,输出如图所示图形。
【4.14】输入n值,输出如图所示图形。
【4.15】输入n值,输出如图所示图形。
【4.16】输入n值,输出如图所示图形。
c语言程序设计课程设计选题 (1)
《C语言程序设计》课程设计课题表一、A类1.职工信息管理系统设计2.职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。
试设计一职工信息管理系统,使之能提供以下功能:3.1、职工信息录入功能(职工信息用文件保存)--输入4.2、职工信息浏览功能--输出5.3、职工信息查询功能--算法6.查询方式:按学历查询、按职工号查询、条件组合查询7.职工信息删除、修改功能(可选项)8.图书信息管理系统设计9.图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。
10.试设计一图书信息管理系统,使之能提供以下功能:11.1、图书信息录入功能(图书信息用文件保存)--输入12.2、图书信息浏览功能--输出13.3、图书信息查询功能--算法14.查询方式:按书名查询、按作者名查询、条件组合查询15.图书信息的删除与修改(可选项)16.图书管理系统设计17.图书管理信息包括:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等18.功能描述:19.1、新进图书基本信息的输入。
20.2、图书基本信息的查询。
21.3、对撤消图书信息的删除。
22.4、为借书人办理注册。
23.5、办理借书手续。
24.6、办理还书手续25.要求:使用文件方式存储数据。
26.实验设备管理系统设计27.实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期,是否报废,报废日期等。
28.主要功能:29.1、能够完成对设备的录入和修改30.2、对设备进行分类统计31.3、设备的破损耗费和遗损处理32.4、设备的查询33.要求:使用文件方式存储数据。
34.学生信息管理系统设计35.学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。
试设计一学生信息管理系统,使之能提供以下功能:36.1、系统以菜单方式工作37.2、学生信息录入功能(学生信息用文件保存)--输入38.3、学生信息浏览功能--输出39.4、学生信息查询功能--按学号查询、按姓名查询、40.5、学生信息的删除与修改(可选项)41.要求:使用文件方式存储数据。
c语言课程设计参考题目
c语言课程设计参考题目
以下是一些可以作为C语言课程设计参考的题目:
1. 编写一个简单的C程序,实现一个计算器的功能,包括按键输入、按位运算、结果输出等。
2. 设计一个C语言的数据结构,例如链表、树、图等。
3. 实现一个简单的程序,用于检测一个字符串是否包含某个特
定的字符集。
4. 设计一个C程序,实现一个文件管理系统,包括文件读取、修改、删除、创建等操作。
5. 编写一个C程序,模拟一个简单的计算机操作系统,例如进程
管理、内存管理等。
6. 设计一个C程序,用于处理一个字符串,包括查找特定字符、
替换特定字符、翻译文本等。
7. 实现一个简单的编译器,用于编译C程序。
8. 设计一个C程序,用于实现一个网络应用程序,包括用户登录、数据发送、数据接收等。
9. 编写一个C程序,用于实现一个简单的图形用户界面,例如窗口、菜单、按钮等。
10. 设计一个C程序,用于处理一个音频播放器,包括音频读取、播放、暂停、中断等。
这些题目都是相对来说比较难的,但也都是C语言编程中比较经
典的应用场景。
通过这些题目的训练,可以帮助学生更好地掌握C语
言的编程思想和技巧。
C语言程序设计课程设计报告---汉诺塔问题
XXXX大学计算机科学与技术学院课程设计报告2012 — 2013学年第一学期课程名称C/C++高级语言程序设计课程设计设计题目小游戏和图形处理汉诺塔问题学生姓名XXX学号XXXXXXX专业班级XXXXXXXXXXX指导教师XX2012 年X 月XX 日目录一、课程设计问题描述 (1)1、课程设计题目 (1)2、设计任务要求 (1)二、总体设计 (1)1、设计思路 (1)2、汉诺塔求解流程图 (2)三、详细设计 (2)1、汉诺塔问题描述 (2)2、算法分析 (3)3、实现递归的条件 (4)4、用C语言实现 (4)四、程序运行结果测试与分析 (4)1、打开Microsoft Visual C++ 6.0操作平台输入以下的源代码 (4)2、编译源代码 (5)3、组建 (5)4、执行 (5)5、运行结果 (6)6、按任意键结束程序 (7)五、结论与心得 (7)六、参考文献 (8)七、附录:程序源代码 (8)一、课程设计问题描述1、课程设计题目汉诺塔问题2、设计任务要求输入盘子数(2个以上有效),移动速度,开始演示汉诺塔移动的步骤,要求:盘子A,B,C柱需要自己绘制,初始时盘子在A柱上通过B柱最终移动到C 柱上,显示出盘子在几个柱之间的移动过程。
二、总体设计1、设计思路对于一个类似的这样的问题,任何一个人都不可能直接写出移动盘子的每一个具体步骤。
可以利用这样的统筹管理的办法求解:我们假设把该任务交给一个僧人,为了方便叙述,将他编号为64。
僧人自然会这样想:假如有另外一个僧人能有办法将63个盘子从一个座移到另一个座,那么问题就解决了,此时僧人A B C64只需这样做:(1).命令僧人63将63个盘子从A座移到C座(2).自己将最底下的最大的一个盘子从A座移到C座(3).再命令僧人63将63个盘子从B座移到C座为了解决将63个盘子从A座移到B座的问题,僧人63又想:如果能再有一个僧人62能将62个盘子移动到另一座,我就能将63个盘子从A座移动到B座。
c语言课程设计参考设计题目
c语言课程设计参考设计题目一、教学目标本课程旨在让学生掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识,培养学生编写简单C程序的能力,使学生了解编程思想,培养学生分析问题和解决问题的能力。
1.理解C语言的基本语法和规则。
2.掌握基本数据类型、运算符和表达式。
3.学会使用控制结构进行程序流程控制。
4.理解函数的定义和调用。
5.熟悉数组、字符串和指针的概念及应用。
6.能够使用C语言编写简单的程序。
7.能够阅读并理解简单的C语言程序。
8.能够运用C语言解决实际问题。
情感态度价值观目标:1.培养学生对编程的兴趣和热情。
2.培养学生勇于探索、积极思考的精神。
3.培养学生团队协作和互相学习的良好习惯。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识。
具体安排如下:1.第一章:C语言概述1.1 C语言的发展历史1.2 C语言的特点1.3 C语言的编译过程2.第二章:基本数据类型和运算符2.1 数据类型2.2 常量和变量2.3 运算符和表达式3.第三章:程序流程控制3.1 顺序结构3.2 选择结构3.3 循环结构4.第四章:函数4.1 函数的定义和声明4.2 函数的参数和返回值4.3 函数的调用5.第五章:数组、字符串和指针5.2 字符串6.第六章:编程实践6.1 简单程序设计6.2 综合程序设计三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法。
在教学过程中,注重理论与实践相结合,通过实例分析和编程实践,使学生更好地理解和掌握C语言的知识。
同时,鼓励学生积极参与讨论,培养学生的团队协作和沟通能力。
四、教学资源1.教材:《C语言程序设计》2.参考书:《C Primer Plus》、《C和指针》3.多媒体资料:教学PPT、视频教程4.实验设备:计算机、编程环境5.网络资源:在线编程平台、论坛、博客等五、教学评估本课程的评估方式包括平时表现、作业、考试等。
c语言课程设计任务题库
c语言课程设计任务题库一、教学目标本章节的教学目标旨在让学生掌握C语言的基本语法、数据类型、运算符、控制结构、函数等知识,培养学生运用C语言进行程序设计的能力。
具体包括:1.知识目标:(1)理解C语言的基本语法和规则;(2)掌握数据类型、运算符和表达式;(3)熟悉控制结构,如if、for、while等;(4)了解函数的定义和调用。
2.技能目标:(1)能够编写简单的C语言程序;(2)学会使用调试工具进行程序调试;(3)具备一定的代码阅读和分析能力。
3.情感态度价值观目标:(1)培养学生的编程兴趣,提高自主学习能力;(2)培养学生团队合作意识,学会与他人交流和分享;(3)培养学生具有良好的编程习惯,提高代码质量。
二、教学内容本章节的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等。
具体安排如下:1.C语言的基本语法和规则;2.数据类型、运算符和表达式;3.控制结构,如if、for、while等;4.函数的定义和调用。
教学过程中,将结合具体案例进行讲解,让学生通过实践掌握相关知识。
三、教学方法本章节的教学方法采用讲授法、案例分析法和实验法相结合的方式。
具体如下:1.讲授法:通过讲解C语言的基本语法、数据类型、运算符、控制结构和函数等知识,使学生掌握相关概念和原理;2.案例分析法:通过分析典型案例,让学生学会运用C语言解决实际问题;3.实验法:让学生亲自动手编写程序,调试和分析代码,提高实际编程能力。
四、教学资源本章节的教学资源包括教材、参考书、多媒体资料和实验设备等。
具体如下:1.教材:选用权威、实用的C语言教材,如《C程序设计语言》等;2.参考书:提供相关领域的经典著作,如《C专家编程》等,供学生拓展阅读;3.多媒体资料:制作PPT、教学视频等,辅助学生理解知识点;4.实验设备:提供计算机、编程环境等,让学生进行实际操作。
五、教学评估本章节的教学评估主要包括平时表现、作业和考试三个部分,以全面客观地评价学生的学习成果。
c++课程设计题目
c++课程设计题目C++课程设计题目是学习C++编程语言的重要环节,有助于提高学生的算法设计和程序实现能力。
在进行C++课程设计时,可以选择不同的题目来挑战学生,以下是一些相关的参考内容供您参考。
1. 学生成绩管理系统设计一个学生成绩管理系统,实现对学生信息的录入、查询、修改和删除功能。
该系统需要支持对学生的基本信息(如学号、姓名、性别、年龄等)以及各门课程的成绩进行管理。
要求能够按照学号或姓名进行查询,并能够根据成绩进行排序输出。
可以考虑使用结构体或类来存储学生信息,使用文件操作来保存学生信息。
2. 电子商务网站设计一个简单的电子商务网站,实现用户的注册、登录、浏览商品、下订单等功能。
网站需要支持多种商品的展示和购买,可以考虑将商品信息存储在文件或数据库中。
用户注册信息可以采用文件或数据库来保存,登录功能可以使用用户名和密码进行验证。
3. 迷宫游戏设计一个迷宫游戏,实现玩家在迷宫中的移动和寻找出口的功能。
迷宫可以采用二维矩阵来表示,其中1表示墙壁,0表示通道。
玩家可以根据输入的指令来移动,根据当前位置判断是否找到出口。
可以考虑使用递归或迭代算法来实现路径的搜索和判断。
4. 图书管理系统设计一个图书管理系统,实现对图书信息的录入、查询、借阅和归还功能。
图书信息可以包括书名、作者、出版社、出版日期等。
可以使用链表或数组来存储图书信息,使用文件操作或数据库来保存图书信息。
借阅和归还功能需要对借阅记录进行管理,并能够查询借阅历史和借阅状态。
5. 简单的计算器设计一个简单的计算器,实现对四则运算的支持。
可以考虑使用栈来实现运算符的优先级判断和运算过程。
计算器需要能够对输入的表达式进行识别和计算,并能够处理括号和运算符优先级的关系。
以上是一些C++课程设计题目的参考内容,它们涵盖了不同的功能和算法,在完成这些题目的过程中,可以锻炼学生的思维能力和编程技巧。
在设计过程中,可以根据具体情况进行适当修改和扩展。
大一课程设计试题及答案
1139《程序设计基础》课程设计题目一、必做题(40题,要求所有题目的功能都使用函数进行完成。
)1、下面程序可从键盘输入一个大于0的整数,然后输出此数的所有整数因子。
例如:输入12,则输出:12:1 2 3 4 6 12.2、求100-999中的水仙花数(若三位数abc,a3+b3+c3=abc,则称abc 为水仙花数。
例如153,13+33+53=153,则153称为水仙花数。
)3、利用公式:)!14()!14(...!5!3!1sin 141453++--++-=+-n x n x x x x x n n 计算sinx 的近似值,x 值由键盘输入,省略的项都<10-54、打印九九表,格式如下:1*1=1 1*2=2 1*3=3 1*4=41*5=5 1*6=6 1*7=7 1*8=8 1*9= 9 2*2=4 2*3=6…… 2*9=18 3*3=9…………9*9=815、打印九九表,格式如下:1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8= 8 1*9=9 2*2=4 2*3=6 2*4=8 …… 2*9=183*3=9 3*4=12 …….……9*9=816、根据公式e=1+1/(1!)+1/(2!)+1/(3!)+……。
求e 的近似值,精度要求为10-6。
7、编程计算1/(1+2)+2/(2+3)+3/(3+4)+……100/(100+101)之和。
8、求100 ~ 200中能被3或7整除的自然数。
9、显示7到100中所有不能被5整除的数,要求每行显示5个数。
10、找出1000之内的所有完数(完数是指:该数的各因子之和正好等于该数本身,例如:6的因子是1,2,3,而6 = 1+2+3,故6是完数)。
11、100元钱买100只鸡,已知公鸡3元1只,母鸡1元1只,小鸡1元3只,编程输出总的方案数以及每种方案中公鸡、母鸡、小鸡的数量。
12、编程验证:100以内的奇数的平方除以8都余1。
程序设计基础课程设计题目
1.用户登录后输入自己的姓名,单击“记忆测试”菜单可以选择初级/中级/高级,也可以查看初级记忆榜/中级记忆榜或高级记忆榜。
2.选择级别后,将显示相应级别的测试区域。测试区域由若干个数字,级别越高数字长度越长(初级5位,中级8位,高级13位),每次将随机出现一个数字后显示3秒后消失,用户需要将记忆中的数字写入下方的文本框中,全对才得分,测试完毕显示总分。
二十七、3.21点游戏
游戏规则参见:/view/302185.htm
要求能实现基本功能
二十八 数独游戏
游戏规则参见/view/3281328.htm
要求能实现基本功能
二十九 进制转换工作
实现各种数制之间的转换
3.将绩保存到成绩表中。
十一、市收银系统
使用图形用户界面。
1.由收银员输入顾客的会员卡卡号(若有卡)、所购商品的货号等。从数据库中取出有关价格信息,再把这些信息返回给收银台。同时把该收银台的销售总量和有关种类商品的剩余量以及该持卡顾客的消费情况交数据库存储以供查询。另外,对没有卡的消费情况不记录该顾客的消费情况等个人信息。
3. 能够实现学生信息的插入、删除和修改。
4. 能够查询每个课程的最高分、最低分及相应学生姓名、班级和学号。
5. 能够查询每个班级某门课程的优秀率(90分及以上)、不及格率,并进行排序。
十、记忆测试系统
设计内容:
记忆测试系统通过回忆法测试记忆,分为初级、中级、高级三个级别,并通过记忆榜存储每个级别的成绩。
大数的加法
大数的减法
运算结果的显示
运算过程(输入和输出)写入到文件,并能查看
三十二 大数判断素数运算
大数一般指50位以上的十字进数字,超过double和long long数据类型的范围。要求能实现以下功能:
c程序设计课程设计作业
c程序设计课程设计作业一、教学目标本课程的教学目标是使学生掌握C程序设计的基本概念、语法和编程技巧,培养学生具备基本的程序设计能力和问题解决能力。
具体包括以下几个方面:1.知识目标:学生需要掌握C程序设计的基本语法、数据类型、运算符、控制结构、函数、数组、指针等基本概念,了解结构体、共用体、位字段等数据结构,以及文件操作、调试技巧等编程实践知识。
2.技能目标:学生需要能够运用C语言编写简单的程序,解决实际问题,具备基本的程序调试和优化能力。
3.情感态度价值观目标:培养学生对计算机科学的兴趣和热情,提高学生独立思考、创新意识和团队合作能力。
二、教学内容根据教学目标,本课程的教学内容主要包括以下几个部分:1.C语言基本语法和数据类型:变量、常量、数据类型、运算符、表达式等。
2.控制结构:顺序结构、选择结构、循环结构等。
3.函数:函数的定义和声明、参数传递、返回值、局部变量和全局变量等。
4.数组和指针:一维数组、多维数组、字符串、指针的概念和应用等。
5.数据结构:结构体、共用体、位字段、链表、栈和队列等。
6.文件操作:文件的打开、关闭、读写、定位等操作。
7.编程实践:调试技巧、代码优化、算法分析等。
三、教学方法为了达到教学目标,本课程将采用以下几种教学方法:1.讲授法:通过讲解和演示,使学生掌握C语言的基本概念和语法。
2.案例分析法:通过分析实际案例,引导学生运用C语言解决实际问题。
3.实验法:安排上机实验,让学生动手编写程序,培养编程能力和实践能力。
4.讨论法:学生进行小组讨论,促进学生之间的交流与合作,提高学生的创新意识和团队合作能力。
四、教学资源为了支持教学内容和教学方法的实施,本课程将采用以下教学资源:1.教材:《C程序设计语言》(K&R)、《C Primer Plus》等。
2.参考书:《C专家编程》、《C陷阱与缺陷》等。
3.多媒体资料:教学PPT、视频教程、在线课程等。
4.实验设备:计算机、编程环境(如Visual Studio、Code::Blocks等)、网络资源等。
C或C++课程设计题目-(1)
供选择的C或C++语言程序课程设计题目第一类题目应用类题目1:年历显示。
功能要求:(1)输入一个年份,输出是在屏幕上显示该年的日历。
假定输入的年份在1940-2040年之间。
(2)输入年月,输出该月的日历。
(3)输入年月日,输出距今天还有多少天,星期几,是否是公历节日。
题目2:小学生测验面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。
功能要求:(1)电脑随机出10道题,每题10分,程序结束时显示学生得分;(2)确保算式没有超出1~2年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出0~50的范围,负数更是不允许的;(3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;(4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;(5)总成绩90以上显示“SMART”,80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下“TRY AGAIN”。
题目3 运动会比赛计分系统要求:初始化输入:N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数各项目名次取法有如下几种:取前5名:第一名得分7分,第二名得分5,第三名得分3,第四名得分2,第五名得分1;取前3名:第一名得分5,第二名得分3,第三名得分2;功能要求:(1)系统以菜单方式工作(2)由程序提醒用户填写比赛结果,输入各项目获奖运动员信息。
(3)所有信息记录完毕后,用户可以查询各个学校的比赛成绩(4)查看参赛学校信息和比赛项目信息等。
题目4:学生学籍管理系统用数据文件存放学生的学籍,可对学生学籍进行注册,登录,修改,删除,查找,统计,学籍变化等操作。
功能要求:(1)系统以菜单方式工作。
(2)登记学生的学号,姓名,性别,年龄,籍贯,系别,专业,班级;修改已知学号的学生信息;(3)删除已知学号的学生信息;(4)查找已知学号的学生信息;(5)按学号,专业输出学生籍贯表。
C语言课程设计参考题目
C语言课程设计参考题目C语言课程设计参考题目一、基本要求题目1、一司机出车祸后驾车逃离现场,第一位目击者记得车牌号前两位数字相同,且后两位数字也相同;第二位目击者是一位数学家,他看出车牌号是四位完全平方数。
试编程推算肇事车的车牌号。
2、有17个人围成一圈,从0号的人开始报数,凡报到3的倍数的人离开圈子,然后再数下去。
直到最后只剩下一个人为止。
问此人原来的位置是多少号。
3、编写一个程序,求3X4数组的转置矩阵。
要求在main函数里读数,在change 函数里把矩阵转置。
4、编写函数,求取两个整数m,n的最大公约数和最小公倍数。
5、用指向指针的方法对n个整数排序并输出。
要求将排序单独写成一个函数。
N 个整数在主函数中输入。
最后在主函数中输出。
6、有n个学生,每个学生的数据包括学号、姓名、年龄和两科成绩。
请编程用结构类型的数据处理方式实现如下目标:(1)在main 函数中输入原始数据;(2)在count 函数中输出各学生的总分和平均分;(3)输出总分最高的学生;(4)编写sort函数将各学生的数据按总分降序输出。
7、编写求子串函数substr(s,n1,n2),在串s中从n1位置开始取n2个字符的子串8、文件加密程序:将待加密文件以二进制打开,读入32个字节,分别与口令异或,在将4、5、6三个字分别与0xaaaa异或,即完成加密,执行第二次就解密9、编写字串str1 中找出所有小写字母转成大写字母,大写字母转成小写字母后,结果依次存入字符数组 str2 中,str1 不变仍为原字串的程序。
例如,字符串str1 为 "91A2BC. a1bc",调用函数 fun 后,字符数组str2将存入"91a2bc. A1BC",str1仍然是"91A2BC. a1bc"。
10、编写一个将某个范围在-32768~32767之间的整数转换为R进制(R=2,5,8,16)的通用程序。
C语言程序课程设计-猜数字游戏
C语言程序设计课程设计专业:自动化班级:姓名:学号:指导教师:兰州交通大学自动化与电气工程学院2015年07月21日一.引言1.1设计目的复习和巩固C语言基础知识,进一步加深对C语言的理解和掌握。
提高同学将课本上的理论知识和实际结合的能力,锻炼同学的分析解决实际问题的能力,提高同学团队合作的能力。
使同学们善于观察和思考,善于合作,具备实践编程的基础素质,和实际问题分析的思考方式。
1.2设计要求在设计时充分地分析和理解问题本身,综合考虑系统功能,怎样使系统结构清晰、合理、简单和易于调试。
然后详细设计,确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系。
最后认真完成课程设计说明书,并对设计方法,结果等进行总结。
充分地分析和理解问题本身,弄清要求做什么(What to do?)。
在确定解决方案框架过程中(How to do?),综合考虑系统功能,考虑怎样使系统结构清晰、合理、简单和易于调试。
最后确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系。
确定算法的主要流程,在此基础上进行代码设计(Coding),每个明确的功能模块程序一般不超过60行,否则要进一步划分。
上机前程序静态检查可有效提高调试效率,减少上机调试程序时的无谓错误。
静态检查主要有两种途径:(1)用一组测试数据手工执行程序;(2)通过阅读或给别人讲解自己的程序而深入全面地理解程序逻辑。
二.基础题2.1题目用选择法对10个数进行排序。
有一个已排好序的数组。
现输入一个数,要求按原来的规律插入到原数组中。
2.2解题思路程序的主要功能是对数组元素用排序函数按从小到大的顺序进行排序。
先定义一个10个元素的一维数组a[10],然后从电脑输入10个数(也就是对数组赋值),然后使用一次fun()函数,对这10个数进行排序;然后再定义一个11个元素的一维数组b[11],同时再从电脑输入一个数同a[10]一起赋值给b[11],然后再使用fun()函数,重新排序的到最后的有顺序的一组数据。
C语言程序课程设计备选题目
封面作者:PanHongliang仅供个人学习说明:1题目来源是:(1)较重要C语言程序设计教科书中的例题或习题;(2)与计算机学科相关的后续课程,如数据结构、离散数学、组合数学、计算方法等课程教科书中的例题或习题中,不需要相关后续课程的专门知识就可以很好解答的题目;其它有影响计算机程序设计类书籍或文章中的例题;(3)各级各类计算机程序设计竞赛(例如ACM大赛)、程序员考试、求职面试的训练题和考试卷等.欢迎老师和同学们提供更好的题目.2题目内容涉及的知识点不超过大学一年级的知识水平,主要目标是训练学生将实际问题转化为计算机可以处理的形式并编写程序给出解答的能力.去掉了较复杂事务管理如图书管理、学生成绩管理之类的题目,这类事务管理方面题目希望在后续课程如C++面向对象程序设计、数据库应用及各专业的课程设计中进行.3 题目有多种完全不同的解答,给出的提示主要供指导教师参考.题目1:文件存取练习:要求实现如下功能:(1)定义函数Rand1000(), 随机生成1000个均不相同的正整数,并写入到文本文件“file1.dat”中,各数之间用空格来分隔.(2)编写一个函数input(int a[],int n),将上述数据读入到数组a中.(3)编写一个函数digitcount(int a[],int n,int b[10]), 统计数组a的每个元素保存的整数中,每位数字出现的次数,并分别保存在b[0]到b[9]中.(4)编写函数maxprime(int *p,int n), 找出其中最大的素数,如果不存在素数函数结果为0.(5)对于这些整数排序之后,分别输出相邻两数之差最大和之差最小的两个数,如果有多组满足条件要输出所有的.(6)定义函数myinput(int a[],int n),用fgetc函数从文件“file1.dat”上逐个读入字符,并将其转换成独立的正整数,并依次存入数组a中.提示:可查阅任何一本C语言程序设计教科书中关于文件部分,例如谭浩强,C程序设计(第三版),第13章.还需要熟悉随机数生成函数rand(),需要编写判断一个奇整数是否素数的程序等.部分可供参考程序如下:题目2:两个文件同时对照显示:程序从两个文件中读出文本行,并列显示在屏幕上.假定屏幕有80列,25行,则第0—34列显示第一个文件的内容,第40—74列显示第二个,第77-78行显示文本总的行序号.每屏显示20行,超过20行就显示在下一屏.程序应该能够以这种方式显示任意的两个文本文件,例如两个C程序源代码文件,两篇内容类似的文章形成的两个文本文件等.提示:先把两个文本文件读入,存入数组,再考虑显示的安排.题目3:实现一个C语言程序设计自助学习系统,要求实现的基本功能如下:1、测验(1)可以按固定的试卷数目,从题库中随机选取题目进行测试,如每次测试5道题或10道题.(2)每次只显示一道题,包括问题描述、备选答案;(3)根据学生答题结果,对比试卷答案,显示答题对错的信息;(4)答题全部结束后给出本次测试的成绩,按百分制评分.2、学习管理(1)通过题目浏览,自我测验,查看题解的过程来帮助学生学习.(2)需要为学生提供多种学习方式,至少应包括顺序选题学习和随机选题学习等方式.(3)如果是采用顺序选题方式学习,需要做到可以从中间某个位置开始学习,不是每次一定从第一题开始学习.3、题库管理(1)试卷库中保存全部试卷及其相关信息.(2)将要入库的试卷,按固定格式编辑整理好保存在ASCII文件中,通过计算机程序读取该文件,并将文件中的全部试卷添加到已有的试卷库中.(3)今后需要对于所有试卷分类进行管理,在库结构设计时,要考虑这些扩展功能的数据接口要求.(4)试卷库初始化,将试卷库内容全部清空,便于重新建立系统.提示:可以参考:余江,肖淑芬主编,C语言程序设计,天津科学技术出版社,2001年5月,273-313页.题目4:实现题目3中C语言程序设计自助学习系统得升级版,可考虑实现功能:一、测验1、系统自动组卷(1)试卷结构说明:以题库提供的试卷类别和各类试卷的数量为依据来实现.系统组卷前需要获得的信息是对于每类试卷要含有类别名称、试卷数、分数,所有类别的分数累加在一起要恰好是100分.(2)试卷保存:将上述组卷结果保存在二进制文件中,文件名由用户输入. (3)个性化组卷:输入学号后,系统根据试卷结构说明的规定自动组卷,做到每个学生试卷不同.2、错题本功能(1)答错的题目自动加入到错题本中;(2)可以对错题本中的题目逐题测验,不分题目类别;(3)可以制定分类测试.3、多科目测试二、学习管理1、分类别学习2、错题本内容学习3、多科目学习,选择科目后可以进行指定类别的分类别学习和错题本内容学习.三、题库管理1、入库试卷文件格式正确性检查.包括:试卷的描述的合法性检查,类别信息合法性检查,给出出错位置的信息.2、对于分类试卷存储方式的优化,例如:同类试卷连续存储的实现;3、目前完成的是单科目多类别的题库管理,要实现多科目多类别的题库管理.四、用户管理1、系统注册2、登录3、错题本等个性化信息管理4、屏幕背景颜色和字符颜色的设置5、学习位置的记载,要按科目记载,每个科目要按类别记载.提示:鼓励使用更多方法实现,例如使用数据库系统,VC++等.题目5:给出一个正整数n,一个存放1到n共n个正整数的数字金字塔构造如下:(1)1在最上方第0层;(2)如果x大于y并且x除以y的余数为0(即x>y && x%y = = 0),x要放在y下方一层(即若y在第i层,x应在i+1层);(3)每个数应尽可能放在更下方,即如果可以放在第i层,就不能放在i-1层;(4)相同层上的数从左向右从小到大排列.其实第i层是有i个素数因子的数的从小到大的排列.例如对n=6,符合这组规则的数字金字塔如下:12 3 54 6每个数按照它在塔中的位置从上到下从左到右从1开始编号,例如5,编号应该是4.要求你编写程序,输入一个正整数n,5<n<50, 再输入3个不大于n的正整数,然后程序输出所构造的数字金字塔,及所输入3个不大于n的正整数在数字金字塔中的编号.例如设输入了6,3,4,5,程序可以输出:12 3 54 6 //用数组形式表示数字金字塔.3,5,4 //分别是3,4,5在数字金字塔中的编号.程序编写完成后,要求给出你的程序对下列两组输入的结果:(1)10,7,8,9 (2)25,15,20,25提示:本题为2010年ACM大赛题目,鼓励使用更多方法实现.题目6:你一定很熟悉著名的Hanoi塔游戏,当理解了圆盘数目较多需要的时间太长之后,你可以放弃实际去移动圆盘,但你不应该放弃如下一个有点类似的游戏:设有n根柱子,每根柱子上有一个圆盘,圆盘上有一个正整数,不同圆盘上的数不同.初始时假定柱子按照其上圆盘上数的大小从左向右排列,移动规则是从左向右看,当前一根柱子最下圆盘上数与后一根柱子最上圆盘上数相加的和是一个完全平方数时,前一根柱子上所有圆盘移动到后一根柱子上方.要求你编写程序,输入柱子数目和圆盘上的整数,输出移动的过程和结果.例如,一组输入是:4,1,3,5,6,第一个数4表示有4根柱子,圆盘上的数依次是1,3,5,6.你的程序运行后,可以输出1->3->6, 5, c=2,表示移动是1到3,3到6,因为1+3=4, 3+6=9,而4和9是完全平方数,符合条件的移动只有这两次.移动结果是还有2根柱子上有圆盘,即c=2,有圆盘的一根柱子上圆盘3个,有数1->3->6,有圆盘另一根柱子上圆盘一个,有数5,它其实没有发生移动.程序编写完成后,要求给出你的程序对下列两组输入的结果:(1)9,1,2,3,4,5,6,7,8,9(2)10,1,3,5,7,9,11,13,15,17,19(本题为2010年ACM大赛题目.)提示:输入:9,1,2,3,4,5,6,7,8,9 输出:1->3->6, 2->7->9,4->5,8,c=4输入:10,1,3,5,7,9,11,13,15,17,19 输出:1->3->13, 5->11,7->9,15,17->19,c=5题目7:我们知道,在10进制数中有判断整除性的二个简单规则:一个正整数能够被3整除,当且仅当,它的各位数字之和能够被3整除;一个正整数能够被11整除,当且仅当,它的奇数位数字之和与偶数位数字之和的差能够被11整除;现在要问:对于b进制数,具有类似于10进制数的3和11的这种整除性判断的数是什么?具体地,请编写程序,输入进制的基数b,输出最小的可以如上判断整除性的数x和y.为确定,输入输出均采用10进制数.例如输入b为10,则自然要输出x为3,y为11;若输入b为8,则要输出x为7,y为3(例如8进制数25,按上述规则判断应能够被7和3整除,事实上,8进制数25是10进制数21,能够被7和3整除是显然的);若输入b为120,则要输出x为7,y为11(请自己验证这是对的).(本题为2011年ACM大赛题目.)提示:对于10进制数,10-1=9=3*3,10+1=11,10进制数n可以一般地表示为:n = a k10k + a k-110k-1 + ……+ a110 + a0保持n不改变数值将10换为10 –1和10+1,可以看出3和11可以如上判断整除性的理由.对于b进制数,n = a k b k + a k-1b k-1 + ……+ a1b + a0可以想到只需考虑b – 1和 b+1的最小因子.题目8:如果语文数学两门课程的成绩,甲同学分别是80分和90分,乙同学是90分和80分,丙同学是70和60分,这时比较甲同学和乙同学的成绩,只能说语文较差,数学较好,综合到一起就属于无法比较,但对丙同学可以比较,可以说甲和乙同学的成绩都比丙同学好.一般情况,设有一个三元向量的集合,若其中有向量P=(p1, p2, p3), Q=(q1, q2, q3), 规定P≦Q 当且仅当p1≦q1, p2≦q2, p3≦q3 .其中一个向量称为是一个极小元素,当且仅当它只≦它自己.例如如下三个三元向量组成了向量组(80,90,100),(90,80,70),(60,70,60),其中只有一个最小元素,是(60,70,60).请编写程序,输入n个三元向量,输出其中最小元素的数目.(本题为2011年ACM大赛题目.)提示:先对第一个坐标排序,再考虑第二个坐标,第三个坐标.题目9:在某城市有n座摩天大楼,问那二座之间的距离最小?设可以输入所有大楼的位置坐标,请编写程序输出距离最近的二座大楼及它们之间的距离.两点(x1, y1) 和 (x2, y2) 之间的距离d按照两种不同方式规定:(1)Euclid距离d =(2)Manhattan距离 d = | x1 –x2 | + | y1–y2 |.显然的解法是计算所有点对之间的距离再找出最小值,但本题只要求输出距离最近的二点及之间距离,所以应该给出不计算所有点对之间距离的更有效率的解法(本题为2011年ACM大赛题目).(可查阅:[沙特]M.H.Alsuwaiyel著,吴伟昶等译,算法设计技巧与分析,电子工业出版社,2004年8月,第121-124页.或者:[美]Michael T.Goodrich等著,霍红卫译,算法分析与设计,人民邮电出版社,2006年10月,第385-387页.)提示:找到两点距离d后,接下去可检查宽不超过d的长条.题目10:一条贪吃的蛇在一个n*m的网格中游走,它只能从一个方格走向另一个相邻的方格,这里相邻的意思是两个方格有公共边.每个方格可以看作是一个房间,其中一些是空的,一些存放有苹果.贪吃的蛇根本不进入空的房间,而进入有苹果的房间后就可以带走所有苹果使房间成为空的.蛇从一个指定的房间出发,最终回到它的家,把一路带来的苹果存储到家中,当然,它希望带来的苹果最多.请编写程序,输入有整数n和m,及n*m的一个矩阵,矩阵元素数值中有一个是-1,表示蛇的出发位置,有一个是-2,表示蛇的家的位置,其余数值是非负整数,0表示房间为空,非零整数表示苹果的数目.输出蛇选择的游走路径和获得的最多的苹果数目.例如输入4*4矩阵:7 0 4 184 0 1 115 7 11 -10 12 -2 0则应输出 (2, 3), (1, 3), (0, 3), (0, 2), (1, 2), (2, 2), (2, 1), (3, 1), (3, 2), 带回苹果数为1+18+4+1+11+7+12 = 54.(本题为2011年ACM大赛题目).(可查阅:吕国英,任瑞征等编著,算法设计与分析(第2版),清华大学出版社,2009年1月,第200-202页.提示:这是一个利用回溯算法的迷宫搜索类型问题,可参考类似问题的已有解法.题目11:化学家研究原子团的行为时,认为每个原子具有整数能量,这个整数可以是正数、零和负数,绝对值不超过100.可以认为原子排列成为一行,一行中任意多个连续的原子可以形成原子团,原子团的能量是其中各原子能量的代数和.问题是怎样编写程序,求出具有最大能量的原子团和能量数值.要求程序输入一列原子的能量数值,以-1结束,输出找到的能量最大的原子团及能量数值.例如输入8,0,6,4,-2,-1,应输出原子团8,0,6,4,及能量数值18.(本题为2010年ACM大赛题目)(可查阅:吕国英,任瑞征等编著,算法设计与分析,清华大学出版社,2009年1月,第265-270页).提示:这是最大子段和问题.题目12:一刀可以把蛋糕分为两个部分,现在给出要分为两部分的面积的比值,希望求出切口的弦的长度.这里当然要假定蛋糕是一个圆,并设其半径为 1.例如,输入两部分比值为1:1,切口是直径,长为2;输入1:2,应输出1.9285;输入10:1,应输出1.4145.(本题为2010年ACM大赛题目)提示:计算半弦长,可以利用公式a2=2rh-h2,计算弓形面积,用公式s=0.5*xita*r*r-a*sqrt(r*r-a*a)。
程序设计综合课程设计题目
程序设计综合课程设计题目1.运动会分数统计任务:参加运动会有n个学校,学校编号为1……n。
比赛分成m个男子项目,和w个女子项目。
项目编号为男子1……m,女子m+1……m+w。
不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。
(m<=20,n<=20)功能要求:1)可以输入各个项目的前三名或前五名的成绩;2)能统计各学校总分,3)可以按学校编号或名称、学校总分、男女团体总分排序输出;4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。
5)数据存入文件并能随时查询6)规定:输入数据形式和范围:可以输入学校的名称,运动项目的名称输出形式:有合理的提示,各学校分数为整形界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。
(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。
进行程序测试,以保证程序的稳定。
测试数据及测试结果请在上交的资料中写明;2.飞机订票系统任务:通过此系统可以实现如下功能:录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;退票:可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
修改航班信息:当航班信息改变可以修改航班数据文件要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;3.文章编辑功能:输入一页文字,程序可以统计出文字、数字、空格的个数。
《程序设计课程设计》实验报告
《程序设计》课程设计姓名:学号:班级:软件工程14 班指导教师:成绩:1.消除类游戏1.1【问题描述】消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进行,棋盘的每一行每一列的方格上放着一个有颜色的棋子,当一行或一列上有连续三个或更多的相同颜色的棋子时,这些棋子都被消除。
当有多处可以被消除时,这些地方的棋子将同时被消除。
1.2【基本要求】现在给你一个n行m列的棋盘(1≤n,m≤30),棋盘中的每一个方格上有一个棋子,请给出经过一次消除后的棋盘。
请注意:一个棋子可能在某一行和某一列同时被消除。
输入数据格式:输入的第一行包含两个整数n, m,用空格分隔,分别表示棋盘的行数和列数。
接下来n行,每行m个整数,用空格分隔,分别表示每一个方格中的棋子的颜色。
颜色使用1至9编号。
输出数据格式:输出n行,每行m个整数,相邻的整数之间使用一个空格分隔,表示经过一次消除后的棋盘。
如果一个方格中的棋子被消除,则对应的方格输出0,否则输出棋子的颜色编号。
1.3【测试数据】为方便调试程序,可将输入数据先写入一个文本文件,然后从文件读取数据处理,这样可避免每次运行程序时都要从键盘输入数据。
测试数据一输出说明:棋盘中第4列的1和第4行的2可以被消除,其他的方格中的棋子均保留。
棋盘中所有的1以及最后一行的3可以被同时消除,其他的方格中的棋子均保留。
1.4【功能实现】#include <iostream>#include <windows.h>using namespace std;int main(){int m, n, i ,j;int temp;cin >> n >> m;temp = m;m = n;n = temp;int * map = new int[m * n];int * mark = new int[m * n];int * tmap = map;int * tmark = mark;int dif = 0;//输入for ( i = 0 ; i < m ; i++ )for (j = 0; j < n; j++)cin >> *(tmap + i * n + j);for (i = 0; i < m; i++)for (j = 0; j < n; j++){//横行if ((tmap + 2 - map) % n != 0 || (tmap + 1 - map) % n != 0)if (*(tmap) == *(tmap + 1) && * (tmap + 1) == *(tmap + 2)){dif = tmap - map;*(tmark + dif) = 0;*(tmark + dif + 1) = 0;*(tmark + dif + 2) = 0;}//竖列if (tmap + 2 * n - map < m * n || tmap + n - map < m * n)if (*(tmap) == *(tmap + n) && * (tmap + n) == *(tmap + 2 * n)) {dif = tmap - map;*(tmark + dif) = 0;*(tmark + dif + n) = 0;*(tmark + dif + 2 * n) = 0;}tmap = map + (j+1) + i * n;}//输出cout << endl;tmap = map;for (i = 0; i < m; i++)for (j = 0; j < n; j++)if (* (tmark + i * n + j) == 0)*(tmap + i * n + j) = 0;for (i = 0; i < m; i++){for (j = 0; j < n; j++)cout<< *(tmap + i * n + j)<<" ";cout << endl;}system("pause");return 0;}1.5【结果和截图】1.6【心得体会】通过这次试验,我对c语言编译器和对棋盘类游戏中的棋子行列删除有了更加深刻的认识和了解。
《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 栈及其操作问题描述:栈(Stack):是限制在表的一端进行插入和删除操作的线性表。
matlab课程设计参考题目
matlab课程设计参考题目一、教学目标本课程的教学目标是使学生掌握MATLAB基本语法、编程技巧和数据分析方法,培养学生运用MATLAB解决实际问题的能力。
具体目标如下:1.知识目标:(1)掌握MATLAB的基本语法和编程方法。
(2)了解MATLAB在数值计算、符号计算、数据分析、图像处理等领域的应用。
(3)熟悉MATLAB的编程环境和操作方法。
2.技能目标:(1)能够运用MATLAB进行简单的数值计算和符号计算。
(2)能够运用MATLAB进行数据分析和图像处理。
(3)能够编写简单的MATLAB程序,解决实际问题。
3.情感态度价值观目标:(1)培养学生对计算机科学和编程的兴趣。
(2)培养学生独立思考、解决问题的能力。
(3)培养学生团队协作、交流分享的良好习惯。
二、教学内容本课程的教学内容主要包括MATLAB基本语法、编程技巧和数据分析方法。
具体安排如下:1.MATLAB基本语法和编程方法:(1)MATLAB概述和编程环境。
(2)数据类型、变量和运算符。
(3)控制结构:顺序结构、分支结构、循环结构。
(4)函数和脚本文件的编写。
2.MATLAB在数值计算和符号计算中的应用:(1)线性方程组的求解。
(2)矩阵运算和特征值、特征向量计算。
(3)符号计算方法。
3.MATLAB在数据分析中的应用:(1)数据导入和导出。
(2)数据可视化:曲线绘制、图像显示。
(3)数据分析方法:统计分析、曲线拟合、信号处理。
4.MATLAB在图像处理中的应用:(1)图像显示和处理基本操作。
(2)图像滤波和增强。
(3)图像分割和特征提取。
三、教学方法本课程采用讲授法、案例分析法和实验法相结合的教学方法,以激发学生的学习兴趣和主动性。
1.讲授法:通过讲解MATLAB的基本语法、编程方法和应用案例,使学生掌握MATLAB的基本知识。
2.案例分析法:通过分析实际案例,使学生了解MATLAB在数值计算、数据分析和图像处理等领域的应用。
程序设计基础课程设计选题
程序设计基础课程设计选题一、课程目标知识目标:1. 理解程序设计的基本概念,掌握编程语言的语法结构;2. 学会使用程序设计中的顺序、选择和循环结构进行问题求解;3. 掌握基本的算法思想和程序设计方法,能运用所学知识解决实际问题;4. 了解程序调试与测试的基本方法,提高程序的正确性和可靠性。
技能目标:1. 能运用编程语言编写简单的程序,实现特定的功能;2. 培养学生的逻辑思维能力,提高分析问题和解决问题的能力;3. 学会使用调试工具,找出程序中的错误并进行修正;4. 培养学生的团队协作能力,学会与他人共同完成程序设计任务。
情感态度价值观目标:1. 培养学生对程序设计的兴趣,激发学生的学习热情;2. 培养学生的创新意识,鼓励学生敢于尝试、勇于探索;3. 培养学生的责任心,使学生在编程过程中养成良好的编程习惯;4. 培养学生面对困难时保持积极态度,勇于克服困难,不断提高自己。
本课程针对中学生设计,注重培养学生的编程兴趣和实际操作能力。
课程内容与教材紧密关联,结合学生年级特点和教学要求,将目标分解为具体的学习成果,为后续的教学设计和评估提供依据。
通过本课程的学习,学生将掌握程序设计的基本知识和技能,为未来进一步学习计算机科学奠定基础。
二、教学内容1. 程序设计基本概念:程序、算法、数据类型、变量、常量等;2. 编程语言语法结构:运算符、表达式、语句、函数、输入输出等;3. 顺序结构程序设计:顺序执行、程序流程图、伪代码等;4. 选择结构程序设计:条件语句、逻辑运算符、多分支结构等;5. 循环结构程序设计:循环语句、循环控制、循环嵌套等;6. 基本算法:排序、查找、数学计算等;7. 程序调试与测试:调试方法、测试用例设计、错误处理等;8. 程序设计实例:编写简单的计算器、游戏、信息管理系统等。
教学内容按照教材章节进行安排,共计8个部分,每部分包含理论与实践相结合的教学活动。
教学进度根据学生实际情况和教学计划进行合理分配,确保学生能够逐步掌握程序设计的基本知识和技能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《程序设计课程设计》参考题及要求
一、本课程设计的性质、目的、任务
本课程设计的性质是一门是计算机专业的实践教学平台课程,它是《程序设计基础》、《面向对象程序设计》及其相关实验课程的后继课程。
通过本课程的教学实践,使学生达到加深对计算机高级语言程序设计特点、结构化程序设计方法和面向对象程序设计的理解、提高学生对可视化编程的动手能力之目的。
本课程将充分考虑程序设计课程设计的各个方面和特点,特别重视探索设计过程中的可视化操作解决方案,要求学生有一定的普通数学解题能力并能掌握将一般数学模型转换为程序的步骤和设计方法,通过本设计课程,熟悉计算机的基本操作和初步的设计能力,使学生既具备较全面的计算机程序设计理论知识,又掌握实际编程的应用动手技能。
本课程设计的任务是结合《程序设计基础》、《面向对象程序设计》理论课和实验课教学以及课程的有关知识,完成若干个综合设计内容,提交有关设计文档、源程序代码和总结报告。
二、本课程设计的基本理论(基础理论和基本方法)
本课程设计的基本理论和基本方法为:1)C程序设计的基本语法,包括“分支语句”、“循环语句”、“排序语句”、“数组语句”、“指针语句”、“读和写磁盘文件语句”等;2)结构化程序设计方法、程序设计的系统分析方法、一般的数学模型转换为程序的步骤和设计方法;3)面向对象方法学的基本概念(对象、消息和方法、类、继承性、封装性、多态性);4)面向对象可视化程序设计。
先导课程为《高等数学》、《计算机导论》、《程序设计基础》、《面向对象程序设计》以及相关实验等课程,本课程为后续与程序设计有关的课程打下基础,是《面向对象分析与设计》、《面向对象分析与设计实验》和《高级数据库应用技术》、《网络应用软件开发》等课程的先导课程。
三、程序与要求
课程设计的程序与要求主要内容如下:
内容一:“简单学生管理系统设计”
本设计内容可用程序设计基础方法完成。
系统功能简介:本系统有包括7个主要功能供给用户,用于管理学生信息。
1.输入和储存学生信息
用户可以使用系统储存学生信息,包括学生姓名,学号,性别,成绩(物理,英语,数学,计算机导
论,C程序)
2.查看学生信息
通过使用系统可以查看已统计好的学生信息
3.学生成绩统计:
使用系统可以浏览学生已排好的成绩统计,包括名次,总分,平均分,最高和最低分。
4.查找学生信息:
使用系统可以浏览单个学生的信息,分为按学号和姓名查找。
5.修改学生信息:当学生信息有误时就可以通过系统来修改。
6.删除学生信息:使用系统可以要删除某个学生信息。
7.增加学生信息:不能在第一个功能上增加学生信息,只能在这个功能上实现。
8.退出。
内容二:“简单电梯运行模拟系统设计”
本设计内容可用面向对象程序设计方法完成。
某公司要建立一栋两层的办公大楼,并装上1部新的电梯,每个电梯限载1人,要求开发一个面向对象的模拟程序,模拟电梯的操作,以确定这个电梯能否满足需要,对于发生的每个重要事件显示一个消息
(例如:“1人到了2楼”,“人进入了电梯”等)。
为了省电,电梯每天在一楼关门等待。
模拟程序包括一个时钟,每天从时间0开始,每秒滴答一次,模拟程序随机设置每一层第一个人到来的时间,模拟程序生成一个新到的人并将人放在这一层,然后这个人按下该层的按钮,请求电梯开门。
这个人的目的地不能与他上电梯的楼层相同。
电梯从一层到二层的时间需要5秒。
扩展1:如果楼层为多层,程序应作何改动?
扩展2:如果有多部电梯,程序应如何实现电梯在每一层的载客和下客?而且最省电?
扩展3:如果电梯可搭载多位乘客,程序如何实现?
扩展4:(选做)用动画图形输出,在屏幕上显示电梯上下移动。
内容三:“MFC可视化程序设计”
本设计内容可用可视化程序设计方法完成。
每个学生可任选下列问题1-8中的不少于六个小问题,或问题7-10不少于三个小问题,用MFC 类库方法编程设计(指导教师也可以要求选取其他组合的问题):
问题1:“球体积和球表面积计算设计”。
设计一个对话框,可以输入球的半径,输出球体积和球表面积。
问题2:“长方体体积和表面积计算设计”。
设计一个对话框,可以输入长方体的长、宽和高,输出长方体的体积和表面积。
问题3:“袖珍计算器设计”。
计算加、减、乘、除、乘方、开方。
在用户界面上设置两个编辑框,分别用于输入左操作数和右操作数,两个静态文本分别用于显示“=”号和运算结果,其中用六个单选按钮用于选择运算符。
要求能够存储操作数、操作码和结果;执行算术操作;实现控制功能,如清除、全部清除和改变符号;根据需要产生在计算引擎中存储的量;对外报告错误时,保存内部状态。
扩展1:接收键盘输入;识别操作和数字操作数;从用户输入产生下一个操作和操作数;显示操作码、操作数、结果、错误;限制错误的输入。
扩展2:建立合适大小的模拟LCD窗口;在LCD窗口中显示给定的字符串;显示给定的单一字符操作码;清除LCD窗口;恢复对用户的正常I/O。
问题4:“数据记录框设计”。
编写一个列表框应用程序,可以进行添加和删除数据记录:姓名、性别、年龄、电话号码、单位、住址、邮政编码,列表框用于显示对应某数据记录的姓名。
问题5:“调色板设计”。
三原色红色、绿色、蓝色参数分别可用四个单选按钮选取为:0、80、160、255的其中一个值,三种原色的参数选定后,在编辑框内显示调色后的颜色变化。
问题6:创建单文档应用程序框架,可在菜单的各栏目分别调出上述题1到题5功能的各对话框。
问题7:设计一个数制转换类:实现十进制—二进制,十进制—八进制转换。
输入十进制数,转换后分别显示二进制,八进制数。
(不能调用库函数)
问题8:设计一个文本加密类:文本包含26个字母和数字0--9。
接受用户输入文本,按加密按钮输出加密后的文本;对于加密后的文本,按解密按钮可以得到原文。
(通过简单的字符替换)
问题9:
(1)、构造一个分数类CFractions ,它有两个整数型数据成员,分别用来表示分数的分子和分母。
类的构造函数在没有指定初始值时,将类的两个成员变量初始化为1。
构造函数必须禁止将分母初始化为0。
类能够按照下面的公式完成加、减、乘和除运算。
(a) 分数相加:bd bc
ad d c
b a +=
+ (b) 分数相减:bd bc ad d c
b a -=-
(c) 分数相乘:bd ac d c
b a =⨯
(d) 分数相除:bc ad d
c
b a =÷
(2)、将类CFractions 加入到一个对话框程序中,并测试该类的每一个成员函数及友元函数。
问题10:
(1)、构造一个分数类CV ector3D ,它有三个浮点型数据成员,分别用来表示该向量的x 、y 、和z 分量。
类的构造函数在没有指定初始值时,将类的三个成员变量初始化为0.0。
类能够按照下面的公式完成向量加、减、数乘和内积运算。
(a) 向量相加:(x1, y1, z1) + (x2, y2, z2) = (x1+x2, y1+y2, z1+z2) (b) 向量相减:(x1, y1, z1) - (x2, y2, z2) = (x1-x2, y1-y2, z1-z2) (c) 向量数乘:k(x1, y1, z1) = (kx1, ky1, kz1)
(d) 向量内积:(x1, y1, z1) * (x2, y2, z2) = x1x2+y1y2+z1z2
(2)、将类CVector3D 加入到一个对话框程序中,并测试该类的每一个成员函数及友元函数。
课程设计要求:
1)提供《程序设计课程设计》说明文档文件(其中包括各功能模块算法说明、功能说明和总结报告等); 2)提供源程序(完整的工程文件);
将上述1)-2)内容刻光盘,文档文件内容(除源程序代码)打印上交。
四、课程设计要求说明
上述“内容一”为必做,“内容二”与“内容三”选做其中一个内容,指导老师也可以结合学生实际情况另拟指导题目和具体要求。
五、考核方式与评分标准
考核方式:考查
评分标准:五分制,分优、良、中、及格、不及格
参照教学基本要求,程序设计相关文档和总结报告占25%,设计质量即设计的完整性、合理性、正确性方面(具体材料包括功能模块结构说明、原代码、程序运行结果等)占60%,学生学习态度及出勤情况等占15%。
六、配套教材
参考教材:
1)《C程序设计(第三版)》,谭浩强著清华大学出版社出版,2005年版
2)《C++程序设计基础》(第3版),周霭如编著,电子工业出版社,2010年版。
3)实验指导书:《程序设计基础实验指导书》、《面向对象程序设计实验指导书》,广州大学计算机科学与教育软件学院编。
文档统一封面:
程序设计课程设计
□□□□□□□□设计
学院:计算机科学与教育软件
专业班级:计算机大类班
学号:
姓名:
指导教师:
完成日期:2012年月日。