C语言程序设计实训题目1.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言程序设计实训题目1

C语言程序设计实训题目 (一人完成一题,一般选取相同题目的最多允许3人) 指导教师:孙杰 1. 设计一个多功能计算软件 实现功能: 1)具备整型数据、浮点型数据的算术(加、减、乘、除)运算功能。依次输入第一个运算数、运算符(+,-,*,/)、第二个运算数,然后输出结果。结果可以作为下一个运算的第一运算数。按‘C’清屏,按‘R’返回 菜单。 例如:输入:2 + 5 输出:7 2)实现单运算符表达式计算的功能。输入的操作数可以包含整数或浮点数。输入表达式如下: 例如:输入:2+5 输出:7 2. 学生成绩管理系统 1) 具备对成绩的管理功能(添加、删除、排序) 2) 具备对成绩的统计功能(最高分,最低分,平均分,及格率等) 3) 具备按学号、姓名、或课程名查询成绩的功能。 备注:成绩记录以下信息:班级,学号,姓名,课程名,成绩(百分制)。可以用能表示学生成绩的结构体数组存储数据。 3. 设计一个通讯录管理软件。 实现功能: 1) 通讯录编辑(添加、删除)。 2) 按不同的项进行查找。 3) 对已存在的通讯录按不同的项排序。 4) 将通讯录写入文件 5) 从文件读入通讯录 备注:通讯录至少应该有以下数据项:姓名,地址,电话,邮编,E-mail。 4、汉诺塔问题(Towers of Hanoi) 汉诺塔的问题是假设有三根木桩A、B和C。在木桩A上放置了N个圆盘,由上到下编号为1,2,,…,N,编号越大的圆盘直径越大。而我们必须将圆盘由木桩A通过木桩B全部搬到木桩C,如图1所示。 在移动过程中,必须按照下述移动规则: 1.直径较小的圆盘永远置于直径较大的圆盘上; 2.圆盘可任意地由任何一个木桩移到其他的木桩上; 3.每一次仅能移动一个圆盘。 假设现在有三个木桩A、B、C,在木桩A上,由大到小依次放置了三个中空的圆盘,则按照上述的移动规则,其移动的过程如图2所示: 因此当N=3时,移动次序如下: 从木桩A将圆盘1移动到木桩C。 从木桩A将圆盘2移动到木桩B。 从木桩C将圆盘1移动到木桩B。 从木桩A将圆盘3移动到木桩C。 从木桩B将圆盘1移动到木桩A。 从木桩B将圆盘2移动到木桩C。 从木桩A将圆盘1移动到木桩C。 首先我们观察当圆盘只有一个(即N=1)的时候,就直接把圆盘由木桩A移动到木桩C即可,不必用到木桩B。当圆盘不只一个(即N1)的时候,因为我们必须遵守上述的移动规则,也就是直径较小的圆盘永远置于直径较大的圆盘上,所以一开始的目的就必须想办法先把木桩A最下面的圆盘,也就是最大的圆盘取出来,移到木桩C的最下面去放,这样木桩C才能再放第二大的圆盘上去,如此一层层垒上去,直到完成目标。根据这样的概念,对于N1的解,可以分解成下列三个子问题: 将木桩A项端的N-1个圆盘通过木桩C移动到木桩B。 将木桩A唯一的圆盘移到木桩C:A→C 将木桩B顶端的N-1个圆盘通过木桩A移动到木桩C。 观察上面的三个子问题,我们发现第一个子问题及第三个子问题已经构成了递归调用,且问题也较为简化,即从N个圆盘变成N-1个圆盘的问题。而递归的终止条件,也就是在N=1时,就是发生在第二个子问题上,就不必再递归下去了,直接输出移动方法即可,因此我们可以把解题方案看成是一个分治算法,因为N个圆盘的解可以被分解成N-1个圆盘的解与N=1个圆盘的解。 算法如下: void hanoi (int n,char a,char b,char,c) { if (n0) { hanoi (n-1,a,c,b); printf (“move disk %d from %c to %c\n”,n,a,c); hanoi (n-1,b,a,c); } } 图3是当N=3时的递归调用树状图,可以使我们更清楚的了解递归的调用过程。 5、设计一个用户登录软件。 实现功能: 1) 提示输入用户名和密码(初始用户名为:guest;密码为:123),对输入信息进行检测;正确则提示欢迎信息,错误则提示重新输入(错误三次,退出系统)。 2) 提供密码的修改功能,输入原先的密码,正确则可以修改;输入新设定的密码,提示“再输入一遍”新设定的密码,2次一致则修改成功,否则提示有误,并允许重新设定或退出。 6、设计一个加密和解密软件。 实现功能: 1) 对输入的一串字符(或一个文件)进行加密(加密算法自定)。 2) 对已加密的一串字符(或一个文件)进行解密。 3) 提供有关提示信息和支持用户使用的辅助功能(根据实际情况自定)。 7、设计一个软件实现“农夫过河”。 问题描述:一个农夫带着一只狼,一只兔子和一些菜过河。河边只有一条一船,由于船太小,只能装下农夫和他的一样东西。在无人看管的情况下,狼要吃兔子,兔子要吃菜,请问农夫如

文档评论(0)

ktj823 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档