篇一:程序设计报告
要求每个小组做全本套题目
A.字母集合
时限:1s
【题目描述】
有一个字符集合,它只包含a-z这26个小写字母。根据集合的定义,集合的容量是集合含有不同元素的个数。由于该集合中包含了非常多的重复字母,因此让你编程计算下该集合的容量,也就是该集合包含了多少不相同的字母。
【输入】
有多组样例。第一行为样例的个数T。
接下来T行,每一行代表一个样例。这一行为一个字符串,表示一个集合。规定以’{’开头,以’}’结束。每个字符用’,’给开,逗号与逗号后的元素空出一个空格。
【输出】
每个集合的容量。一个样例占一行。
【输入样例】
2
{a, b, c}
{a, b, a, b}
【输出样例】
3
2
B吉利数字
时限:1s
【题目描述】
算卦大湿biboyouyun最近得出一个神奇的结论,如果一个数字,它的各个数位相加能够被10整除,则称它为吉利数。现在叫你计算某个区间内有多少个吉利数字。
【输入】
第一行为样例个数N。接下来N行,每一行代表一个输入样例,每个输入样例有2个数,分别代表某个区间的起点a和终点b。
注意所求区间为[a,b],1<=a<=b<=10^9
【输出】
N行。对于第x个输入样例,在第x行输入该样例所对应的结果。
【输入样例】
2
1 10
1 20
【输出样例】
1
【Hint】1-10之内无幸运数,1-20内只有19 这1个幸运数
C炸弹袭击
时限:1s
【题目描述】
H族的领地是一片富饶之地,有丰富的资源,无数的黄金。尽管异族侵略者被压制几百多年,他们并没有放弃对这片土地的渴望。最近,他们研制了一枚重磅炸弹。试图用它摧毁H族的防御工事。H族的防御工事由多个基地构成,侵略者试图用炸弹摧毁尽量多的防御基地,现在,他们急需你的帮助。如果你能为他们解决难题,会有巨大的奖励。(该炸弹的攻击范围是一个半径为r单位的圆)
【输入】
第一行为样例的个数T。
每个样例中有若干行,第一行为炸弹的攻击半径r,r有可能不是整数(1<=r<=100)
第二行是一个整数n,表示H族防御基地的个数(1<=n<=100)
接下来n行,每行有两个数,代表H族某个防御基地的坐标
【输出】
只有一个数,代表炸弹能最多摧毁的H族防御基地数量。
【输入样例】
1
1
3
1 0
0 1
4 0
【输出样例】
2
D.机器人
时限:1s
【题目描述】
Paul有n个重物堆在一条线上。该重物由1连续编号到n,最左边的物品编号为1,最右边的物品编号为n。已知每个物品的重量,第i个物品的重量为Wi公斤。Paul需要收集所有重物,但是他很懒。因此他打算用他全新的机器人。该机器人有两个不同的手臂 - 左手和右手,可以连续执行以下操作:
用左手拿最左边的重物,花费Wi·l能量单位(Wi是最左边的物品的重量,l是某一参数)。如果与之前的动作是一样的(上一次用左手),机器人须额外花费Ql的能量单位;
用右手拿最右边的重物,花费Wj·r能量单位(Wj是最右边的物品的重量,r是某一参数)。如果与之前的动作是一样的(上一次用右手),机器人须额外花费Qr的能量单位;
Paul想让机器人花费尽可能少的能量来帮他完成任务。他想让你来解决这个问题。你的任务是求解机器人收集所有重物可花费的最低能量值。
【输入】
第一行是一个数T,代表有T组输入样例
每个输入样例样例有两行:第一行是五个变量n,?l,?r,?Ql,?Qr (1?≤?n?≤?105;?1?≤?l,?r?≤?100;?1?≤?Ql,?Qr?≤?104);第二行是n个重物的重量w1,w2….wn (1?≤?wi?≤?100)。
【输出】
每个样例只有1个数,代表机器人最小消耗的能量
【输入样例】
2
3 4 4 19 1
42 3 99
4 7 2 3 9
1 2 3 4
【输出样例】
576
34
篇二:C++程序设计报告
课程名称: C++ 课程设计
设计题目: 编写程序提示用户输入一个班级中的学生人数n,
再依次提示用户输入n个人在课程A中的考试成
绩,然后计算出平均值,显示出来。 要求用到第
九章中的数组类模板 Array定义浮点型数组存储
考试成绩。
姓 名: 石东梅
学 号: 1108020102
专业班级: 网络1101 班
完成日期: 20012 年 6 月 27日
1 设计任务
编写程序提示用户输入一个班级中的学生人数n,再依次提示用户输入n个人在课程A中
点型数组存储考试成绩。 的考试成绩,然后计算出平均值,显示出来。要求用到第九章中的数组类模板Array定义浮
1.1 设计目的
(1)、加强C++课程学习,将课本上的理论知识运用于实践,通过实际的程序操作来提高
自己编写程序的能力,达到理论与实践相结合的目的。
(2)、培养自己动脑思考,动手操作的能力,在实际操作过程中体会C++中面向对象的思
想。
(3)、在实际的操作过程中去衡量自己理论知识掌握的程度,通过设计流程,编写程序,
上机调试去寻找并发现知识的缺陷,并想办法弥补。
(4)、在本程序中主要是要达到能对类的定义及用法,数组的定义及用法,数组类模版,
运算符重载,多文件结构,成员函数的实现等的熟练运用。
1.2设计内容
用数组类模板、析构函数、构造函数 、赋值构造函数、运算符重载、指针等语法来完
成一个班级在某门课程中考试的平均值的程序。
1.3设计指标或者要求
设计指标:用C++完成一个班级在某门课程中的成绩储存并计算平均值的程序,要求用到数组类模板。
输入要求:在程序运行的页面根据提示输入班级学生人数n,再依次输入每个人在课程A
中的成绩。
输出要求:输出n个人在课程A中的平均成绩。
2 设计过程
(1)、分析程序的功能:使用户能根据程序提示输入班级学生人数n和n个人在某门课中
考试成绩,并能储存成绩然后计算平均值,显示出来。
(2)、思考程序要用到的算法原理:使用数组类模板定义浮点型数组存储考试成绩;利用
班级总人数与其在课程A中的总分之比的原理求平均值。
(3)、设计程序流程图(见2.3)。
(4)、编写程序(见2.4)。
2.1 程序功能
使用户能根据程序提示输入班级学生人数n和n个人在某门课中考试成绩,并能储存成
绩然后计算平均值,显示出来。
2.2算法原理
(1)、使用数组类模板定义浮点型数组存储考试成绩;
(2)、利用班级总人数与其在课程A中的总分之比的原理求平均值。
2.3程序流程图
2.4 程序主要模块或者函数
#ifndef ARRAY_H
#define ARRAY_H
#include <iostream.h>
#include <stdlib.h>
#ifndef NULL
const int NULL = 0;
#endif
enum ErrorType
//错误类型集合,共有三种类型
{invalidArraySize, memoryAllocationError, indexOutOfRange}; char *errorMsg[] =
{
"Invalid array size", "Memory allocation error",
"Invalid index: "
};
template <class T>
class Array
{
private:
T* alist; //T类型指针,用于存放动态分配的数组内存首地址 int size;
void Error(ErrorType error,int badIndex=0) const;
public:
Array(int sz = 50);
Array(const Array<T>& A);
~Array(void);
//重载"="使数组对象可以整体赋值
Array<T>& operator= (const Array<T>& rhs);
T& operator[](int i);
operator T* (void) const;
int ListSize(void) const;
void Resize(int sz);
};
//以下为类成员函数的实现
template <class T>
void Array<T>::Error(ErrorType error, int badIndex) const {
cout << errorMsg[error];
if (error == indexOutOfRange)
cout << badIndex; //如果是下标越界错,输出错误的下标
cout << endl;
exit(1);
}
template <class T>
Array<T>::Array(int sz)
{
if (sz <= 0) //sz为数组大小(元素个数),若小于0,则输出错误信息 Error(invalidArraySize);
size = sz;
alist = new T[size]; //动态分配size个T类型的元素空间
if (alist == NULL) //如果分配内存不成功,输出错误信息
Error(memoryAllocationError);
}
template <class T>
Array<T>::~Array(void)
{
delete [] alist;
}
template <class T>
Array<T>::Array(const Array<T>& X)
{
//从对象X取得数组大小,并赋值给当前对象的成员
int n = X.size;
size = n;
alist = new T[n];
if (alist == NULL) //如果分配内存不成功,输出错误信息
Error(memoryAllocationError)
T* srcptr = X.alist;
T* destptr = alist;
while (n--)
*destptr++ = *srcptr++;
}
// 重载"="运算符,将对象rhs赋值给本对象。实现对象之间的整体赋值 template <class T>
Array<T>& Array<T>::operator= (const Array<T>& rhs)
{
int n = rhs.size;
if (size != n)
{
delete [] alist;
alist = new T[n]; // 重新分配n个元素的内存
if (alist == NULL)
Error(memoryAllocationError);
size = n; //记录本对象的数组大小
}
// 从rhs向本对象复制元素
篇三:C语言程序设计报告书
《C语言程序设计》
实验设计报告
学 院:_专业班级:
学生姓名: 学号:
指导老师:
设计题目: ____________________________
年06月16日
2013
目录
1. 设计题目:学生考勤系统设计 ............................................................................. 3
2. 设计方案: ............................................................................................................. 3
3.模块说明: ............................................................................................................... 3
3.1系统功能模块 .................................................................................................................... 3
3.2函数以及调用关系 ............................................................................................................ 4
4.代码分析及程序优化 ............................................................................................... 9
5. 数据文件名及说明 ............................................................................................... 10
6. 系统运行测试结果分析 ........................................................................................ 10
6.1 进入程序 .......................................................................................................................... 10
6.2 加载界面 .......................................................................................................................... 11
4.3 创建学生信息 .................................................................................................................. 11
4.4 录入本课考勤情况 .......................................................................................................... 12
6.4 修改学生信息 .................................................................................................................. 12
6.5 查询学生考勤信息 .......................................................................................................... 13
6.6 查看班级考勤情况 .......................................................................................................... 13
6.7源程序清单和执行结果: .............................................................................................. 14
1.设计题目:学生考勤系统设计
2.设计方案:
该系统能考察学生的出勤情况,所以包括每个班学生的全部信息。
每个学生是一条记录,包括姓名﹑性别﹑学号,对应于某天某门课程
的出勤情况等。该系统可模拟考勤过程,记录考勤结果,并能在课程
结束后按照设定的考勤评分标准自动给出每个学生的考勤分数。
其中,学生可在本系统在线请假以及查看学期内的上课出勤信
息。在线请假中,学生可以随时查看到请假的详细进展情况。同时,
学生可以查看本期内上课出勤的详细信息,如:查看某个课程在整个
学期内的出勤情况——请假、旷课、迟到、早退了多少次,以及具体
的时间、任课老师姓名、第几节可等详细信息。学生还可以查看本人
的基本信息,如:所在院系、年级、专业、班级、学号、姓名、性别
等,以及修改个人用户密码,查看本班的课表。
对于任课老师,其使用本系统时,管理所教班级学生的上课出勤
信息以及查看所教学生的上课出勤信息。老师自动列出还没有在网上
公布的学生上课出勤信息,系统依据学生请假系统,决定学生上课出
勤的最终结果。并且查看自己所教课程、所教班级学生整个上课出勤
统计信息以及详细信息。
3.模块说明:
3.1系统功能模块
根据设计要求,画出如下流程图:
3.2函数以及调用关系
void mune_1();/*菜单函数1*/
void mune_2() /*菜单函数2*/
void enter(void);/*录入函数*/