一)算法设计类。
一、实验目的、内容。
有n人围坐成一圈(假设他们的编号沿顺时针方向依次为1到n)。编程序,使用数组来存放各数据(人员编号),而后从1号人员开始数起(沿顺时针方向),当数到k时(其中k>1由用户通过cin输入指定),则该号人员被“淘汰出局”;接着仍沿顺时针方向从被淘汰出局者的下一人员又重新从1开始数起,数到k后,淘汰第2个人;如此继续,直到最后剩下一个人时停止。请输出先后被“洮汰”的人的编号。
二、实验程序设计及结构。
定义一个数组k,它共有m+1个元素,个元素的下标代表m个同学的编号,个元素的值代表同学是否被取消游戏资格,以1表示未被取消,以0表示已被取消,这样做,在对同学报数做统计时,可以直接累加k数组元素的值。当k组元素的知全为0时,游戏结束。
三、设计过程。
源程序如下:
#include
using namespace std;
#define m 10
#define n 5
void main()
int k[m+1],i=0,j=0,num=0;
for(i=1;i<=m;i++)
k[i]=1;
i=0;do
i=i%m+1;
j+=k[i];
if(j==n)
k[i]=0;
num++;
j=0;cout<<"n"<}
while(num,m-1);
cout<}
4、设计的特点和结果。
操作系统visual stdio 2005运行结果如下:
2)文件类题目。
1、实验目的、内容。
下面看圆括号和大括号是否匹配,即只允许成对出现,并按正常的方式排列。例如,是正确的例子:
注意,两个大括号现的。不正确的例子有:
2、实验程序及结构。
利用堆栈方法,左括号进-1,右括号进1,相邻匹配的两个括号进入栈则栈为空,若没有匹配的则不匹配。 依次循环下去,若最后栈的值为-1,则缺少右括号;若为1,则缺少左括号;若为0,则匹配。
3、设计过程。
源程序如下:
#include
#include
#include
using namespace std;
short judge(char c) '
return 1;//封闭符号,即右括号
default:
return 0;//其他符号
bool match(char a,char b) '
return (atrue : false;
default:
return false;
int main()
if( =false)
cerr <<缺少右括号!" endl;
else cout <<匹配成功!" endl;
return 0;
4、运行结果。
3)综合类题目。
1、实验目的、内容。
有理数是一个可以化为一个分数的数,例如2/3,533/920,-12/49都是有理数,而就为无理数。在c++中,并没有预先定义有理数,需要时可以定义一个有理数类,将有理数的分子和分母分别存放在两个整型变量中。对有理数的各种操作都可以用重载运算符来实现。
基本要求。定义并实现一个有理数类,通过重载运算符+、-对有理数进行算术运算,通过重载运算符==实现判定两个有理数是否相等。写一个优化函数,它的作用是使有理数约去公分母,也即是使保存的有理数分子和分母之间没有公约数(除去1以外)。
此外,还要定义一个将有理数转换为实数的函数,再加上构造函数和有理数输出函数。
测试数据。在应用程序中,创建若干有理数对象,通过带参数的构造函数使得各有理数对象值各不相同,然后分别进行各类运算,输出运算结果,检验其正确性。
实现提示。设有两个有理数a/b和c/d,则有:
1) 有理数相加分子=a*d+b*c;分母=b*d
2) 有理数相减分子=a*d-b*c;分母=b*d
3) 有理数相乘分子=a*c; 分母=b*d
4) 有理数相除分子=a*d; 分母=b*c
优化函数在创建有理数对象时应执行,在执行其它各种运算之后也需执行它,这样可保证所存储的有理数随时都是最优的。对于判断两个有理数是否相等,由于在对有理数进行各种运算后都对其进行优化,所以判定两个有理数是否相等只需判定它们两个的分子和分母分别相等即可。
2、试验程序及结构。
定义有理数类。
class youlishu
private: /分子和分母说明为私有成员。
int fenmu;
int fenzi;
public:
int get_fenzi()/取得分子。
int get_fenmu()/取得分母。
int set_fenmu(int ttmmpp) /设置分母。
int set_fenzi(int ttmmpp) /设置分子。
friend youlishu operator +(youlishu,youlishu);/利用友元重载。
friend youlishu operator -(youlishu,youlishu);
friend youlishu operator *(youlishu,youlishu);
friend youlishu operator /(youlishu,youlishu);
friend int operator ==youlishu,youlishu);
youlishu yhyoulishu(youlishu); 优化约分。
void print(youlishu); 显示有理数。
float floatyoulishu(youlishu); 有理数转化为实数。
youlishu(){声明构造函数。
有理数优化算法。
youlishu yhyoulishu(youlishu b1)
int a,b,c,min;
b=if(belse min=c;
for(a=1;a<=min;a++)
if((b%a==0)&&c%a==0))
b=b/a;
c=c/a;
if(belse min=c;
a=1;return b1;
运算符重载。
youlishu operator +(youlishu temp1,youlishu temp2) /重载+
youlishu temp;//定义公共对象。
* *相加算法。
return temp; /返回公共对象。
youlishu operator -(youlishu temp1,youlishu temp2) /重载-
youlishu temp;
* *相减算法。
c语言课程设计报告 课程设计报告
周口师范学院。课程设计报告。院 系 计算机科学与技术学院 班级。学生姓名学号。设计题目 职工工资管理系统。完成日期 年月日 课程设计任务书。设计题目 工资管理系统 教研室主任指导教师 年月日。摘要11设计内容 任务及具体要求2 1.1设计内容2 1.2设计任务及具体要求2 2概要设计3 2.1该系统...
C课程设计报告
题目各类图形面积与周长计算和高考倒计时。学生姓名张磊 学号 20131344054 学院计算机与软件学院 专业软件工程 指导教师马瑞。二 一五年六月 25 日。目录。1 引言 1 1.1 系统开发背景和意义 1 1.2 服务器运行环境 2 1.3 课题内容 2 2 系统需求分析及相关技术介绍 2 2...
C 课程设计报告
c 程序课程设计报告。学院 资源与安全工程学院 专业班级 城市地下空间工程1303 姓名卢途。指导教师 彭述权。课程设计时间 2013 2014学年第二学期18 19周。一 题目一 设计一 学生成绩管理系统 它的主要功能是对学生的成绩进行输入 修改和管理。系统功能要求 界面要求 学生成绩管理系统 1...