c语言校级运动会实验报告,运动会分数统计(实验报告+源程序)C++.doc

运动会分数统计(实验报告源程序)C

实验报告1

实验名称:数据结构与软件设计实习

题 目:运动会分数统计

专业:生物信息学 班级:01 姓名: 学号:实验日期:2010.07.22

实验目的:

掌握基本的输入输出方法,理解程序的分支结构,实现条件判断和循环程序的

设计;

掌握结构体的应用;

二、 实验要求:

生各学院的成绩单,包括各学院所取得的项目号、名次(成绩)、学生姓名(或学号)和得分;产生团体总分报表,包括学院号、男子团体总分、女子团体总分和团体总分。

实验内容:

参加运动会的的学院编号为1~n,比赛分成m个男子项目和w个女子项目,编号分别为1~m和m+1~m+w,所有项目都取前五名,得分顺序为7,5,3,2,1。写一个统计程序产生各种成绩单和得分报表。

通过编程解决一些实际问题,并对程序进行测试,可设n=4,m=3,w=2进行测试,一般考虑n≤20,m≤30,w≤20,姓名长度不超过20个字符,按名次顺序输入运动员姓名、学院名和成绩。

四、实验编程结果或过程:

1. 数据定义

(1)描述运动员的线性表

typedef struct

{

int item[MAXSIZE]; //参赛项目号

char thletename[MAXSIZE][20];//姓名

char sex[MAXSIZE];//性别

int schoolnum[MAXSIZE];//所在学校编号

int num[MAXSIZE];//名次

int point[MAXSIZE];//得分

int last;

};

(2)描述学院的线性表

typedef struct

{ int schoolnum[MAXSIZE];//学校编号

int Tgirl[MAXSIZE];//女生团体总分

int Tboy[MAXSIZE];//男生团体总分

int Tall[MAXSIZE];//学校总成绩

int last;

};

2. 函数如下,代码详见文件“运动会.cpp”

初始化函数

控制输入的函数

算分的函数

控制输出成绩的函数

3. 运行测试结果,运行结果无误,如下图

错误调试,能够正确处理错误,如下图

调试分析

用线性链表时应注意细节,指针的使用过程中很容易出错,从而达不到采用其起到的效果。

线性表School的各属性在用之前需要初始化。

进行健壮性判断时遇到很多问题:

判断性别是否正确时S1->sex[i]!='g'和S1->sex[i]!='b'必须是并且关系

当检测到错误,需要重新输入时,要在输入函数里再调输入函数,用递归调用的方法实现重新输入。

输入函数里传参时必须用指针(引用)类型,因为需要带回数据

五、实验总结:

(1)实验中的存在问题和提高

存在问题:程序有待简化。

提高:错误处理比较全面,而且能及时应对处理。

(2)收获与体会

基本的输入输出方法,理解程序的分支结构,实现条件判断和循环程序的设计;结构体的应用;

附录 源程序

#include

#include

#include

using namespace std;

#define MAXSIZE 100

#define ERROR 0

#define RIGHT 1

#include

#include

int str_int(char *str)//字符串转换为数字

{

int num, i;

num = *str - '0';

i = 1;

while (str[i] && isdigit(str[i]))

num = num * 10 + str[i++] - '0';

return num;

}

typedef struct

{

int item

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值