一、选题要求
1. 分组设计
按小组方式进行组织设计,小组成员为4~5人,班级内自由组合,并确定小组组长,分组名单汇总到各班班长,最后交给老师。
2. 题目选择
每个小组至少选择3个题目,其中:基础题中任选3道题,综合设计题选1道题。
3. 考核标准
总的要求:组内每位同学,一起协商承担的任务,每人都要参与设计和编程工作,不能只负责撰写论文。
评分组成:
1)组长对组内成员学习态度和承担设计任务的评价;
2)课程设计完成的效果,必要时会采用现场演示和答辩的方式;
3)课程设计报告的撰写质量;
4. 提交材料
每位同学依据所在小组选择的课程设计题,独立撰写课程设计报告,分题目依次撰写。不允许相互间抄袭,否则均以零分计算。
备注:如果是合作完成一个题目的,除了选择的数据结构一样以为,算法部分每个人只写自己完成的那部分,绝对不允许交上来的论文一模一样!。
题目:
要想得到优秀:
只做(必做)题目:数据结构各章算法的演示系统
一、基础题目
基本设计题1:顺序表操作
一、 设计目的
1.掌握线性表的顺序存储结构和操作特性。
2.实现基于顺序表的基本操作。
二、设计内容和要求
实现线性表的查找、插入、删除、计数、输出、排序、逆置等运算,查找、插入、删除、计数、输出、排序、逆置要单独写成函数,并能在屏幕上输出操作前后的结果。
通过基本操作的组合来实现:假设利用两个线性表LA和LB分别表示两个集合
A和B(即:线性表中的数据元素即为集合中的成员),分别实现集合A和B的基本运算:求交集,并集,差集,要单独写成函数,并能在屏幕上输出操作前后的结果。
要求:
(1)设计一组输入数据并编写完整的程序。调试程序并对相应的输出作出分析;修改输入数据,预期输出并验证输出的结果。程序具有可扩展性。
(2)要求设计的界面美观、合理、便于操作等,功能与实际应用系统紧密联系,系统结构合理构思巧妙、模块化程度高等。
基本设计题2:链表操作
一、 设计目的
1.掌握线性链表的建立。
2.掌握线性链表的基本操作。
二、设计内容和要求
利用链表的插入运算建立线性链表,然后实现链表的查找、插入、删除、计数、输出、排序、逆置等运算,查找、插入、删除、计数、输出、排序、逆置要单独写成函数,并能在屏幕上输出操作前后的结果。
通过基本操作的组合来实现:假设利用两个线性表LA和LB分别表示两个集合A和B(即:线性表中的数据元素即为集合中的成员),分别实现集合A和B的基本运算:求交集,并集,差集,要单独写成函数,并能在屏幕上输出操作前后的结果。
基本设计题3:栈和队列其应用
一、 设计目的
目的在于使读者深入了解栈和队列的特性,以便在实际问题背景下灵活运用他们;同时还将巩固对这两种结构的构造方法的掌握,接触较复杂问题的递归算法设计。
二、设计内容和要求
(1):栈列操作的验证(建栈、入栈、出栈、销毁栈)
(2):表达式求值
(3):进制转换
(4):队列操作的验证(建队列,入队,出队等操作)
基本设计题4:二叉树操作
一、 设计目的
1.掌握二叉树的概念和性质
2.掌握任意二叉树存储结构。
3.掌握任意二叉树的基本操作。
二、设计内容和要求
1.实现二叉树的创建
2.对二叉树进行前序、中序、后序和层次遍历;
3.求二叉树结点数、叶子结点数和高度;
4.将二叉树所有结点的左右子树交换。
5.复制二叉树。
基本设计题5:无向图的邻接矩阵或邻接表存储表示
一、 设计目的
1.掌握无向图的邻接矩阵或邻接表的存贮结构。
2.掌握无向图的邻接矩阵或邻接表的算法实现。
3.掌握无向图的深度优先遍和广度优先遍历算法实现。
二、设计内容和要求
对任意给定的图(顶点数和边数自定),建立它的邻接矩阵或邻接表的存储结构并输出,然后实现图的深度优先遍历和广度优先遍历。
基本设计题6:二叉排序树
一、 设计目的
1.掌握二叉排序树的概念
2.掌握二叉排序树的建树原理方法。
3.掌握二叉排序树的删除算法。
二、设计内容和要求
1.输入一个数列L,生成一棵二叉排序树T
2.对二叉排序树T作递增、递减输出
3.计算二叉排序树T的平均查找长度,输出结果
4.在二叉排序树T上删除值为x的结点,若二叉排序树T上不存在该结点,则执行:cout<<"值为"<<x<<"的结点不存在。"<<endl;
基本设计题7:排序算法比较
一、 设计目的
1. 掌握各种排序的基本思想。
2. 掌握各种排序方法的算法实现。
3. 掌握各种排序方法的优劣分析及花费的时间的计算。
4. 掌握各种排序方法所适应的不同场合。
二、 设计内容和要求
(1)对以下6种常用的内部排序算法进行比较:起泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、堆排序。
(2)待排序表的表长不小于100;其中的数据要用伪随机数产生程序产生;至少要用5组不同的输入数据作比较;统计数据元素比较的次数和交换的次数,进而对这四种算法在特定数据条件下的效率进行分析和评判。并统计每一种排序上机所花费的时间
(3)最后要对结果作出简单分析,包括对各组数据得出结果波动大小的解释。 【测试数据】
二、综合设计题
1、校园导游咨询
【问题描述】设计一个校园导游程序,为来访的客人提供各种信息查询服务。
【基本要求】
(1)设计你的学校的校园平面图,所含景点不少于10个。以图中顶点表示学校各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。
(2)为来访客人提供图中任意景点的问路查询.
(3)为来访客人提供图中任意景点相关信息的查询。
【测试数据】 由读者根据实际情况指定。
【实现提示】 一般情况下,校园的道路是双向通行的,可设校园平面图是一个无向网。顶点和边均含有相关信息。
2、哈夫曼编/译码器
【问题描述】
利用哈夫曼编码进行通信,可以压缩通信的数据量,提高传输效率,缩短信息的传输时间,还有一定的保密性。现在要求编写一程序模拟传输过程,实现在发送前将要发送的字符信息进行编码,然后进行发送,接收后将传来的数据进行译码,即将信息还原成发送前的字符信息。
[实现提示]
在本例中设置发送者和接受者两个功能,
发送者的功能包括:
①输入待传送的字符信息;
②统计字符信息中出现的字符种类数和各字符出现的次数(频率); ②根据字符的种类数和各自出现的次数建立哈夫曼树;
③利用以上哈夫曼树求出各字符的哈夫曼编码;
④将字符信息转换成对应的编码信息进行传送。
接受者的功能包括:
①接收发送者传送来的编码信息;
②利用上述哈夫曼树对编码信息进行翻译,即将编码信息还原成发送前的字符信息。
在本例中的主要算法有三个:(1)哈夫曼树的建立;(2)哈夫曼编码的生成;
(3)对编码信息的翻译
3、敢死队问题
有M个敢死队员要炸掉敌人的一碉堡,谁都不想去,排长决定用轮回数数的办法来决定哪个战士去执行此战士任务。如果前一个战士没完成任务,则要再派一个战士上去。现给每个战士编一个号,大家围坐成一圈,随便从某一个战士开始计数,当数到5时,对应的战士就去执行任务,且此战士不再参加下一轮计数。如果此战士没完成任务,再从下一个战士开始数数,被数到第5时,接着去执行任务。以此类推,直到任务完成为止。排长是不愿意去的,假设排长为1号, 请你设计一程序,求出从第几号战士开始计数才能让排长最后一个留下来而不去执行任务。
要求:至少采用两种不同的数据结构的方法实现。如果采用三种以上的方法者,可加分。
4、电视大赛观众投票及排名系统(排序应用)
【问题描述】
在很多的电视大赛中,通常当选手表演结束后,现场观众通过手中的按键对参赛选手进行投票,然后对选手获得的票数进行统计,从高到低进行降序排序,从而自动产生冠军、亚军和季军。现在要求编写一程序模拟实现上述系统的功能。 【实现提示】
在本例中,首先输入参赛选手的人数(范围为1-9个),然后根据人数通过malloc函数来开辟存放选手信息的顺序表。将选手的编号和姓名依此存入顺序表单元中,观众通过按键进行投票,按’1’为1号选手投票,按’2’为2号选手投票,以此类推,以按’0’作为投票结束标志。投票结束后进行排序,在此采用希尔排序,然后为每个选手计算名次,得票相同的名次也相同,
(1)存储类型的定义
参赛选手信息存储类型的定义:
typedef struct node{
char name[8]; /*选手姓名*/
int num; /*选手编号*/
int score; /*选手得分*/
int tax; /*选手名次*/
}Node;
5、约瑟夫环
问题描述:编号为1,2? n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数的上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数,报m的人出列,将他的密码作为新的m值,从他的顺时针方向上的下一个开始重新从1报数,如此下去,直至所有人全部出列为止,设计一个程序求出出列顺序。
基本要求:
1、利用单循环链表作为存储结构模拟此过程; 2、键盘输入总人数、初始报数上限值m及各人密码; 3、按照出列顺序输出各人的编号。
6、题目自选
第二篇:C++课程设计题目20xx
一、C++课程设计目的和要求
1.目的:
1)复习、巩固C++语言的基础知识,进一步加深对C++语言的理解和掌握;
2)课程设计为将课本上的理论知识和实际有机的结合起来,锻炼分析解决实际问题的能力。提高适应实际,实践编程的能力;
2.要求:
1)对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理;
2)系统设计要实用,编程简练,可用,功能全面
3)说明书、流程图要清楚
4)记录设计情况(备查,也为编写设计说明书作好准备);
5)要求采用模块化程序设计方法,要求上机调试通过和按设计报告格式。
6)设计上交内容:设计报告一人一份(按格式书写);源程序文件。
7)每题限选1~2人,但每个人做的功能不能完全一样
2.编程环境:VC6.0、Microsoft Visual Studio 20##、Microsoft Visual Studio 20##、C++Builder等均可。
具体参考题目:
1. 记事本程序:中国人要自力更生,我们不用微软的记事本,我们要搞一个国产记事本,界面模仿微软的记事本,功能可要强于它。字数统计、行列提示、背景/前景颜色设置等功能微软记事本可是没有的(赶超微软的时候到了~o~)。设计难度:一般。规模:小。
2. 图形浏览器:方便地浏览文件夹中的图形,要求:图形不变形,支持多种图形格式,较高的容错性。设计难度:一般。规模:小。
3. 基于C++的图形处理软件的设计:可对图像进行放大、缩小、裁剪;可设置阈值,对图像进行二值化处理;其他功能;难度:中。规模:小。
4. 动画播放演示程序:不利用现成的动画播放软件,自己设计一个动画演示程序,能将一系列图像(或图形)连续播放,使人产生动画的感觉。
5. 个人资源管理软件:当你看到互联网上的有用信息后,你想保存它的内容或超链接吗?当你看到论坛里一则好文章想保存它吗?当你存的东西太多了的时候,你如何管理它们,以便方便地阅读它们?编个个人资源管理软件吧。设计难度:一般。规模:小。
6. 画图软件:画图软件真够复杂的,能模仿一个出来吗?对图形感兴趣的同学不妨一试。设计难度:设计难度:中。规模:中。
7. 小闹钟:正在你认真编程的时候,突然,电脑发出了悠扬的乐声,或在屏幕上提示你:太迟了,可以睡觉了。请你编一个小闹钟。设计难度:一般。规模:小。
8. 五子棋:在一台机上实现二人对走。设计难度:一般。规模:小。备注:可不是人机对战哦。备注:围棋好像也能编耶。
9. 四则运算演示软件:小学生算术不会做了,他想让电脑帮忙。现在全靠你了。设计难度:一般到中。规模:小到中。备注:你能帮助到什么程度呢?
10. 大屏幕显示数字时钟
11. 设计一个模拟时钟转动的程序
12. 动画技术――卫星环绕地球
13. 串口调试助手
14. GSM调试助手:AT指令集采用SIM900A的指令
15. Windows计算器:模仿Windws自带的计算器
16. 可自拟其它题目!
大家也可选一下的题目
第一类题目 应用类
题目1:年历显示。
功能要求:
(1) 输入一个年份,输出是在屏幕上显示该年的日历。假定输入的年份在1940-20##年之间。
(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) 按学号,专业输出学生籍贯表。
(6) 查询学生学籍变化,比如入学,转专业,退学,降级,休学,毕业。
题目5:排班系统
学校实验楼有7名保安人员:钱、赵、孙、李、周、吴、陈。由于工作需要进行轮休制度,一星期中每人休息一天。预先让每一个人选择自己认为合适的休息日。请编制程序,打印轮休的所有可能方案。当然使每个人都满意,例如每人选择的休息日如下:
钱:星期一、星期六
赵:星期二、星期四
孙:星期三、星期日
李:星期五
周:星期一、星期四、星期六
吴:星期二、星期五
陈:星期三、星期六、星期日
运行结果:
Solution: 1
赵 钱 孙 李 周 吴 陈
=============================================================
星期四 星期一 星期三 星期五 星期六 星期二 星期日
Solution: 2
赵 钱 孙 李 周 吴 陈
=============================================================
星期四 星期一 星期日 星期五 星期六 星期二 星期三
Solution: 3
赵 钱 孙 李 周 吴 陈
=============================================================
星期四 星期六 星期三 星期五 星期一 星期二 星期日
Solution: 4
赵 钱 孙 李 周 吴 陈
=============================================================
星期四 星期六 星期日 星期五 星期一 星期二 星期三
题目6:通讯录程序设计
设计一个实用的小型通讯录程序,具有添加,查询和删除功能。由姓名,籍贯,电话号码1,电话号码2,电子邮箱组成,姓名可以由字符和数字混合编码。电话号码可由字符和数字组成。实现功能:
(1)系统以菜单方式工作
(2)信息录入功能
(3)信息浏览功能
(4)信息查询功能
(5)信息修改功能
(6)系统退出功能
题目7:学生选课系统
假定有n门课程,每门课程有课程编号,课程名称,课程性质,学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于15)自由选课。试设计一个选修课程系统,使之能提供以下功能:
(1)系统以菜单方式工作
(2)课程信息和学生选课信息录入功能(课程信息用文件保存)
(3)课程信息浏览功能
(4)查询功能
(5)按学分查询
(6)某门课程学生选修情况(可选项)
题目8:机房收费管理系统
(1)输入功能:输入30名学生的学号、班级、姓名、上机起始时间。
(2)计算功能:计算每个下机学生的上机费用,每小时1元。
(上机费用=上机时间* 1.0/h ,不足一小时按一小时计算)
(3)查询功能:按条件(班级、学号、姓名)显示学生的上机时间。
(4)机器使用情况的显示(显示方式不限但要一目了然)
题目9:班级成绩管理系统
对一个有N个学生的班级,每个学生有M门课程。该系统实现对班级成绩的录入、显示、修改、排序、保存等操作的管理。功能要求:
(1)本系统采用一个结构体数组,每个数据的结构应当包括:学号、姓名、M门课程名称。
(2)本系统显示这样的菜单:
请选择系统功能项:
a、成绩录入
b、成绩显示
c、成绩保存
d、成绩排序
e、成绩修改(要求先输入密码)
f、成绩统计
1)显示每门课程成绩最高的学生的基本信息
2)显示每门课程的平均成绩
3)显示超过某门课程平均成绩的学生人数
g、退出系统
(3)执行一个具体的功能之后,程序将重新显示菜单。
(4)将学生成绩保存到文件中。
题目10:机房机位预定系统
20台机器,编号1到20,从早八点到晚八点。两小时一个时间段,每次可预定一个时间段。功能要求:
(1)系统以菜单方式工作
(2)查询,根据输入时间,输出机位信息。
(3)机位预定,根据输入的时间查询是否有空机位,若有则预约,若无则提供最近的时间段,另:若用户在非空时间上机,则将用户信息列入等待列表。
(4)退出预定,根据输入的时间,机器号撤销该事件的预定!
(5)查询是否有等待信息,若有则提供最优解决方案(等待时间尽量短),若无则显示提示信息。
题目11:班级档案管理系统
对一个有N个学生的班级,通过该系统实现对该班级学生的基本信息进行录入、显示、修改、删除、保存等操作的管理。
功能要求:
(1)本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:学号、姓名、性别、年龄、备注。
(2)本系统显示这样的菜单:
请选择系统功能项:
a 学生基本信息录入
b 学生基本信息显示
c 学生基本信息保存
d 学生基本信息删除
e 学生基本信息修改(要求先输入密码)
f 学生基本信息查询
(1)按学号查询
(2)按姓名查询
(3)按性别查询
(4)按年龄查询
g. 退出系统
(3)执行一个具体的功能之后,程序将重新显示菜单。
(4)将学生基本信息保存到文件中。
(5)进入系统之前要先输入密码。
题目12:职工工资管理系统
功能设计要求
1. 输入记录:将每一个职工的姓名、ID号以及基本工资、职务工资、岗位津贴、医疗保险、公积金的数据作为一个记录。该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。
2. 显示记录:根据用户提供的记录或者根据职工姓名显示一个或几个职工的各项工资和平均工资。
3. 修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。
4.查找记录:可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。
5. 删除记录:可删除数据文件中的任一记录。
6. 统计: (A)计算各项工资平均工资及总工资, (B)统计符合指定条件(如职工工资前三项之和在3000元以上、3000~2000元、2000~1000元) 以内的工资职工人数及占总职工人数的百分比。(C)按字符表格形式打印全部职工工资信息表及平均工资(包括各项总的平均工资)。
7.保存数据文件功能。
例如:职工工资信息表
ID号 姓名 基本工资 职务工资 津贴 医疗保险- 公积金- 总工资
01 张望 1286 794 198 109 135 20##
02 李明 1185 628 135 94 114 1740
03 王小民 895 438 98 64 73 1294
04 张效章 1350 868 210 116 150 2162
05 彭山 745 398 84 61 68 1098
¼ ¼ ¼ ¼ ¼ ¼ ¼ ¼
各项平均工资 1092.2 625.2 145 88.8 108
题目13:工资纳税系统
个人所得税每月交一次,底线是1600元/月,也就是超过了1600元的月薪才开始计收个人所得税。个人所得税税率表一(工资、薪金所得适用)
级数----------全月应纳税所得额----------税率(%)
1--------------不超过500元的--------------------------5
2----------超过500元至2000元的部分------------10
3----------超过2000元至5000元的部分----------15
4----------超过5000元至20000元的部分---------20
5----------超过20000元至40000元的部分-------25
6----------超过40000元至60000元的部分-------30
7----------超过60000元至80000元的部分-------35
8----------超过80000元至100000元的部分------40
9----------超过100000元的部分---------------------45
表中的应纳税所得额是指以每月收入额减除1600元后的余额。
例如:计算为:2500-1600=900
应纳个人所得税额=500×5%+400×10% =65
再比如:我们用一个大额工资计算,25000元
应纳税所得额=25000-1600=23400
应纳个人所得税税额=500×5%+1500×10%+3000×15%+15000×20%+3400×25%=4475
要求:输入工资计算出纳税金额。
题目14:歌手比赛系统
对一次歌手比赛的成绩进行管理,功能要求:1、输入每个选手的数据包括编号、姓名、十个评委的成绩,根据输入计算出总成绩和平均成绩(去掉最高分,去掉最低分)。2、显示主菜单如下:1)输入选手数据 2)评委打分 3)成绩排序(按平均分)4)数据查询 5)追加学生数据 6)写入数据文件7)退出系统。
题目15:用英文单词模拟数学计算
读入两个小于100的正整数A和B,计算A+B。需要注意的是:A和B的每一位数字由对应的英文单词给出。
具体的输入输出格式规定如下:
输入格式:测试输入包含若干测试用例,每个测试用例占一行,格式为 "A + B = ",相邻两字符串有一个空格间隔。当A和B同时为zero时输入结束,相应的结果不要输出。
输出格式:对每个测试用例输出1行,即A+B的值。
输入样例:
one + two =
three four + five six =
zero seven + eight nine =
zero + zero =
输出样例:
three
nine zero
nine six
题目16:万年历查询程序。
功能要求:
(1)提供菜单方式选择
(2)输入年份、月份、日期,计算得到的是这一天据今天有多少天,星期几;
(3)输入公历的年月日,输出农历年月日。
(4)输入农历节气,输出当年农历的年月日及公历年月日。可以假定只涉及年份是1940年到20##年。
题目17:C语言关键字中英翻译机。
要求输入中文的名词和关键字,可以将其翻译成英语,如输入“基本整形”+回车,得到int;输入英文的单词int,则可以翻译成中文“基本整形”。可模拟文曲星来实现。可多次查询,输入bye时退出。
题目18:用C语言设计一个简单的计算器,要求能够对输入的数
1.进行+,-,*,/,运算;
2.可以带括号( );
3.不限定运算式的输入长度.
(参考编译技术中语法分析原理)
第二类题目 小游戏和图形处理
题目19:图形时钟
功能要求:
在屏幕上显示一个图形时钟(用程序绘制一个与时钟样式相似即可),时间与系统时间一致,且要随着时间的走动准确的走动。
题目20:五子棋游戏
在一个方阵上通过两人对弈的形式,依次在棋盘上放置两种颜色的棋子,哪一方先让五个棋子形成一条直线(包括横、竖、对角线3个方向),即为获胜,本程序实现用键盘控制的五子棋游戏。游戏初始运行界面应为如下:
游戏操作规则:
按左右上下方向键移动棋子
按空格键确定落棋子
禁止在棋盘外按空格
你是否接受上述的游戏规则(Y/N)
如果输入Y,才可以进行游戏,进入正式的游戏界面,要绘制五子棋的棋盘,设置棋子颜色。
题目21:计算24游戏
要求:输入四个数通过加减乘除计算出24,显示计算过程,并提示成功信息。
题目22:输入盘子数(2个以上有效),移动速度,开始演示汉诺塔移动的步骤,要求:盘子,A,B,C柱需要自己绘制,初始时盘子在A柱上通过B柱最终移动到C柱上,显示出盘子在几个柱之间的移动过程。
题目23:在屏幕上绘制国际象棋棋盘
题目24:在屏幕上绘制围棋棋盘
题目25:在屏幕上绘制中国象棋棋盘。
第三类题目 数学计算
题目26:多项式乘法的实现,已知如下两个多项式
P(x)=PX+ PX+...+PX+P
Q(x)=qX+qX+...+qX+q
求它们的乘积多项式 S(x)=sX+...+sX+s。
可以定义两个一维数组p,q,按照次数从高到低存储两个多项式的系数,定义一维数组来s来存储结果;利用函数来完成对结果多项式各项系数的计算,最后在屏幕上计算结果。
题目27:实现带有括号的四则运算。输入是一个带有括号的四则运算表达式,输出是计算得出的正确计算结果。例如:输入:123+213-67*34+345/23*45*(34+34-345+245+567)回车,然后程序计算得出结果为:359183
题目28:线性方程组求解,输入是N(N<256)元线性方程组Ax=B,输出是方程组的解,也可能无解或有多组解。可以用高斯消去法求解,也可以采用其它方法。
题目29:n阶方阵求逆。输入是一个n(n<256)阶方阵A,输出是它的逆矩阵,要求还要再将得到的逆矩阵与原来的矩阵相乘,验证其结果是单位矩阵。
题目30:大整数的四则运算。大整数指超过十位的十进制整数,这里为简便,假定不超过五十位。这类大整数在C语言系统中因超界溢出,是不能直接表达和计算的。可以用数组来表示大整数,在此基础上编写出实现大整数加、减、乘、除的程序,并努力加以优化。
题目31:设有任意正三角形ABC,其三条边BC、CA,AB上分别有一点A1、B1、C1,而且有AC1=2C1B,BA1=2A1C,CB1=2B1A。编制程序验证由线段AA1、BB1、CC1相交而成的三角形A2B2C2的面积是正三角形ABC的面积的七分之一。
题目32:对于任意的四边形ABCD,其对角线AC与BD的中点分别是M、N,AB、CD的延长线交于R。验证三角形RMN的面积是四边形ABCD面积的四分之一。
第四类题目 系统相关题目
题目33:设计一个模拟的时间条的程序
基本要求:一般我们在安装程序的时候,会经常看到有一个时间条表示程序安装的进度,这样用户就能够了解到安装还剩余多少时间。本程序实现的就是这个功能。当然,若要将其真正运用到某个程序中,还要加以修改,以便使之的进度能够真正的与应用程序的进度吻合。
创新要求:在基本要求达到后,进行创新设计。
题目34:文件加密
文件的传输会有明文和密文的区别,明文发送是不安全的,用一个程序实现发送文件的加密和解密操作。加密算法,密钥设计由同学自己选择现有的加密解密算法或是自己设计。
要求:
(1)对文件的字符根据加密算法,实现文件加密。
(2)对操作给出必要的提示。
(3) 对存在的file1.txt文件,必须先打开,后读写,最后关闭。加密后的文件放在file2.txt。
(4)解密文件保存在file3.txt中。