c语言程序设计实训题目一

c语言程序设计实训题目一

ID:14792748

大小:65.50 KB

页数:4页

时间:2018-07-30

c语言程序设计实训题目一_第1页
c语言程序设计实训题目一_第2页
c语言程序设计实训题目一_第3页
c语言程序设计实训题目一_第4页
资源描述:

《c语言程序设计实训题目一》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、C语言程序设计实训题目(一人完成一题,一般选取相同题目的最多允许3人)指导教师:孙杰1.设计一个多功能计算软件实现功能:1)具备整型数据、浮点型数据的算术(加、减、乘、除)运算功能。依次输入第一个运算数、运算符(+,-,*,/)、第二个运算数,然后输出结果。结果可以作为下一个运算的第一运算数。按‘C’清屏,按‘R’返回菜单。例如:输入:2+5输出:72)实现单运算符表达式计算的功能。输入的操作数可以包含整数或浮点数。输入表达式如下:例如:输入:2+5输出:72.学生成绩管理系统1)具备对成绩的管理功能(添加、删除、排序)2)具备对成绩的统计功能(最高分,最低分,平均分,及格率等)3)具备

2、按学号、姓名、或课程名查询成绩的功能。备注:成绩记录以下信息:班级,学号,姓名,课程名,成绩(百分制)。可以用能表示学生成绩的结构体数组存储数据。3.设计一个通讯录管理软件。实现功能:1)通讯录编辑(添加、删除)。2)按不同的项进行查找。3)对已存在的通讯录按不同的项排序。4)将通讯录写入文件5)从文件读入通讯录备注:通讯录至少应该有以下数据项:姓名,地址,电话,邮编,E-mail。4、汉诺塔问题(TowersofHanoi)汉诺塔的问题是假设有三根木桩A、B和C。在木桩A上放置了N个圆盘,由上到下编号为1,2,,…,N,编号越大的圆盘直径越大。而我们必须将圆盘由木桩A通过木桩B全部搬到

3、木桩C,如图1所示。在移动过程中,必须按照下述移动规则:1.直径较小的圆盘永远置于直径较大的圆盘上;2.圆盘可任意地由任何一个木桩移到其他的木桩上;3.每一次仅能移动一个圆盘。假设现在有三个木桩A、B、C,在木桩A上,由大到小依次放置了三个中空的圆盘,则按照上述的移动规则,其移动的过程如图2所示:因此当N=3时,移动次序如下:(1)从木桩A将圆盘1移动到木桩C。(2)从木桩A将圆盘2移动到木桩B。(3)从木桩C将圆盘1移动到木桩B。(4)从木桩A将圆盘3移动到木桩C。(5)从木桩B将圆盘1移动到木桩A。(6)从木桩B将圆盘2移动到木桩C。(7)从木桩A将圆盘1移动到木桩C。首先我们观察当

4、圆盘只有一个(即N=1)的时候,就直接把圆盘由木桩A移动到木桩C即可,不必用到木桩B。当圆盘不只一个(即N>1)的时候,因为我们必须遵守上述的移动规则,也就是直径较小的圆盘永远置于直径较大的圆盘上,所以一开始的目的就必须想办法先把木桩A最下面的圆盘,也就是最大的圆盘取出来,移到木桩C的最下面去放,这样木桩C才能再放第二大的圆盘上去,如此一层层垒上去,直到完成目标。根据这样的概念,对于N>1的解,可以分解成下列三个子问题:(1)将木桩A项端的N-1个圆盘通过木桩C移动到木桩B。(2)将木桩A唯一的圆盘移到木桩C:A→C(3)将木桩B顶端的N-1个圆盘通过木桩A移动到木桩C。观察上面的三个子

5、问题,我们发现第一个子问题及第三个子问题已经构成了递归调用,且问题也较为简化,即从N个圆盘变成N-1个圆盘的问题。而递归的终止条件,也就是在N=1时,就是发生在第二个子问题上,就不必再递归下去了,直接输出移动方法即可,因此我们可以把解题方案看成是一个分治算法,因为N个圆盘的解可以被分解成N-1个圆盘的解与N=1个圆盘的解。算法如下:voidhanoi(intn,chara,charb,char,c){if(n>0){hanoi(n-1,a,c,b);printf(“movedisk%dfrom%cto%c”,n,a,c);hanoi(n-1,b,a,c);}}图3是当N=3时的递归调

6、用树状图,可以使我们更清楚的了解递归的调用过程。5、设计一个用户登录软件。实现功能:1)提示输入用户名和密码(初始用户名为:guest;密码为:123),对输入信息进行检测;正确则提示欢迎信息,错误则提示重新输入(错误三次,退出系统)。2)提供密码的修改功能,输入原先的密码,正确则可以修改;输入新设定的密码,提示“再输入一遍”新设定的密码,2次一致则修改成功,否则提示有误,并允许重新设定或退出。6、设计一个加密和解密软件。实现功能:1)对输入的一串字符(或一个文件)进行加密(加密算法自定)。2)对已加密的一串字符(或一个文件)进行解密。3)提供有关提示信息和支持用户使用的辅助功能(根据实

7、际情况自定)。7、设计一个软件实现“农夫过河”。问题描述:一个农夫带着一只狼,一只兔子和一些菜过河。河边只有一条一船,由于船太小,只能装下农夫和他的一样东西。在无人看管的情况下,狼要吃兔子,兔子要吃菜,请问农夫如何才能使三样东西平安过河。8、设计贪吃蛇游戏玩家通过键盘控制蛇在地图上寻找食物,蛇吃下食物,可以加分,碰到四壁游戏结束。9、链表操作(1)目的、要求了解和掌握顺序表的逻辑结构和链式存储结构,掌握顺序表的基本算法及相关的时间性

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。