C语言课程设计----运动会分数统计系统源代码

C语言课程设计----运动会分数统计系统源代码
C语言课程设计----运动会分数统计系统源代码

源代码:

#include

#include

#include

#include

#define n 2//学校数目

#define m 1//男子项目数目

#define w 1//女子项目数目

#define null 0

typedef struct

{

int itemnum; //项目编号

int top; //取名次的数目

int range[5]; //名次

int mark[5]; //分数

}itemnode; //定义项目结点的类型

typedef struct

{

int schoolnum; //学校编号

int score; //学校总分

int mscore; //男团体总分

int wscore; //女团体总分

itemnode c[m+w]; //项目数组

}headnode;//定义头结点类型

headnode h[n];//定义一个头结点数组

void inputinformation() //输入信息,建立系统

{

int i,j,k,s;

for(i=0;i

{

h[i].score=0;

h[i].mscore=0;

h[i].wscore=0;

} //初始化头结点for(i=0;i

{

printf("*****学校编号:");

scanf("%d",&h[i].schoolnum); //输入头结点信息

for(j=0;j

{

printf("*****项目编号:");

scanf("%d",&h[i].c[j].itemnum);

printf("*****取前3名or前5名:");

scanf("%d",&h[i].c[j].top);

printf("*****获得几个名次:");

scanf("%d",&k); //输入项目信息

for(s=0;s<5;s++)

h[i].c[j].range[s]=0, h[i].c[j].mark[s]=0; //初始化排名和分数

for(s=0;s

{

printf("*****名次:");

scanf("%d",&h[i].c[j].range[s]); //输入所获名次信息

if(h[i].c[j].top==3)

switch(h[i].c[j].range[s])

{

case 0: h[i].c[j].mark[s]=0; break;

case 1: h[i].c[j].mark[s]=5; break;

case 2: h[i].c[j].mark[s]=3; break;

case 3: h[i].c[j].mark[s]=2; break;

}

else

switch(h[i].c[j].range[s])

{

case 0: h[i].c[j].mark[s]=0; break;

case 1: h[i].c[j].mark[s]=7; break;

case 2: h[i].c[j].mark[s]=5; break;

case 3: h[i].c[j].mark[s]=3; break;

case 4: h[i].c[j].mark[s]=2; break;

case 5: h[i].c[j].mark[s]=1; break;

}

h[i].score=h[i].score+h[i].c[j].mark[s];

//按取前三名还是取前五名分别记分

if(j<=m-1)

h[i].mscore=h[i].mscore+h[i].c[j].mark[s];

//是男子项目则记到男子分数里面去

else

h[i].wscore=h[i].wscore+h[i].c[j].mark[s];

//是女子项目则记到女子项目里面去

}

printf("\n");

}

}

}

void output() //输出函数

{

int choice,i,j,k;

int remember[n];

int sign;

do

{

printf("*******************1.按学校编号输出.*******************\n");

printf("*******************2.按学校总分输出.*******************\n");

printf("*******************3.按男团总分输出.*******************\n");

printf("*******************4.按女团总分输出.*******************\n");

printf("\n\n******************* 请选择编号*************************\n\n:");

scanf("%d",&choice);

switch(choice)

{

case 1:

for(i=0;i

{

printf("\n\n*****学校编号:%d\n",h[i].schoolnum);

printf("*****学校总分:%d\n" ,h[i].score);

printf("*****男团总分:%d\n",h[i].mscore);

printf("*****女团总分: %d\n\n\n",h[i].wscore);

} //按编号顺序输出

break;

case 2:

for(i=0;i

remember[i]=i;

for(i=0;i

{

for(j=i+1;j

if(h[remember[i]].score

k=remember[i];

remember[i]=remember[j],remember[j]=k;

} // 用冒泡排序方法,用辅助数组记住头结点下标

for(i=0;i

{

printf("\n\n*****学校编号:%d\n",h[remember[i]].schoolnum);

printf("*****学校总分:%d\n" ,h[remember[i]].score);

printf("*****男团总分:%d\n",h[remember[i]].mscore);

printf("*****女团总分: %d\n\n\n",h[remember[i]].wscore);

//按所记下标顺序输出

} //按学校总分输出

break;

case 3:

for(i=0;i

remember[i]=i;

for(i=0;i

{

for(j=i+1;j

if(h[remember[i]].mscore

k=remember[i];remember[i]=remember[j];remember[j]=k;

}

for(i=0;i

{

printf("\n\n*****学校编号:%d\n",h[remember[i]].schoolnum);

printf("*****学校总分:%d\n" ,h[remember[i]].score);

printf("*****男团总分:%d\n",h[remember[i]].mscore);

printf("*****女团总分: %d\n\n\n",h[remember[i]].wscore);

} //按男团总分输出

break;

case 4:

for(i=0;i

remember[i]=i;

for(i=0;i

{

for(j=i+1;j

if(h[remember[i]].wscore

k=remember[i];

remember[i]=remember[j];remember[j]=k;

}

for(i=0;i

{

printf("\n\n*****学校编号:%d\n",h[remember[i]].schoolnum);

printf("*****学校总分:%d\n" ,h[remember[i]].score);

printf("*****男团总分:%d\n",h[remember[i]].mscore);

printf("*****女团总分: %d\n\n\n",h[remember[i]].wscore);

}

break; //按女团总分输出}

printf("请选择 2 继续,0 跳出\n");

scanf("%d",&sign);

}while(sign==2); //循环执行输出语句

}

void inquiry() //查询函数{

int choice;

int i,j,k,s;

printf("\n*****1:按学校编号查询\n");

printf("\n*****2:按项目编号查询\n");

printf("\n\n*****请选择查询方式:"); //提供两种查询方式scanf("%d",&choice);

switch(choice)

{

case 1:

do

{

printf("要查询的学校编号:");

scanf("%d",&i);

if(i>n)

printf("错误:这个学校没有参加此次运动会!\n\n\n");

else

{

printf("要查询的项目编号:");

scanf("%d",&j);

if(j>m+w||j==0)

printf("此次运动会没有这个项目\n\n\n");

//学校编号超出范围,则输出警告

else

{

printf("这个项目取前%d名,该学校的成绩如下:\n", h[0].c[j-1].top);

for(k=0;k<5;k++)

if(h[i-1].c[j-1].range[k]!=0)

printf("名次:%d\n",h[i-1].c[j-1].range[k]);

//输出要查询学校项目的成绩

}

}

printf("请选择2 继续, 0 跳出\n");

scanf("%d",&s);

printf("\n\n\n");

}while(s==2); //循环执行输出语句

break;

case 2:

do

{

printf("要查询的项目编号:");

scanf("%d",&s);

if(s>m+w||s==0)

printf("此次运动会不包括这个项目.\n\n\n");

//项目编号超出范围则输出警告

else

{

printf("该项目取前%d名,取得名次的学校\n",h[0].c[s-1].top);

for(i=0; i

for(j=0;j<5;j++)

if(h[i].c[s-1].range[j]!=0)

printf("学校编号:%d,名次:%d\n",h[i].schoolnum,

h[i].c[s-1].range[j]);

} //输出该项目取得名次学校的成绩

printf("\n\n\n继续2,跳出0\n");

scanf("%d",&i);

printf("\n\n\n");

}while(i==2);

break;

}

}

void writedata() //把数据存储在文件中{

FILE *report;

int i;

if((report=fopen("sportsdata.txt","w"))==null)

{

printf("不能打开文件\n");

exit(1);

}

for(i=0;i

fwrite(&h[i],sizeof(headnode),1,report);

fclose(report);

} //按头结点块写入

void readdata() //读出文件中数据的函数{

FILE *report;

int i,j,k,s;

if((report=fopen("sportsdata.txt","r"))==null)

{

printf("file can not be opened\n");

exit(1);

}

for(i=0;i

{

printf("******学校编号:");

fread(&k,sizeof(int),1,report);

printf("%d\n",k);

printf("******学校总分:");

fread(&k,sizeof(int),1,report);

printf("%d\n",k);

printf("******男团总分:");

fread(&k,sizeof(int),1,report);

printf("%d\n",k);

printf("******女团总分:");

fread(&k,sizeof(int),1,report);

printf("%d\n",k);

printf("\n\n\n");

getch();

for(j=0;j

{

printf("******项目编号:");

fread(&k,sizeof(int),1,report);

printf("%d\n",k);

printf("******所取名次数量:");

fread(&k,sizeof(int),1,report);

printf("%d\n",k);

for(s=0;s<5;s++)

{

fread(&k,sizeof(int),1,report);

if(k!=0)

printf("******名次:"),

printf("%d\n",k);

}

for(s=0;s<5;s++)

{

fread(&k,sizeof(int),1,report);

if(k!=0) printf("******分数:"),

printf("%d\n",k);

}

}

printf("\n\n\n");

getch();

}

fclose(report); //关闭文件

} //按照读一个数据就输出一个数据的方式显示数据内容

void main()

{

int choice;

printf("======================欢迎使用======================\n"); printf("\n\n*****************运动会分数统计系统********************\n");

printf("\n\n********************1.输入信息*************************\n");

printf("********************2.输出信息*************************\n");

printf("********************3.查询信息*************************\n");

printf("********************4.调用信息*************************\n");

printf("********************5.退出系统*************************\n\n\n");

printf("================================================\n\n");

printf("********请选择要实现步骤的编号:\n\n");

scanf("%d",&choice);

switch(choice)

{

case 1:

inputinformation();writedata();readdata();main();

case 2:

output();main();

case 3:

inquiry();main();

case 4:

readdata();main();

case 5:

exit(0);

default:

exit(0);

}

}

运动会分数统计系统课程设计报告

运动会分数统计系统 课程设计报告 数据结构 院系: 专业: 班级: 学号: 姓名:

教师:时间:

一、问题描述 1、功能 任务:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20),按要求实现相应的数据输入、查询、计分等功能。 2、数据 建议输入学校的名称,运动项目的名称等,其余信息学生自行设计; 输出形式:有合理的提示,各学校分数为整形; 数据的存储结构自行设计。 建议运动会的相关数据要存储在数据文件中。 3、操作 1)可以输入各个项目的前三名或前五名的成绩; 2)能统计各学校总分, 3)可以按学校编号或名称、学校总分、男女团体总分排序输出; 4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的 学校。 4、要求 提供系统菜单,界面友好,提示信息完整。 二、系统分析及设计 1、需求分析 根据运动会分数统计系统的问题分析及设计要求,可以将此系统分为四个模块:信息统计模块、信息输出模块、信息查询模块、信息调用模块。其系统功能结构图如图所示。(1)、信息统计模块实现信息的输入、统计、存档。 (2)、信息输出模块实现信息的输出。 (3)、信息查询模块实现信息的查询。 (4)、信息调用模块实现信息的调用,即从文件中读出信息并输出。

2、概要设计 此系统采用顺序存储结构存储,定义了一个结构体数组存放参赛学校的信息。之所以采用顺序存储结构,是因为用它来实现信息的存储、查询比较方便,节省时间,效率高,而且也方便把信息写入文件以及读取文件。 (1)、结构体定义如下: ①、定义运动项目数据类型,用于存放运动项目的信息,包括项目名称、项目编号、用户自己定义的取前3名还是前5名的积分、名次、分数。 typedef struct { char proname[10]; //项目名称 int pronum; //项目编号 int top; //取前3名或前5名积分,由用户自己定义 int range[5]; //名次 int mark[5]; //分数 }Pronode; //项目结点类型定义 ②、定义学校数据类型,用于存放参赛学校的信息,包括学校名称、学校编号、学校总分、男子团体总分、女子团体总分以及项目数组。 typedef struct { char schname[20]; //学校名称 int schnum; //学校编号 int score; //总分 int Mscore; //男子团体总分 int Wscore; //女子团体总分 Pronode a[M+W]; //项目数组 }Schnode; //学校结点类型定义 ③、定义一个学校结点类型的结构体数组Schnode s[N]。采用数组结构有利于随机存储和查询。

运动会分数统计系统实验报告

运动会分数统计系统的实现 09计科(2)班 E10914044 杨素传 一、设计要求 1、问题描述 参加运动会有n个学校,学校编码为1,2,…,n,比赛分成m个男子项目和w个女子项目。项目编号为男子1,2,…,m,女子m+1,m+2,…,m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为7,5,3,2,1;前三名的积分分别5,3,2;哪些取前五名或前三名由学生自己设定(m<=20,n<=20)。 2、需求分析 (1)可以输入各个项目的前三名或前五名成绩; (2)能统计各学校成绩; (3)可以按学校编号、学校总分、男女团体总分排序输出; (4)可以按学校编号查询学校某项目情况,可以按项目编号查询取得前三名或前五名的学校。 二、概要设计 1、主界面设计 为了实现运动会分数统计系统,设计一个含有多个菜单项的主控菜单子程序以连接系统的各项子程序,方便用户使用本程序。本系统主控菜单运行界面图1所示。 图1 运动会分数统计系统程序主菜单 2、存储结构设计 本程序采用链式存储类型(LNode)存储运动会分数统计系统的节点信息。运动会分数统计系统的链表中的结点包括8个域:项目编号域(objnum)、项目类型(objtype)、运动员编号(athnum)、运动员姓名(athname[20])、学校编号(schnum)、校名(schname[30])、

运动员分数(athscore)和指向下一个节点的指针欲(

struct LNode *next)。 3、系统功能设计 本系统设置了8个子功能菜单。8个子功能的设计描述如下: (1)录入各项目的成绩。由函数creatLink()实现。当用户选择该功能时,系统会以用户输入的数据运动会分数统计链表。 (2)统计各学校分数。由函数schoolScore()实现。当用户选择该功能时,系统会统计各学校分数。 (3)按学校编号顺序输出。由函数printfSchoolNumber()实现。当用户选择该功能时,系统会按学校编号顺序输出数据。 (4)按学校总分顺序输出。由函数printfSchoolScore()实现。当用户选择该功能时,系统会按学校总分顺序输出数据。 (5)按男女团体总分顺序输出。由函数printfManWomanScore()实现。当用户选择该功能时,系统会按男女团体总分顺序输出数据。 (6)按学校编号查询学校某项目情况。由函数printfSchoolObject()实现。当用户选择该功能时,系统会按学校编号输出学校某项目情况。 (7)按项目编号查询取得前三名或前五名的学校。由函数printfObjectSchool()实现。当用户选择该功能时,系统会按项目编号查询取得前三名或前五名的学校情况。 (8)退出。由exit(0)函数实现。 三、模块设计 1、模块设计 本程序包含两个模块:主程序模块和工作区选择模块。其调用关系如图2所示。 图2 模块调用示意图 2、系统子程序及功能设计 本系统共设置个6子程序,各子程序的函数名及功能说明如下。 (1)LinkList creatLink() //创建链表(录入各项目的成绩)(2)int schoolScore(LinkList L) //统计各学校总分 (3)void printfSchoolNumber() //按学校编号顺序输出 (4)void printfSchoolScore() //按学校总分顺序输出 (5)void printfManWomanScore(LinkList L //按男女团体总分排序输出 (6)void printfSchoolObject(LinkList L) //按学校编号查询学校某项目情况 (7)void printfObjectSchool(LinkList L) //按项目编号查询取得前三名或前五名的学校 (8)int main() //主函数 3、函数主要调用关系图 本系统6个子系统之间的主要调用关系如图3所示,图中数字是各函数的编号。

C语言程序设计课程设计题目

1一元稀疏多项式的运算 问题描述:设有两个带头指针的单链表表示两个一元稀疏多项式A、B,实现两个一元稀疏多项式的处理。 实现要求: ⑴输入并建立多项式; ⑵输出多项式,输出形式为整数序列:n,c1,e1,c2,e2……c n,e n,其中n 是多项式的项数,c i,e i分别为第i项的系数和指数。序列按指数降序排列; ⑶多项式A和B相加,建立多项式A+B,输出相加的多项式; ⑷多项式A和B相减,建立多项式A-B,输出相减的多项式; ⑸多项式A和B相乘,建立多项式A×B,输出相乘的多项式; ⑹设计一个菜单,至少具有上述操作要求的基本功能。 测试数据: (1) (2x+5x8-3.1x11)+(7-5x8+11x9) (2) (6x-3-x+4.4x2-1.2x9)-(-6x-3+5.4x2+7.8x15) (3)(x+x2+x3)+0 (4)(x+x3)-(-x-x-3) 2成绩排序 假设某年级有4个班,每班有45名同学。本学期有5门课程考试,每门课程成绩是百分制。假定每个同学的成绩记录包含:学号、姓名各门课程的成绩共7项,其中学号是一个10位的字符串,每个学生都有唯一的学号,并且这4个班的成绩分别放在4个数组中,完成以下操作要求: ⑴编写一个成绩生成函数,使用随机数方法,利用随机函数生成学生的各门课程的成绩(每门课程的成绩都是0∽100之间的整数),通过调用该函数生成全部学生的成绩; ⑵编写一个平均成绩计算函数,计算每个同学的平均成绩并保存在成绩数组中; ⑶用冒泡排序法对4个班的成绩按每个同学的平均成绩的以非递增方式进

行班内排序; ⑷用选择排序法对4个班的成绩按每个同学的平均成绩的以非递增方式进行班内排序; ⑸对已按平均成绩排好序的4个班的同学的构造一个所有按平均成绩的以非递增方式排列的新的单链表; ⑹设计一个菜单,至少具有上述操作要求的基本功能。 3迷宫问题 问题描述:以一个m×n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 实现要求: ⑴实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。 ⑵编写递归形式的算法,求得迷宫中所有可能的通路; ⑶以方阵形式输出迷宫及其通路。 [测试数据] 迷宫的测试数据如下:左上角(1,1)为入口,右下角(8,9)为出口。 1 2 3 4 5 6 7 8 实现提示:

C语言课程设计_运动会管理系统

物联网工程课程设计报告 课题:学校运动会管理系统 专业班级:物联网工程131班 报告人:陆俊贤 139074382 庞彦辉 139074383 指导老师:张学锋 评定成绩: 指导老师签名:

前言 随着科技的发展,计算机以其强大的性能价格优势给人们的工作、学习和生活带来极大的方便.计算机代替人工处理一些事务已成为必然。整个人类社会已进入高度信息化,人们对信息和数据的利用和处理已经进入自动化、网络化和社会化的阶段。如在查找资料、处理日常办公事务、科研生产等方面,无不需要利用大量的信息资源。因此,如何有效地进行数据信息的管理和利用,已经成为人们普遍关注的课题。信息在不同的领域里有着不同的概念,在管理科学领域中,通常认为信息是经过加工处理后的一种数据形式,是一种有次序的符号排列,它是系统传输和处理的对象。处在信息时代的今天,信息的作用越来越为人们所重视。制定成绩计划,研究投资策略,都离不开对信息的充分利用。 在当今社会上,体育运动越来越普及,参与运动会的人越来越多,素质越来越高。传统的运动会,一般是以人手组织为主,运动员的报名、赛事的安排、比赛场地的安排和成绩的记录等操作全都由人手操作,参加人数越多,运动会的规模就越大,管理工作就更加费时费力,而且容易出错。学校田径运动会管理系统则为组织者提供一个简捷方便的方式来组织管理运动会,学校田径运动会管理系统是一种“人机交互系统”,通过简单的键盘输入与鼠标点击来完成烦琐的记录与安排工作,保证运动会的正常流畅的进行。学校田径运动会管理系统是典型的数据库应用系统,可完成田径运动会管理中的运动员基本信息录入,竞赛成绩处理及公告,成绩统计.信息查询等事务处理功能。根据学校田径运动会的一般进程,本系统分为数据修改、查询、删除、统计等四个工具模块来完成所期望的功能。依据关系型数据库理论设计数据库的结构。使用该系统可以极大地减小工作人员的劳动量,同时还可大大提高工作效率、可靠性和正确性。

c语言课程设计运动会比赛计分系统(含任务书)

一、课程设计目的 将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。通过课程设计,学生在下述各方面的能力应该得到锻炼: (1)进一步巩固、加深学生所学专业课程《C语言教程》的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。 (2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。 (3)利用所学知识,开发小型应用系统,掌握运用C语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。 (4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。 (5)掌握自顶而下的设计方法,将大问题进行模块化,领会结构化程序设计的方法。 (6)熟练掌握C语言的基本语法,灵活运用各种数据类型。 (7)进一步掌握在集成环境下如何调试程序(单步调试,设置断点、观察表达式,分块调试)和修改程序。 二、课程设计名称及内容 课程设计名称:运动会比赛计分系统 设计内容:设计一个运动会比赛计分系统,该系统要求对运动会比赛得分进行管理和维护。 三、任务和要求 要求:初始化输入:N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数各项目名次取法有如下几种: (1)取前5名:第一名得分7分,第二名得分5,第三名得分3,第四名得分2,第五名得分1; (2)取前3名:第一名得分5,第二名得分3,第三名得分2; (3)用户自定义:各名次权值由用户指定。 四、设计方案提示

(1)界面 系统以菜单方式工作 (2)输入数据并存入文件 使用到结构体变量和动态链表,由程序提醒用户填写比赛结果,输入各项目获奖运动员信息。对输入的信息进行合法性判断,直到输入正确为止。都输入完成后,调用写文件函数对指定的文件进行写操作,把输入的信息写入到文件中。 (3)显示所有记录 将文件中的所有记录以表格的形式输出。如果文件未打开会出现“文件打开失败!按任意键返回...”,关闭文件。 (4) 查询 所有信息记录完毕后,用户可以查询各个学校的比赛成绩,生成团体总分报表,查看参赛学校信息和比赛项目信息等。 二:算法设计: 信息输入模块、比赛结果录入模块以及查询模题目的总体要求是要建立三个模块:信息输入模块、建立三个模块块。在建立完之后,要求该程序能够在用户将各种必要的信息记录之后,用户可以查询所有学校的比赛成绩,而且也可以生成团体总分表,查看参赛学校信息和比赛项目信息等一切录入的信息,为此,要示编程人员能通过一些具体的程序将以上的功能加以实现。在建立三个模块的大前提下,我们将采用结构体,循环体,指针和各种函数来实现这种功能,在数据结构体中,要采用结构体数组,其中包括学校、项目、运动员三个结构体。学校结构体成员包括学校校名、竞赛项目、得分项目结构体成员包括项目名、权值。(1)在此程序中,包括几个头文件:mainfile.h; dos.h; conio.h; momery.h; 接下来,定义全)局变量,其中包括“参赛学校项目数N;男子项目数M;女子项目数W;参赛学校g_school; 竞赛项目g_sport; 各名次链表指针ptrHead,ptrThis,ptrNew; 总体设计:系统设计为信息输入模块、比赛结果录入模块和查询模块三个模块。总

C语言程序设计课程设计报告

C语言程序设计课程设 计报告 内部编号:(YUUT-TBBY-MMUT-URRUY-UOOY-DBUYI-0128)

《C语言程序设计》课程设计报告 (2013— 2014学年第 3 学期) 题目: C语言课程设计 专业:软件工程 班级:软件工程技术2班 姓名学号: 1 林燕萍 指导教师:吴芸 成绩: 计算机科学与技术系 2014 年6月23日

目录 一、课程设计的目的与要求 (1) 二、方案实现与调试 (3) 2.1 掷骰子游戏 (5) 2.2 射击游戏 (7) 2.3 计算存款本息之和 (8) 2.4肇事逃逸 (10) 2.5 礼炮 (12) 2.6 汽车加油 (14) 2.7 大优惠 (16) 2.8 金币 (19) 三、课程设计分析与总结 (23) 附录程序清单 (25) 一、课程设计的目的与要求(含设计指标) C语言是一种编程灵活,特色鲜明的程序设计语言。C语言除了基知识,如概念,方法和语法规则之外更重要的是进行实训,以提高学习者的动手和编程能力,从应试课程转变为实践工具。这是学习语言的最终目的。结合多年来的教学经验,根据学生的学习情况,为配合教学过程,使“项目教学法”能在本质上促使学生有更大进步,特编写了该《C 语言程序设计任务书》,以在实训过程中给学生提供帮助。达到如下目的: 1.在课程结束之前,让学生进一步了解C程序设计语言的编程功能;

2.让学生扎实掌握C程序设计语言的相关知识; 3.通过一些有实际意义的程序设计,使学生体会到学以致用,并能将程序设计的知识与专业知识有效地结合,更全面系统地了解行业知识。 编写程序要求遵循如下基本要求: ①模块化程序设计 ②锯齿型书写格式 ③必须上机调试通过 二、方案实现与调试 2.1掷骰子游戏 2.1.1 题目内容的描述 1) 两人轮流掷骰子,每次掷两个,每人最多掷10次。 2) 将每人每次的分值累加计分 3) 当两个骰子点数都为6时,计8分;当两个点数相等且不为两个6时,计7分;当两个点数不一样时,计其中点数较小的骰子的点数。4) 结束条件:当双方都掷10次或经过5次后一方累计分数多出另一方的30%及以上。最后显示双方分数并判定优胜者。 2.1.2输入数据类型、格式和内容限制和输出数据的说明 数据类型:整型;内容限制:随机数的产生;输入数据结果:胜利的一方 2.1.3主要模块的算法描述

C语言课程设计报告_运动会分数统计系统

课程设计报告 课程名称《C语言程序设计》 课题名称运动员分数统计系统 专业电气工程及其自动化 班级电气1186 学号201113010628 姓名何长学 指导教师王颖 2012 年6月15日

湖南工程学院 课程设计任务书 课程名称《C语言程序设计》课题运动员分数统计系统 专业班级电气1186 学生姓名何长学 学号201113010628 指导老师王颖 审批 任务书下达日期2012年6月04日 任务完成日期2012年6月15 日

一、设计内容与设计要求 1.课程设计目的: 全面熟悉、掌握C语言基本知识,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为后继课程(数据结构、数据库和汇编语言等课程)的实验以及课程设计打下较扎实的基础。 2.课题题目 ⑴班级成绩管理系统 ⑵班级档案管理系统 ⑶飞机订票系统 ⑷猜数字游戏 ⑸电子英汉词典设计 ⑹心算抢答系统 ⑺运动会分数统计系统 ⑻小学生心算CAI系统 3.设计要求: 掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的中型问题,为将来开发软件积累一些典型的案例处理经验。 具体要求如下: ⑴设计课题题目:每位同学根据自己学号除以8所得的余数加一 选择相应题号的课题。换题者不记成绩。 ⑵根据自己对应的课题完成以下主要工作:①完成系统需求分析:包 括系统设计目的与意义;系统功能需求;输入输出的要求。②完成系统概要设计:程序由哪些模块组成以及模块之间的层次结构、各模块的调用关系; 每个模块的功能;课题涉及的数据结构和数据库结构;即要存储什么数据,

c语言课程设计运动会比赛计分系统(含任务书)

. . 一、课程设计目的 将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。通过课程设计,学生在下述各方面的能力应该得到锻炼: (1)进一步巩固、加深学生所学专业课程《C语言教程》的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。 (2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。 (3)利用所学知识,开发小型应用系统,掌握运用C语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。 (4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。 (5)掌握自顶而下的设计方法,将大问题进行模块化,领会结构化程序设计的方法。 (6)熟练掌握C语言的基本语法,灵活运用各种数据类型。 (7)进一步掌握在集成环境下如何调试程序(单步调试,设置断点、观察表达式,分块调试)和修改程序。 二、课程设计名称及容 课程设计名称:运动会比赛计分系统 设计容:设计一个运动会比赛计分系统,该系统要求对运动会比赛得分进行管理和维护。 三、任务和要求 要求:初始化输入:N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数 各项目名次取法有如下几种: (1)取前5名:第一名得分7分,第二名得分5,第三名得分3,第四名得分2,第五名得分1; (2)取前3名:第一名得分5,第二名得分3,第三名得分2; (3)用户自定义:各名次权值由用户指定。 四、设计方案提示

(1)界面 系统以菜单方式工作 (2)输入数据并存入文件 使用到结构体变量和动态链表,由程序提醒用户填写比赛结果,输入各项目获奖运动员信息。对输入的信息进行合法性判断,直到输入正确为止。都输入完成后,调用写文件函数对指定的文件进行写操作,把输入的信息写入到文件中。 (3)显示所有记录 将文件中的所有记录以表格的形式输出。如果文件未打开会出现“文件打开失败!按任意键返回...”,关闭文件。 (4) 查询 所有信息记录完毕后,用户可以查询各个学校的比赛成绩,生成团体总分报表,查看参赛学校信息和比赛项目信息等。 二:算法设计: 信息输入模块、比赛结果录入模块以及查询模题目的总体要要建立三个模块:信息输入模块、建立三个模块块。在建立完之后,要求该程序能够在用户将各种必要的信息记录之后,用户可以查询所有学校的比赛成绩,而且也可以生成团体总分表,查看参赛学校信息和比赛项目信息等一切录入的信息,为此,要示编程人员能通过一些具体的程序将以上的功能加以实现。在建立三个模块的大前提下,我们将采用结构体,循环体,指针和各种函数来实现这种功能,在数据结构体中,要采用结构体数组,其中包括学校、项目、运动员三个结构体。学校结构体成员包括学校校名、竞赛项目、得分项目结构体成员包括项目名、权值。(1)在此程序中,包括几个头文件:mainfile.h; dos.h; conio.h; momery.h; 接下来,定义全)局变量,其中包括“参赛学校项目数 N;男子项目数 M;女子项目数 W;参赛学校g_school; 竞赛项目g_sport; 各名次链表指针ptrHead,ptrThis,ptrNew; 总体设计:系统设计为信息输入模块、比赛结果录入模

C语言程序设计课程设计

《C语言程序设计》课程设计 1课程设计目的 C语言课程设计是在“C语言程序设计”课程后集中安排的1周相关的实践技能训练环节。它的目的是通过实践环节的训练,培养学生查阅资料的能力、分析与解决问题的能力、应用C语言开发与设计程序的能力。 2课程设计选题 2.1 题目1 必做题目,其余题目任选一题完成 题目1:年历显示。 功能要求: (1)输入一个年份,输出是在屏幕上显示该年的日历。假定输入的年份在1940-2040年之间。 (2)输入年月,输出该月的日历。 (3)输入年月日,输出距今天还有多少天,星期几,是否是公历节日。 题目2:小学生测验 面向小学1-2年级学生,随机选择两个整数和加减法形成算式要求学生解答。 功能要求: (1)电脑随机出10道题,每题10分,程序结束时显示学生得分; (2)确保算式没有超出1-2年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出0-50的范围,负数更是不允许的; (3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案; (4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分; (5)总成绩90以上显示“SMART”,80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下“TRY AGAIN” 题目3:学生学籍管理系统(可以2人合作完成) 用数据文件存放学生的学籍,可对学生学籍进行注册,登录,修改,删除,查找,统计,学籍变化等操作。 功能要求: (1)系统以菜单方式工作。 (2)登记学生的学号,姓名,性别,年龄,籍贯,系别,专业,班级;修改已知学号的学生信息; (3)删除已知学号的学生信息; (4)查找已知学号的学生信息; (5)按学号,专业输出学生籍贯表。 (6)查询学生学籍变化,比如入学,转专业,退学,降级,休学,毕业。 题目4:通讯录程序设计 设计一个实用的小型通讯录程序,具有添加,查询和删除功能。由姓名,籍贯,电话号码1,电话号码2,电子邮箱组成,姓名可以由字符和数字混合编码。电话号码可由字符和数字组成。实现功能:(1)系统以菜单方式工作 (2)信息录入功能 (3)信息浏览功能

c语言程序设计--保龄球计分系统,绝对可用,完美测试

#include"stdio、h” #include"stdlib、h" int totscore(); voidpaixu(struct people st[],int n);/*排序函数*/ struct people {int num; int score; };/*定义结构体存储人与其对应得分数*/ intK=1; void main() { int J; printf(”第%d局比赛成绩录入:\n",K);? printf("\n"); FILE*fp;/* FILE*fp就是声明,声明fp就是指针,用来指向FILE类型得对象*/ int i,n;/*n就是参加比赛人数*/ struct peoplest[80]; puts(”---—--请输入总人数:”); scanf("%d”,&n); for(i=0;i

校运动会管理系统报告C语言 含完整代码

目录陈

一、程序分析与设计 (标题四号宋体加黑,正文五号宋体,行间距-固定值18,首行缩进2字符) 1.题目描述 初始化输入:N-参赛院系总数,M-男子竞赛项目数,W-女子竞赛项目数;即要求输入一些基础数据,如院系名称,每个院系参赛选手及选手编号。竞赛项目名称与代号。这些数据存储在文本文件中,不需要每次都单条录入。 各项目名次取法有如下几种: 取前4名:第1名得分6,第2名得分4,第3名得分2,第4名得分1; 由程序提醒用户填写比赛结果,输入各项目获奖运动员的信息。 所有信息记录完毕后,用户可以查询各个院系或个人的比赛成绩,生成团体总分报表,查看参赛院系信息、获奖运动员、比赛项目信息等。 2.需求分析 根据题目要求应提供键盘式菜单实现功能选择,还应提供信息的输入操作,由于在程序中提供查询功能所以应有显示、查找等操作。 3.总体设计 根据上面的需求分析,可以将这个系统的设计分为1、信息输入模块2、比赛结果录入模块3、查询模块。具体校际运动会管理系统分为信息的输入、结果的输入、学校各个项目的得分的查寻、总体报表的生成。 4.详细设计 (1)主函数 主函数一般设计的比较简洁,只提供输入,处理和输出部分的函数调用。其中功能模块用菜单方式选择。 (2)密码登陆函数 首先进入欢迎界面,提示用户输入密码进入系统,密码输入次数限制为三次,三次输入错误则退出系统,登陆成功显示菜单栏

(3)菜单函数 提醒用户根据要求选择功能,以及多次功能选取 (4)输入函数 进入该功能后提醒用户输入相应信息,即数据结构,数据结构采用结构体的形式,选手结构体成员包括选手的姓名、编号、各项目的成绩排名、选手所在学院等。 (5)查找函数 提醒用户输入运动员的姓名或编号,根据姓名或编号逐一比对信息,若条件满足则输出该选手的数据,若不满足则返回‘你要找的运动员未找到’(6)排序函数 根据运动员的百米成绩进行冒泡排序,并输出结果 (7)修改函数 提醒用户输入运动员的姓名,根据姓名逐一比对信息,若找到则提供修改选项,对数据进行覆盖 (8)得分计算函数 根据用户输入各项成绩排名,进行得分运算 并得出学院排名 (9)删除函数 用于输入信息的删除 (10)插入函数 用于输入新的信息 (11)保存函数 将用户输入的信息保存到文本文件中 (12)显示函数 显示用户保存的信息

校运动会管理系统报告C语言含完整代码

校运动会管理系统报告C语言含完整代码 Pleasure Group Office【T985AB-B866SYT-B182C-BS682T-STT18】

目录 陈

一、程序分析与设计 (标题四号宋体加黑,正文五号宋体,行间距-固定值18,首行缩进2字符) 1.题目描述 初始化输入:N-参赛院系总数,M-男子竞赛项目数,W-女子竞赛项目数;即要求输入一些基础数据,如院系名称,每个院系参赛选手及选手编号。竞赛项目名称与代号。这些数据存储在文本文件中,不需要每次都单条录 入。 各项目名次取法有如下几种: 取前4名:第1名得分6,第2名得分4,第3名得分2,第4名得分1; 由程序提醒用户填写比赛结果,输入各项目获奖运动员的信息。 所有信息记录完毕后,用户可以查询各个院系或个人的比赛成绩,生成团体总分报表,查看参赛院系信息、获奖运动员、比赛项目信息等。 2.需求分析 根据题目要求应提供键盘式菜单实现功能选择,还应提供信息的输入操 作,由于在程序中提供查询功能所以应有显示、查找等操作。 3.总体设计 根据上面的需求分析,可以将这个系统的设计分为1、信息输入模块 2、比赛结果录入模块 3、查询模块。具体校际运动会管理系统分为信息的输 入、结果的输入、学校各个项目的得分的查寻、总体报表的生成。 4.详细设计 (1)主函数

主函数一般设计的比较简洁,只提供输入,处理和输出部分的函数调用。其中功能模块用菜单方式选择。 (2)密码登陆函数 首先进入欢迎界面,提示用户输入密码进入系统,密码输入次数限制为三次,三次输入错误则退出系统,登陆成功显示菜单栏 (3)菜单函数 提醒用户根据要求选择功能,以及多次功能选取 (4)输入函数 进入该功能后提醒用户输入相应信息,即数据结构,数据结构采用结构体的形式,选手结构体成员包括选手的姓名、编号、各项目的成绩排名、选手所在学院等。 (5)查找函数 提醒用户输入运动员的姓名或编号,根据姓名或编号逐一比对信息,若条件满足则输出该选手的数据,若不满足则返回‘你要找的运动员未找到’(6)排序函数 根据运动员的百米成绩进行冒泡排序,并输出结果 (7)修改函数 提醒用户输入运动员的姓名,根据姓名逐一比对信息,若找到则提供修改选项,对数据进行覆盖 (8)得分计算函数 根据用户输入各项成绩排名,进行得分运算 并得出学院排名

C语言 运动会管理系统

C语言运动会管理系统 运动员信息包括:运动员编号、班级、姓名、竞技项目等。试设计一运动会管理系统,使之能提供以下功能: 运动员信息录入功能(运动员信息用文件保存)——输入 运动员信息浏览功能——输出 查询和排序功能:(至少一种查询方式)——算法 按竞技项目查询 按姓名查询 运动员信息删除、修改功能(人选项)问题补充: 需要算法,流程图,总结! #include #define A 100 int y=0,f=0,j,W,M,N,p[15],q[15]; struct student { char shool[20]; char name[20]; char item[20]; char sex; int position; int mark; }stu[A]; struct item { char name[20]; char sex; int mark; }it[A]; struct shool { char name[20]; char item[20]; int mark; }sho[A]; main() { menu();

} menu() { int w1,n; do { puts("\t\t*****************MENU********************"); puts("\n\n\t\t 1.The information to writein\n"); puts("\t\t 2.The race result records to writein\n"); puts("\t\t 3.Search the information\n"); puts("\t\t 4.Exit\n"); puts("\n\t\t*****************************************"); puts("\n\nChoice you number:"); scanf("%d",&n); if(n<1||n>4){w1=1;getchar();} else w1=0; }while(w1==1); switch(n) { case 1:establish();break; case 2:enter();break; case 3:search();break; case 4:exit(0); } } establish() { int h,r; extern N,M,W; y=1; printf("\nThe number of shool attended is:"); scanf("%d",&N); printf("\nThe number of men item is:"); scanf("%d",&M); printf("\nThe number of women item is:"); scanf("%d",&W); printf("\nThere are three form of marked you can choice:"); printf("\n\n\t1).1th--7,2th--5,3th--3,4th--2,5th--1."); printf("\n\n\t2).1th--5,2th--3,3th--1."); printf("\n\n\t3).Define by youself."); loop: printf("\n\nChoice the number(1--3):"); scanf("%d",&h); if(h>0&&h<4) switch(h) {case 1:j=1;break; case 2:j=2;break; case 3:define_mark();

C语言程序课程设计猜数字游戏

C语言程序设计课程设计 : 自 动 化 级 : 名: 学号: 指导教师: 兰州交通大学自动化与电气工程学院 2015年07月21日

一.引言 设计目的 复习和巩固C语言基础知识,进一步加深对C语言的理解和掌握。提高同学将课本上的理论知识和实际结合的能力,锻炼同学的分析解决实际问题的能力,提高同学团队合作的能力。使同学们善于观察和思考,善于合作,具备实践编程的基础素质,和实际问题分析的思考方式。 设计要求 在设计时充分地分析和理解问题本身,综合考虑系统功能,怎样使系统结构清晰、合理、简单和易于调试。然后详细设计,确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系。最后认真完成课程设计说明书,并对设计方法,结果等进行总结。 充分地分析和理解问题本身,弄清要求做什么(What to do)。在确定解决方案框架过程中(How to do),综合考虑系统功能,考虑怎样使系统结构清晰、合理、简单和易于调试。最后确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系。 确定算法的主要流程,在此基础上进行代码设计(Coding),每个明确的功能模块程序一般不超过60行,否则要进一步划分。 上机前程序静态检查可有效提高调试效率,减少上机调试程序时的无谓错误。静态检查主要有两种途径:(1)用一组测试数据手工执行程序;(2)通过阅读或给别人讲解自己的程序而深入全面地理解程序逻辑。 二.基础题 题目 用选择法对10个数进行排序。 有一个已排好序的数组。现输入一个数,要求按原来的规律插入到原数组中。解题思路 程序的主要功能是对数组元素用排序函数按从小到大的顺序进行排序。 先定义一个10个元素的一维数组a[10],然后从电脑输入10个数(也就是对数组赋值),然后使用一次fun()函数,对这10个数进行排序;然后再定义一个11个元素的一维数组b[11],同时再从电脑输入一个数同a[10]一起赋值给b[11],然后再使用fun()函数,重新排序的到最后的有顺序的一组数据。 流程图 子函数流程图如图1所示:

c语言课程设计--运动会分数统计系统讲课教案

课程设计报告 课程名称C语言课程设计 课题名称运动会分数统计系统 专业电气工程及其自动化 班级 学号 姓名 指导教师王颖 2012年 6 月25 日

湖南工程学院 课程设计任务书 课程名称C语言课程设计 课题运动会分数统计系统 专业班级电气工程及其自动化 学生姓名 学号 指导老师王颖 审批 任务书下达日期2012年6月16日 任务完成日期2012年6月25日

运动会分数统计系统 一、问题描述: 参加运动会的n 个学校编号为l ~n 。比赛分成m 个男子项目和w 个女子项目,项目编号分别为l ~m 和m +1~m +w 。由于各项目参加人数差别较大,有些项目取前五名,得分顺序为7,5,3,2,1;还有些项目只取前三名,得分顺序为5,3,2。设计一个统计程序按名次产生各种成绩单、得分报表。 二、基本要求: 1.产生各学校的成绩单,内容包括各校所取得的每项成绩的项目号、名次、成绩、姓名和得分;产生团体总分报表,内容包括校号、男子团体总分、女子团体总分和团体总分;均按名次排序。 2.比赛项目既要有径赛,又要有田赛。 三、测试数据: 对于n=4,m=3,w=2,编号为奇数的项目取前五名,编号为偶数的项目取前三名,设计一组实例数据。 四、实现提示: 1.数据结构:线性表 2.数据库结构:下面四张表构成该系统的基本数据库,全部输出报表由系统根据基本表自动生成。 3. 可以假设n ≤20,m ≤30,w ≤20,姓名长度不超过20个字符。每个项目结束时,将其编号、类型符(区分取前五名还是前三名)输入,并输入运动员编号、学校编号和成绩等。 五、选作内容: 允许用户指定某项目采取其他名次取法。 姓名 运动员编号 校名 学校编号 项目名 项目编号 初始化时完成录入 float char char char char char 成绩 类型 性别 项目编号 学校编号 运动员编号

校级运动会管理系统c语言程序

#include #include #include #include #define SIZE 9 #define N 3 #define WM 3 void bsxm(); //比赛项目 void csxx(); //参赛学校 void ttzf() ;//团体总分 void Information(); void main(); void menu(); void printf_back(); void saveathlete(); void saveprogram(); void saveschool(); void savescore(); void Search(); int i; FILE *fp1,*fp2,*fp3,*fp4; struct athlete //定义运动员信息{ char univ[5]; char name[8]; char prog[15]; char mingci[5]; int score; } at[SIZE]; struct xuexiao //定义学校信息{ char univ[5]; char prog[15]; int num_athlete; } xx[N];

struct program //定义项目信息 { char prog[5]; int quming; char ath1[5]; char ath2[5]; char univ1[5]; char univ2[5]; } pro[WM]; struct zongfen //定义学校得分信息 { char univ[5]; char prog1[5]; char prog2[5]; char prog3[5]; int score1; int score2; int score3; int total_score; } zf[N]; void Information()//进入信息录入系统选择系统子函数 { int n,w ; do { puts("\n\n\n"); puts("\t\t***^__^ Welcome to load 信息录入system! ^__^***\n"); puts("\t\t*************************MENU*************************\n"); puts("\t\t******** 1.saveathlete **************\n");//运动员姓名录入 puts("\t\t******** 2.saveschool **************\n");//运动员学校录入 puts("\t\t******** 3.saveprogram() **************\n");//参加项目录入 puts("\t\t******** 4.back **************\n");//退出 puts("\t\t******************************************************\n");

运动会积分系统(C语言)

程序设计报告( 2014 / 2015 学年第 2 学期) 题目:运动会积分系统 专业 组长学号姓名 组员学号姓名 指导教师 指导单位 日期

运动会积分系统 一、课题内容和要求 学生运动会成绩数据库系统记录某校运动会上全部运动项目,各系获得的分数及排名的情况,包括50、100、200,400,1500米,跳高,跳远,标枪,铅球铁饼等。请设计一个积分系统,方便学校对比赛成绩进行统计管理。 二、需求分析 运动会积分系统的功能框架图如图1所示。 图1 功能框架图 管理员: 1)以管理员身份登录,预先设定参加运动会的系院数目,男子项目数女子项目数,(每项目取前三名,分别为10,5,2分) 2)管理员凭密码进入录入成绩状态,填写比赛结果,输入各项目获奖运动员的信息,但录入完成后不得修改成绩。可以按各系院编号输出总分;按总分排序;按男团体总分排序;按系院编号查询;按项目编号查询;按女团体总分排序。 3)审核各院系提交的复核申请,予以批准后修改成绩。 普通用户: 1)普通用户可以查询各个比赛成绩,生成团体总分报表,查看参赛院系的成绩和各比赛项目最终名次等。 2)允许提交复核申请,提请管理员修改成绩。

三、概要设计 1 主要结构体 typedef struct node1{ int school; /*院系编号*/ int record; /*项目成绩*/ struct node1 *next; /*链域*/ }Schools; typedef struct { int item; /*项目编号*/ Schools *firstschool; /*链域指向链表中第一个结点*/ }ITEM; typedef struct { int z; /* 项目总数 */ ITEM a[MAX]; }ALLitems; typedef struct node2 { int item; /*该院系获奖的项目*/ int record; /*项目成绩*/ struct node2 *next; /*链域*/ }Items; typedef struct { int school; /*院系编号*/ int score; /*院系总分*/ int boys; /*男团体总分*/ int girls; /*女团体总分*/ Items *firstitem; /*链域指向链表中第一个获奖项目的结点*/ }SCHNode; typedef struct { int n; /* 院系总数 */

相关文档
最新文档