《程序设计基础课程设计》题目

2018-12-10 23:52

题目1 使用菜单选择程序

菜单是应用程序的界面,控制语句用来改变程序执行的顺序,是实现结构化程序设计的

基础。设计一个比较实用的菜单,通过菜单选择不同的功能。 设计分为两步:首先设计一个含有多个菜单项的菜单演示程序,然后再为这些菜单项配上相应的功能。

一、设计一个菜单程序 (1)菜单内客

程序运行后,给出6个菜单项的内容和输入提示。 1.FindNum 2.FindRoot 3.Detective 4.Bear 5.Diamond 6.Goodbye! Input 1-6: (2)设计要求

使用数字1-6来选择菜单项,其他输人则不起作用。 二、增加菜单项的处理功能

以设计的菜单为基础,增加菜单项的处理功能。

菜单项设计要求

这其实是5道编程题,目的是锻炼使用控制语句的能力。 (1)FindNum

一只老鼠咬坏了账本,公式中符号口代表是被老鼠咬掉的地方。要想恢复下面的等式,应在口中填上哪个相同的数字? 3口×6237=口3×3564

利用计算机的计算速度快的特点,把所有可能的数都试一下,从中找出符合条件的数。这就是所谓的穷举法。

某位的数字只有0-9个数字,显然已经排除了为0的可能性,将1--9种可能性拿来试验,即可找到合适的数字。由此可见,就是寻找满足下式面的i值: (30+i)×6237=(10×i+3)×3564 (2)FindRoot

这里要求编制一个求方程ax2+bx+c=0的根的程序。一般将系数设计成float型,可以把变量设为double型,使用库函数sqrt求平方根,sqrt在头文件math.h中定义。假设 d=b×b-4×a×c

可以根据d大于、等于或小于零来决定求解方法。 if(d>0)

{//有两个不相等的实数解} else if ( d = = 0 )

{//有两个相等的实数解} else

{//有两个不相等的虚数解} (3)Detective

这是一道侦探题。一辆汽车憧人后逃跑。4个目击者提供如下线索:

1

甲:牌照三、四位相同; 乙:牌号为31xxxx;

丙:牌照五、六位相同; 丁:三一六位是一个整数的平方。

为了从这些线索中求出牌照号码,只要求出后四位再加上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 * c < k ; c ++) if ( c * c = = k)

cout<<”牌照号码是:”<<310000 + k; }

(4)Bear

本题是一个笑话,话说有一只狗熊到玉米地里掰玉米,一边掰一边吃。第一天吃了一半,又拿走一个回去喂小狗熊。第二天又去吃了剩下的一半,走时仍然带一个回去喂小狗熊。以后每天都吃前一天剩下的一半,拿走一个。到第十天时,地里只剩下一个玉米。求地里一共有多少玉米。

这里可以使用回溯算法。假设狗熊每次吃掉的为x2,则第10天时的x2=1,第9天地里剩下的玉米xl = (x2 + l) ×2,这也是狗熊在第8天时吃掉的玉米数量。因此可以使用如下算法描述:

int day =10,x2=1,x1; while(day>0)

{ x1=(x2+1)×2; x2=xl; day--; }

(5)Diamond

本题要求编制打印以下图案的程序,注意题目还要求在左边留出一定空格。 * *** ***** ******* ***** *** *

通过观察图像的组成特点,可以把它们解剖成两部分:上面4行和下面3行。上面行按递增计数,下面则按递减计数。假设第一个“*”距左边15个空格,使用字符“1”模拟的显示图形如如下:

111111111111111*

2

11111111111111*** 1111111111111***** 111111111111******* 1111111111111***** 11111111111111*** 111111111111111* (6)Goodbye!

这里除了输出一个简单的信息之外,还必须结束程序运行。

题目2 用结构数组设计职工文件

本章课程设计的目的是学习使用结构数组建立职工档案信息文件。为了节省篇幅,设计 不要求使用多文件编程,但要求使用头文件和菜单,并组成一个工程文件。 功能设计要求:

(1)建立wkrs职工数据结构,结构含有姓名、序号、性别和年龄信息。

(2)设计一个readin函数,以便采用问答式输入10个职工的信息。并建立一个文件用来存储这10个职工的信息,约定文件名为workers。

(3)编写一个display函数,要求使用结构指针作为参数,用来输出职工文件的内容。 (4)建立wks职工简明数据结构,结构只含有姓名和年龄信息。

(5)编制一个srt函数,根据wks结构建立的职工情况,把职工姓名和工资信息抽出来,另外建一个只含职工姓名和年龄的文件,约定文件名为wk_saw。

(6)编制一个delwk函数,可以从简明数据文件wk_saw中删去指定的职工记录,如果文件里没有要删去的职工,则输出没有这个职工的信息。如果将内容全部刚除,则给出一个已经删空的提示信息并退出该操作。

(7)将上述函数编制在一个文件里,共用一个头文件。 (8)用一个简单的菜单提供上述操作。菜单信息为: 1.输入数据 2.显示原始数据 3.制作简明数据 4.删除简明数据 5.退出运行

左边数字对应功能选择请选1-5:

题目3 学生成绩管理程序

设计一个实用的小型学生成绩管理程序,它要求不用链表,而用数组来设计这个程序。它有查询和检索等功能,并且能够对指定文件操作,也可将多个文件组成一个文件。

功能设计要求

设计要求实现的功能较多,所以将它们分为几个部分叙述。

1.建立文件

(1)可以使用默认文件名或指定文件名将记录存储到文件; (2)文件保存成功返回0,失败返回-1;

(3)设置保存标志savedTag作为是否已对记录进行存储操作的信息; (4)写同名文件将覆盖原来文件的内容; 2.增加学生记录

(1)可在已有记录后面追加新的记录;

3

(2)可以随时用它增加新的记录,它们仅保存在结构数组中; (3)可以将一个文件读入,追加在已有记录之后; (4)如果已经采取用文件追加的方式,在没有保存到文件之前,将继续保持文件追加状态,以便实现连续文件追加操作方式;

(5)如果没有记录存在,给出提示信息。 3.新建学生信息文件

(1)用来重新建立学生信息记录;

(2)如果已经有记录存在,可以覆盖原记录或者在原记录后面追加,也可以将原有记录信息保存到一个指定文件,然后重新建立记录; (3)给出相应的提示信息。 4.显示记录

(1)如果没有记录可供显示,给出提示信息; (2)可以随时显示内存中的记录; (3)显示表头。 5.文件存储

(1)可以按默认名字或指定名字存储记录文件; (2)存储成功返回0,否则返回-1; (3)更新存储标志。 6.读取文件

(1)可以按默认名字或指定名字将记录文件读入内存; (2)读取成功返回0,否则返回-1;

(3)可以将指定或默认文件追加到现有记录的尾部; (4)可以将文件连续追加到现有记录并更新记录的名次。 (5)更新存储标志。 7.删除记录

(1)可以按“学号”、“姓名”或“名次”方式删除记录; (2)给出将被删除记录的信息,经确认后再删除;

(3)如果已经是空表,删除时应给出提示信息并返回主菜单; (4)如果没有要删除的信息,输出没有找到的信息; (5)应该更新其他记录的名次;

(6)删除操作仅限于内存,只有执行存记录时,才能覆盖原记录; (7)更新存储标志。 8.修改记录

(1)可以按“学号”、“姓名”或“名次”方式修改记录内容; (2)给出将被修改记录的信息,经确认后进行修改; (3)如果已经是空表,应给出提示信息并返回主菜单; (4)如果没有找到需要修改的信息,输出提示信息; (5)应该同时更新其他记录的名次;

(6)修改操作仅限于内存,只有进行存储操作时,才能覆盖原记录; (7)更新存储标志。 9.查询记录

(1)可以按“学号”、“姓名”或“名次”方式查询记录; (2)能给出查询记录的信息;

(3)如果查询的信息不存在,输出提示信息。

4

10.对记录进行排序

(1)可以按学号进行升序或降序排序; (2)可以按名称进行升序和降序排序; (3)可以按名次进行升序和降序排序;

(4)如果属于选择错误,可以立即退出排序; (5)更新存储标志。 11.头文件

(1)使用条件编译定义头文件; (2)函数原型声明;

(3)数据结构及包含文件; 12.测试程序

(1)应列出测试大纲对程序进行测试;

(2)应保证测试用例测试到程序的各种边缘情况是基本要求,希望通过对本章设计的理解,重新考虑如何改进设计。

题目4 链表信息管理

设计的目的是学习建立链表,使用链表存储结构信息,增加链表结点及删除链表结点等基本操作。实际设计时,可以增加数据信息及检索等功能。 功能设计要求

设计要求实现如下功能:

(1)本课程设计是将重点放在整体设计上,只选成员代号和电话。 (2)如果已经有记录,只能在其后追加。

(3)显示整个记录的内容(含有新追加的新记录)。

(4)使代号可由6位字符和数字的混合编码组成,例如下面的形式: A201 3405d 01001

(5)使电话号码可由18位字符和数字组成,例如下面的形式: (86)-551-36994698 0451-8822757-3456

13900110011

(6)可以删除全部记录,可以随时增加新纪录。 (7)使用菜单实现增加、删除和显示等功能的选择。 (8)使用宏定义动态申请存储空间。 (9)测试程序。

题目5 实用的小型通讯录

设计一个实用的小型通讯录程序,它是在链表程序的基础上,增加查询功能,并且能够

打开指定文件或修改指定文件及将多个文件组成一个文件。

功能设计要求

设计要求实现的功能较多,所以将它们分为几个部分叙述。 1.建立文件

(1)存储文件可以使用默认文件名或指定文件名;

(2)可以不保存输入记录,但需要确认是否保存输入记录;

5

(3)如果已经有文件,只能在其后追加;

(4)新增的记录可以不存人原文件中,也可以用原来的文件覆盖内存的内容; (5)可以将两个文件合并到一个文件中。 2.文件的存取和显示 (1)可以单独存取文件;

(2)可以随时显示内存中记录的全部内容; (3)可以直接存取默认文件或指定文件。 3.删除记录

(1)可以按“姓名”或“电话”方式删除记录并更新内存链表内容; (2)能给出被删除记录的信息;

(3)如果已经是空表,删除时应给出提示信息并返回主菜单; (4)如果没有要删除的信息,输出没有找到的信息;

(5)删除操作仅限于内存,只有执行存记录时,才能覆盖原记录; 4.查询记录

(1)可以按“姓名”或“电话”方式查询记录; (2)能给出查询记录的信息;

(3)如果查询的信息不存在,输出没有找到的信息。 5.整体功能

(1)应可以随时检索、删除或增加新记录,保存或取消新的记录。 (2)使姓名可由16位字符和数字的混合编码组成; (3)使电话号码可由18位字符和数字组成; (4)将输出信息加上输出信息栏,例如: 姓名 电话

李玉梅 (86)一10-62593321 Les gancock 13912395678 Zhang San 0551-36999698 (5)对存储的文件进行整理归类;

(6)定义ASK宏,用于申请动态内存; (7)使用菜单实现功能的正确选择。 6.测试程序

(1)应列出测试大纲对程序进行测试;

(2)应保证测试用例测试到程序的各种边缘情况。 以上是基本要求,它并不是仅仅扩充链表文件课程设计的内容,而是希望通过对该题目的理解,重新考虑如何改进。

6


《程序设计基础课程设计》题目.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:济河小学创建文明城市校长讲话稿

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: