《程序设计基础课程设计》题目77382_第1页
《程序设计基础课程设计》题目77382_第2页
《程序设计基础课程设计》题目77382_第3页
《程序设计基础课程设计》题目77382_第4页
《程序设计基础课程设计》题目77382_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、题目1 使用菜单选择程序 菜单是应用程序的界面,控制语句用来改变程序执行的顺序,是实现结构化程序设计的基础。设计一个比较实用的菜单,通过菜单选择不同的功能。 设计分为两步:首先设计一个含有多个菜单项的菜单演示程序,然后再为这些菜单项配上相应的功能。一、设计一个菜单程序 (1)菜单内客程序运行后,给出6个菜单项的内容和输入提示。 1FindNum 2FindRoot 3Detective 4Bear 5Diamond 6Goodbye! Input 1-6: ()设计要求使用数字1-6来选择菜单项,其他输人则不起作用。二、增加菜单项的处理功能 以设计的菜单为基础,增加菜单项的处理功能。菜单项设计

2、要求 这其实是5道编程题,目的是锻炼使用控制语句的能力。 ()FindNum 一只老鼠咬坏了账本,公式中符号口代表是被老鼠咬掉的地方。要想恢复下面的等式,应在口中填上哪个相同的数字? 3口×6237=口3×3564 利用计算机的计算速度快的特点,把所有可能的数都试一下,从中找出符合条件的数。这就是所谓的穷举法。 某位的数字只有0-9个数字,显然已经排除了为0的可能性,将1-9种可能性拿来试验,即可找到合适的数字。由此可见,就是寻找满足下式面的i值: (30+i)×6237=(10×i+3)×3564 ()FindRoot 这里要求编制一个求方程

3、ax2+bx+c=0的根的程序。一般将系数设计成float型,可以把变量设为double型,使用库函数sqrt求平方根,sqrt在头文件math.h中定义。假设 d=b×b4×a×c可以根据d大于、等于或小于零来决定求解方法。 if(d0)/有两个不相等的实数解else if ( d = = 0 ) /有两个相等的实数解 else /有两个不相等的虚数解()Detective这是一道侦探题。一辆汽车憧人后逃跑。4个目击者提供如下线索: 甲:牌照三、四位相同; 乙:牌号为31xxxx; 丙:牌照五、六位相同; 丁:三一六位是一个整数的平方。为了从这些线索中求出牌照号

4、码,只要求出后四位再加上310000即可。这四位又是前两位相同,后两位也相同,互相又不相同并且是某个整数的平方的数。可以仍然使用穷举法,利用计算机的计算速度快的特点,把所有可能的数都试一下,从中找出符合条件的数。因为后面4位数,1000的平方根>31,所以穷举实验时不需从1开始,而是从31开始寻找一个整数的平方。下面直接使用for语句格式,给出算法思想。 for ( i=1 ; i<=9 ; i+) for ( j=0 ; j<=9 ; i) if ( i != j ) k = i *1000 + i * 100 + j * 10 + j; for ( c = 31 ; c

5、* c < k ; c +) if ( c * c = = k) cout<<”牌照号码是:”<<310000 + k; ()Bear本题是一个笑话,话说有一只狗熊到玉米地里掰玉米,一边掰一边吃。第一天吃了一半,又拿走一个回去喂小狗熊。第二天又去吃了剩下的一半,走时仍然带一个回去喂小狗熊。以后每天都吃前一天剩下的一半,拿走一个。到第十天时,地里只剩下一个玉米。求地里一共有多少玉米。这里可以使用回溯算法。假设狗熊每次吃掉的为x2,则第10天时的x2=1,第9天地里剩下的玉米xl = (x2 + l) ×2,这也是狗熊在第8天时吃掉的玉米数量。因此可以使用如

6、下算法描述: int day =10,x2=1,x1; while(day>0) x1=(x2+1)×2; x2=xl; day-; ()Diamond本题要求编制打印以下图案的程序,注意题目还要求在左边留出一定空格。 通过观察图像的组成特点,可以把它们解剖成两部分:上面4行和下面3行。上面行按递增计数,下面则按递减计数。假设第一个“”距左边15个空格,使用字符“1”模拟的显示图形如如下:111111111111111*11111111111111*1111111111111*111111111111*1111111111111*11111111111111*111111111

7、111111*()Goodbye!这里除了输出一个简单的信息之外,还必须结束程序运行。题目2 用结构数组设计职工文件 本章课程设计的目的是学习使用结构数组建立职工档案信息文件。为了节省篇幅,设计 不要求使用多文件编程,但要求使用头文件和菜单,并组成一个工程文件。功能设计要求:(1)建立wkrs职工数据结构,结构含有姓名、序号、性别和年龄信息。(2)设计一个readin函数,以便采用问答式输入10个职工的信息。并建立一个文件用来存储这10个职工的信息,约定文件名为workers。(3)编写一个display函数,要求使用结构指针作为参数,用来输出职工文件的内容。(4)建立wks职工简明数据结构,

8、结构只含有姓名和年龄信息。(5)编制一个srt函数,根据wks结构建立的职工情况,把职工姓名和工资信息抽出来,另外建一个只含职工姓名和年龄的文件,约定文件名为wk_saw。(6)编制一个delwk函数,可以从简明数据文件wk_saw中删去指定的职工记录,如果文件里没有要删去的职工,则输出没有这个职工的信息。如果将内容全部刚除,则给出一个已经删空的提示信息并退出该操作。(7)将上述函数编制在一个文件里,共用一个头文件。 (8)用一个简单的菜单提供上述操作。菜单信息为:1输入数据2显示原始数据3制作简明数据4删除简明数据 5退出运行 左边数字对应功能选择请选1-5:题目3 学生成绩管理程序设计一个

9、实用的小型学生成绩管理程序,它要求不用链表,而用数组来设计这个程序。它有查询和检索等功能,并且能够对指定文件操作,也可将多个文件组成一个文件。功能设计要求 设计要求实现的功能较多,所以将它们分为几个部分叙述。 1建立文件 (1)可以使用默认文件名或指定文件名将记录存储到文件; (2)文件保存成功返回0,失败返回-1; (3)设置保存标志savedTag作为是否已对记录进行存储操作的信息; (4)写同名文件将覆盖原来文件的内容; 2增加学生记录 (1)可在已有记录后面追加新的记录; (2)可以随时用它增加新的记录,它们仅保存在结构数组中; (3)可以将一个文件读入,追加在已有记录之后; (4)如

10、果已经采取用文件追加的方式,在没有保存到文件之前,将继续保持文件追加状态,以便实现连续文件追加操作方式; (5)如果没有记录存在,给出提示信息。 3新建学生信息文件 (1)用来重新建立学生信息记录; (2)如果已经有记录存在,可以覆盖原记录或者在原记录后面追加,也可以将原有记录信息保存到一个指定文件,然后重新建立记录; (3)给出相应的提示信息。 4显示记录 (1)如果没有记录可供显示,给出提示信息;(2)可以随时显示内存中的记录;(3)显示表头。5文件存储(1)可以按默认名字或指定名字存储记录文件;(2)存储成功返回0,否则返回-1;(3)更新存储标志。6读取文件(1)可以按默认名字或指定名

11、字将记录文件读入内存;(2)读取成功返回0,否则返回-1;(3)可以将指定或默认文件追加到现有记录的尾部;(4)可以将文件连续追加到现有记录并更新记录的名次。(5)更新存储标志。7删除记录(1)可以按“学号”、“姓名”或“名次”方式删除记录;(2)给出将被删除记录的信息,经确认后再删除;(3)如果已经是空表,删除时应给出提示信息并返回主菜单;(4)如果没有要删除的信息,输出没有找到的信息;(5)应该更新其他记录的名次;(6)删除操作仅限于内存,只有执行存记录时,才能覆盖原记录;(7)更新存储标志。8修改记录(1)可以按“学号”、“姓名”或“名次”方式修改记录内容;(2)给出将被修改记录的信息,

12、经确认后进行修改;(3)如果已经是空表,应给出提示信息并返回主菜单;(4)如果没有找到需要修改的信息,输出提示信息;(5)应该同时更新其他记录的名次;(6)修改操作仅限于内存,只有进行存储操作时,才能覆盖原记录;(7)更新存储标志。9查询记录(1)可以按“学号”、“姓名”或“名次”方式查询记录;(2)能给出查询记录的信息;(3)如果查询的信息不存在,输出提示信息。10对记录进行排序 (1)可以按学号进行升序或降序排序; (2)可以按名称进行升序和降序排序; (3)可以按名次进行升序和降序排序; (4)如果属于选择错误,可以立即退出排序; (5)更新存储标志。 11头文件 (1)使用条件编译定义

13、头文件; (2)函数原型声明; (3)数据结构及包含文件;12测试程序 (1)应列出测试大纲对程序进行测试; (2)应保证测试用例测试到程序的各种边缘情况是基本要求,希望通过对本章设计的理解,重新考虑如何改进设计。题目4 链表信息管理设计的目的是学习建立链表,使用链表存储结构信息,增加链表结点及删除链表结点等基本操作。实际设计时,可以增加数据信息及检索等功能。功能设计要求 设计要求实现如下功能: (1)本课程设计是将重点放在整体设计上,只选成员代号和电话。 (2)如果已经有记录,只能在其后追加。 (3)显示整个记录的内容(含有新追加的新记录)。 (4)使代号可由6位字符和数字的混合编码组成,例

14、如下面的形式: A201 3405d 01001 (5)使电话号码可由18位字符和数字组成,例如下面的形式: (86)-551-36994698345613900110011(6)可以删除全部记录,可以随时增加新纪录。(7)使用菜单实现增加、删除和显示等功能的选择。 (8)使用宏定义动态申请存储空间。(9)测试程序。题目5 实用的小型通讯录 设计一个实用的小型通讯录程序,它是在链表程序的基础上,增加查询功能,并且能够打开指定文件或修改指定文件及将多个文件组成一个文件。功能设计要求 设计要求实现的功能较多,所以将它们分为几个部分叙述。 1建立文件 (1)存储文件可以使

15、用默认文件名或指定文件名; (2)可以不保存输入记录,但需要确认是否保存输入记录; (3)如果已经有文件,只能在其后追加; (4)新增的记录可以不存人原文件中,也可以用原来的文件覆盖内存的内容; (5)可以将两个文件合并到一个文件中。 2文件的存取和显示 (1)可以单独存取文件; (2)可以随时显示内存中记录的全部内容; (3)可以直接存取默认文件或指定文件。 3删除记录 (1)可以按“姓名”或“电话”方式删除记录并更新内存链表内容; (2)能给出被删除记录的信息; (3)如果已经是空表,删除时应给出提示信息并返回主菜单; (4)如果没有要删除的信息,输出没有找到的信息; (5)删除操作仅限于内存,只有执行存记录时,才能覆盖原记录; 4.查询记录(1)可以按“姓名”或“电话”方式查询记录; (2)能给出查询记录的信息;(3)如果查询的信息不存在,输出没有找到的信息。 5.整体功能 (1)应可以随时检索、删除或增加新记录,保存或取消新的记录。 (2)使姓名可由16位字符和数字的混合编码组成; (3)使电话号码可由18位字符和数字组成; (4)将输出

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论