| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 396 人关注过本帖
标题:求C++程序,大一的看得懂的
只看楼主 加入收藏
yzas520
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-7-13
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
求C++程序,大一的看得懂的
1.初始化输入:N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数     要求:      
1,取前5名:第1名得分 7,第2名得分 5,第3名得分3,第4名得分2,第5名得分
2,用户自定义:各名次权值由用户指定。
3,由程序提醒用户填写比赛结果,输入各项目获奖运动员的信息。
4,所有信息记录完毕后,用户可以查询院系的比赛成绩个人比赛成绩,生成团体总分报表,查看参赛学校信息和比赛项目信息等
搜索更多相关主题的帖子: 项目信息 比赛结果 运动员 记录 
2010-07-13 16:34
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:10 

举手之劳,帮你写了。
这里设定姓名长度不超过20字符。每个项目结束时,将其编号、类型符(区分取前3名还是前5名)输入,并按名次顺序输入运动员姓名、学校和成绩。程序已做改动,增加了一些代码以提高程序的健壮性。本题完整的c程序如下,在win-tc和Dev-c++下调试通过,运行正确。
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <conio.h>
#define n 5 /*设定,可更改*/
#define m 3 /*设定,可更改*/
#define w 2 /*设定,可更改*/

struct achievement /* 定义表示成绩的结构体 */
{int schoolnumber;/* 学校编号 */
char name[20]; /* 姓名 */
int mark; /* 分数 */
int result;};

struct pro /* 表示项目的结构体 */
{int tag;/* 项目编号 */
struct achievement ach[m+w];
int number;
};

struct Node
{struct pro date;
struct Node *next;
};

main()
{
int i,j,t;
int x[n]={0};int y[n]={0}; /* x[n]和y[n]分别表示男子和女子团体总分 */
struct Node *head;
struct Node *p;
struct Node *q;
if((head=(struct Node*)malloc(sizeof(struct Node)))==NULL) exit(1);
head->next=NULL; /* 初始化单链表 */
p=head;
for(i=0;i<m+w;i++) /* 输入成绩 */
{
j=i+1;
printf("请输入第%d个项目的信息\n",j);
p->date.number=j;
printf("所取的名次数为:");
scanf("%d",&p->date.tag);
while(p->date.tag!=3&&p->date.tag!=5)
{ printf("输入有误,请重新输入!");
getchar(); /*加入此函数避免输入错误时程序进入无限循环*/
getchar();
printf("所取的名次数为:");
scanf("%d",&p->date.tag);
}
t=1;
while(t<=p->date.tag)
{
printf("第%d名的名字:",t);
scanf("%s",p->date.ach[t-1].name);
printf("第%d名的学校:",t);
scanf("%d",&p->date.ach[t-1].schoolnumber);
printf("第%d名的分数:",t);
scanf("%d",&p->date.ach[t-1].mark);
p->date.ach[t-1].result=t;
t++;
}
if(j!=m+w)/* 注意这里 */
{q=(struct Node*)malloc(sizeof(struct Node)); /* 生成新结点 */
p->next=q;
p=q;
p->next=NULL;
}
}
for(i=0;i<n;i++) /* 产生成绩单 */
{
j=i+1;
printf("\n学校%d成绩单:\n",j);
p=head;
while(p!=NULL)
{
t=1;
while(t<=p->date.tag)
{
if(p->date.ach[t-1].schoolnumber==j)
{
printf("获奖项目:%d ",p->date.number);
printf("名次:%d ",p->date.ach[t-1].result);
printf("获奖人姓名:%s ",p->date.ach[t-1].name);
printf("所得分数:%d \n",p->date.ach[t-1].mark);
if(p->date.number<=m)
x[i]=x[i]+p->date.ach[t-1].mark;
else
y[i]=y[i]+p->date.ach[t-1].mark;
}
t++;
}
p=p->next;
}
printf("\n男子团体总分:%d ",x[i]);
printf("女子团体总分:%d \n",y[i]);
printf("团体总分:%d\n",x[i]+y[i]);
}
for(i=0;i<m+w;i++) /*释放申请的内存空间*/
{p=head->next;
free(head);
head=p;
}
getch();
}

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-07-17 11:13
Alar30
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:10
帖 子:988
专家分:1627
注 册:2009-9-8
收藏
得分:10 
2#的是好人
呵呵
2010-07-17 11:14
快速回复:求C++程序,大一的看得懂的
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.043123 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved