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


    运动会分数统计系统实现

    计科班




    设计求
    1问题描述
    参加运动会n学校学校编码12…n赛分成m男子项目w女子项目项目编号男子12…m女子m+1m+2…m+w项目取前五名前三名积分取前五名积分分75321前三名积分分532取前五名前三名学生设定(m<20n<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示图中数字函数编号
    8 main()
    1
    2
    3
    4
    5
    6
    7

    图3 系统函数调关系图

    四详细设计
    1数类型定义
    (1)系统采链式结构存储运动会分数统计结点节点定义:
    typedef struct LNode{ 链表节点数结构
    int objnum
    char objtype
    int athnum
    char athname[20]
    int schnum
    char schname[30]
    int athscore
    struct LNode *next
    }LNode*LinkList
    (2)学校情况数结构结构定义成结构体数组形式定义:
    struct School{
    int schoolnumber
    char schoolname[30]
    int schoolscore
    }school[30]
    2系统子程序详细设计
    (1)创建链表(录入项目成绩)子程序设计
    LinkList creatLink(){
    LinkList L(LinkList)malloc(LEN)
    LinkList pq
    int numobjnumn
    char objtype
    L>nextNULL
    pL
    printf(请输入男女项目总数)
    scanf(d&num)
    while(num){
    printf(请输入项目编号)
    scanf(d&objnum)
    printf(请输入项目类型)
    getchar()
    objtypegetchar()
    printf(请输入3(代表取前三名)5(代表取前五名))
    scanf(d&n)
    printf(请名次序输入运动员编号姓名学校编号校名成绩\n)
    while(n){
    q(LinkList)malloc(LEN)
    q>objnumobjnum
    q>objtypeobjtype
    printf(请输入运动员编号)
    scanf(d&q>athnum)
    printf(请输入运动员姓名)
    getchar()
    scanf(sq>athname)
    printf(请输入学校编号)
    scanf(d&q>schnum)
    printf(请输入校名)
    getchar()
    scanf(sq>schname)
    printf(请输入成绩)
    scanf(d&q>athscore)
    q>nextNULL
    p>nextq
    pq
    }
    }
    return(L)
    }

    (2)统计学校总分子程序设计
    int schoolScore(LinkList L){
    LinkList p
    int i
    pL>next
    for(i0i<20i++){
    school[i]schoolscore0
    school[i]schoolnumber1
    }
    while(pNULL){
    for(i0i<20i++){
    if(school[i]schoolnumber1){
    strcpy(school[i]schoolnamep>schname)
    school[i]schoolnumberp>schnum
    school[i]schoolscorep>athscore
    pp>next
    break
    }
    else if(school[i]schoolnumberp>schnum){
    school[i]schoolscore+p>athscore
    pp>next
    break
    }
    }
    }
    return 0
    }

    五测试分析
    1创建链表(录入项目成绩)
    菜单户输入1回车然输入数结点数回车输入数运行结果图4示

    图4 链表建立(录入项目成绩)



    2统计学校总分
    菜单户输入2回车运行结果图5示

    图5 统计学校总分
    3学校编号序输出
    菜单户输入3回车运行结果图6示

    图6 学校编号序输出数
    4学校总分序输出
    菜单户输入4回车运行结果图7示

    图7 学校总分序输出数

    5男女团体总分排序输出
    菜单户输入5回车运行结果图8示

    图8 男女团体总分排序输出数
    6学校编号查询学校某项目情况
    菜单户输入6回车输入学校编号回车然输入项目编号运行结果图9示

    图9 学校编号查询学校某项目情况
    6项目编号查询取前三名前五名学校
    菜单户输入7回车输入项目编号回车然输入取名规运行结果图10示

    图10 项目编号查询取前三名前五名学校
    8退出
    菜单户输入0回车运行结果图11示

    图11 退出程序
    六源程序清单
    #include
    #include
    #include
    #define NULL 0
    #define LEN sizeof(LNode)
    typedef struct LNode{ 链表节点数结构
    int objnum
    char objtype
    int athnum
    char athname[20]
    int schnum
    char schname[30]
    int athscore
    struct LNode *next
    }LNode*LinkList
    学校情况数结构
    struct School{
    int schoolnumber
    char schoolname[30]
    int schoolscore
    }school[30]
    创建链表
    LinkList creatLink(){
    LinkList L(LinkList)malloc(LEN)
    LinkList pq
    int numobjnumn
    char objtype
    L>nextNULL
    pL
    printf(请输入男女项目总数)
    scanf(d&num)
    while(num){
    printf(请输入项目编号)
    scanf(d&objnum)
    printf(请输入项目类型)
    getchar()
    objtypegetchar()
    printf(请输入3(代表取前三名)5(代表取前五名))
    scanf(d&n)
    printf(请名次序输入运动员编号姓名学校编号校名成绩\n)
    while(n){
    q(LinkList)malloc(LEN)
    q>objnumobjnum
    q>objtypeobjtype
    printf(请输入运动员编号)
    scanf(d&q>athnum)
    printf(请输入运动员姓名)
    getchar()
    scanf(sq>athname)
    printf(请输入学校编号)
    scanf(d&q>schnum)
    printf(请输入校名)
    getchar()
    scanf(sq>schname)
    printf(请输入成绩)
    scanf(d&q>athscore)
    q>nextNULL
    p>nextq
    pq
    }
    }
    return(L)
    }
    统计学校总分
    int schoolScore(LinkList L){
    LinkList p
    int i
    pL>next
    for(i0i<20i++){
    school[i]schoolscore0
    school[i]schoolnumber1
    }
    while(pNULL){
    for(i0i<20i++){
    if(school[i]schoolnumber1){
    strcpy(school[i]schoolnamep>schname)
    school[i]schoolnumberp>schnum
    school[i]schoolscorep>athscore
    pp>next
    break
    }
    else if(school[i]schoolnumberp>schnum){
    school[i]schoolscore+p>athscore
    pp>next
    break
    }
    }
    }
    return 0
    }
    学校编号序输出
    void printfSchoolNumber(){
    int ijnumflag
    printf( 学校编号 校 名 学校总分\n)
    for(i0i++){
    if(school[i]schoolnumber1)break
    numschool[0]schoolnumber
    flag0
    for(j1j++){
    if(school[j]schoolnumber1)break
    if(school[j]schoolnumber }
    printf(8d10s12d\nschool[flag]schoolnumberschool[flag]schoolnameschool[flag]schoolscore)
    school[flag]schoolnumber35565
    }
    }
    学校总分序输出
    void printfSchoolScore(){
    int ijscoflag
    printf( 学校编号 校 名 学校总分\n)
    for(i0i++){
    if(school[i]schoolscore0)break
    scoschool[0]schoolscore
    flag0
    for(j1j++){
    if(school[j]schoolscore0)break
    if(school[j]schoolscore>sco){scoschool[j]schoolscoreflagj}
    }
    printf(8d10s12d\nschool[flag]schoolnumberschool[flag]schoolnameschool[flag]schoolscore)
    school[flag]schoolscore1
    }
    }
    男女团体总分排序输出
    void printfManWomanScore(LinkList L){
    LinkList p
    int manscore0womanscore0
    pL>next
    while(pNULL){
    if(p>objtype'm')manscore+p>athscore
    else womanscore+p>athscore
    pp>next
    }
    printf( 团体 总分\n)
    if(manscore>womanscore){
    printf( 男生8d\nmanscore)
    printf( 女生8d\nwomanscore)
    }
    else {
    printf( 女生8d\nwomanscore)
    printf( 男生8d\nmanscore)
    }
    }
    学校编号查询学校某项目情况
    void printfSchoolObject(LinkList L){
    LinkList p
    int scnumobnumsum0
    char scname[30]
    pL>next
    printf(请输入查学校编号)
    scanf(d&scnum)
    printf(请输入项目编号)
    scanf(d&obnum)
    while(pNULL){
    if(p>schnumscnum&&p>objnumobnum){sum+p>athscorestrcpy(scnamep>schname)}
    pp>next
    }
    printf( 学校编号 校 名 项目编号 获总分\n)
    printf(8d10s12d12d\nscnumscnameobnumsum)
    }
    项目编号查询取前三名前五名学校
    void printfObjectSchool(LinkList L){
    LinkList p
    int obnumni
    pL>next
    printf(请输入查项目编号)
    scanf(d&obnum)
    printf(请输入3(前三名)5(前五名))
    scanf(d&n)
    for(i20i<30i++){
    school[i]schoolscore0
    school[i]schoolnumber1
    }
    while(pNULL){
    for(i20i<30i++){
    if(school[i]schoolnumber1&&p>objnumobnum){
    strcpy(school[i]schoolnamep>schname)
    school[i]schoolnumberp>schnum
    school[i]schoolscorep>athscore
    pp>next
    break
    }
    else if(school[i]schoolnumberp>schnum&&p>objnumobnum){
    school[i]schoolscore+p>athscore
    pp>next
    break
    }
    else{pp>nextbreak}
    }
    }
    printf( 项目编号 学校编号 校 名 学校总分\n)
    *i20
    while(n){
    if(school[i]schoolscore0){ printf(8d12d10s12d\nobnumschool[i]schoolnumberschool[i]schoolnameschool[i]schoolscore)
    i++
    }
    else break
    }*
    pL>next
    while(p>objnumobnum)pp>next
    while(n){
    printf(8d12d10s12d\nobnump>schnump>schnamep>athscore)
    pp>next
    }
    }
    函数
    int main(){
    LinkList L
    int menu
    while(menu0){
    printf(***********************欢迎运动会分数统计系统***********************\n)
    printf( 1录入项目成绩\n)
    printf( 2统计学校分数\n)
    printf( 3学校编号序输出\n)
    printf( 4学校总分序输出\n)
    printf( 5男女团体总分序输出\n)
    printf( 6学校编号查询学校某项目情况\n)
    printf( 7项目编号查询取前三名前五名学校\n)
    printf( 0退出系统\n)
    printf(***********************欢迎运动会分数统计系统***********************\n)
    printf(请选择功07)
    scanf(d&menu)
    switch(menu){
    case 1 LcreatLink()printf(项目成绩录入完毕\n)break
    case 2 schoolScore(L)printf(统计学校成绩完毕\n)break
    case 3 printfSchoolNumber()break
    case 4 schoolScore(L) printfSchoolScore()break
    case 5 printfManWomanScore(L)break
    case 6 printfSchoolObject(L)break
    case 7 printfObjectSchool(L)break
    case 0 printf(退出系统成功欢迎\n)exit(0)
    default printf(功选项错误请重新输入)
    }
    printf(\n)
    }
    return 0
    }

    七户手册
    (1)程序执行文件运动会分数统计系统演示exe
    (2)进入程序会进入系统菜单界面户该界面输入子菜单前应数字回车执行相应子菜单命令



    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 2 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    数据结构课程设计运动会分数统计(C语言版)

    数据结构课程设计运动会分数统计(C语言版)目 录第一章 绪 论 1 1.1 运动会分数统计系统的背景 1 1.2 运动会分数统计系统的任务和目标 1第二章 运动会分数统...

    3年前   
    655    0

    信号与系统实验报告

    实验一 信号的时域描述与运算 一、实验目的 1、掌握信号的MATLAB表示及其可视化方法。 2、掌握信号基本时域运算的MATLAB实现方法。 3、利用MATLAB分析常用信号,加深对信号时...

    5年前   
    3236    0

    信息管理系统实验报告

    信息管理系统实验报告班级: 财务管理班 成员: 指导老师: 2012食堂信息系统调查大纲• 一、引言• 二、系统需求分析• 三、可行性分析• 四、概念结构设计• 五、逻辑结构设计• ...

    2年前   
    559    0

    实验报告管理系统报告

    软件项目设计报告实验报告管理系统所在班级小组成员学院名称信电工程学院专业名称计算机科学与技术指导教师起止日期2014.12.16-2015.1.152015年1月15日目 录1 绪...

    2年前   
    329    0

    SPSS数据统计软件实验报告

    SPSS数据统计软件实验报告专业 信息与计算科学 班级 级班 组别 指导教师 姓名 同组人 实验时间 2...

    3年前   
    786    0

    交通系统仿真实验报告

    实验报告课程名称 道路交通系统仿真 学生姓名 学 号 ...

    1年前   
    300    0

    环境监测系统实验报告

    信息与通信工程学院单片机系统课程设计报告 完成日期:2021年 11 月 16 日目 录目 录 1一、设计任务和要求 11.1 设计任务 11.2 性能指标 1二、设...

    2年前   
    504    0

    远程在线考试系统设计实验报告

    系统设计实验报告 ——远程在线考试系统目 录软件需求说明书························1 ...

    11年前   
    704    0

    车辆管理系统实验报告课程设计

     成绩: 《C++程序设计实践》报告专 业: 软件工程 班 级: 学 号: 姓 ...

    11个月前   
    286    0

    操作系统进程管理实验报告

    操作系统进程管理实验报告实验一 进程管理1.实验目的:(1)加深对进程概念的理解,明确进程和程序的区别;(2)进一步认识并发执行的实质;(3)分析进程争用资源的现象,学习解决进程互斥的方法;...

    1年前   
    392    0

    信号与系统设计性设计性实验报告

    《信号与系统实验》综合设计性实验报告册实验项目:选频网络的设计及应用研究 学院:物理与电子工程学院 年级专业班: 电子 姓名: 学号: 成绩: 实验地点:电子楼指导老师:...

    1年前   
    324    0

    仿QQ聊天系统实验报告

    软件工程项目实践 大作业 仿QQ软件的设计与实现软件工程项目实践 大作业仿QQ软件的设计与实现班级:学号:姓名:教师:平时成绩30分: + 大作业成绩:70分: = 总分:...

    3年前   
    763    0

    统计系统个人先进事迹

    统计系统个人先进事迹 统计系统个人先进事迹由我整理,希望给你工作、学习、生活带来方便。 二十七载风雨路 魂牵梦萦统计情 ——***同志先进事迹 ***同志生于**...

    1年前   
    266    0

    统计系统党史教育总结自查

    统计系统党史教育总结自查为深入学习领会关于党史的重要论述,紧紧围绕庆祝中国共产党成立100周年,*区统计局党支部扎实开展党史教育,认真落实主体责任,严格落实中央“规定动作”和自治区、*市“自选...

    3年前   
    948    0

    2021年统计系统工作总结

    2021年统计系统工作总结今年以来,在县委、县zf的正确领导下,深入贯彻落实党的*大和*中全会精神,紧紧围绕县委、县zf部署和统计重点工作,坚持依法统计,强化服务质量,扎实推进各项统计调查工作...

    2年前   
    441    0

    互动系统统计表

    互动系统统计表 年 月 部 门 谈话人 谈话对象 主要目的 主要内容 谈话结果 谈话时间 谈话次数 A很好 B较好 C较差 ...

    8年前   
    2013    0

    分数乘分数

    分数乘分数课题分数乘分数课型新授课设计说明本节内容是在学生学过分数乘整数的意义和计算方法的基础上进行教学的,它是今后学习分数除法的意义、计算方法以及分数乘除法应用题的基础,所以这部分内容是教学...

    4年前   
    1396    0

    统计系统述职述廉报告1

    统计系统述职述廉报告     2022年是不平凡的一年。国家统计局邹平调查队成功创立,中国国家统计局邹平调查队支部委员会诞生。一年来,在山东调查总队的正确领导下,在邹平县委县政府的大力支持下,...

    1年前   
    304    0

    统计系统学习教育总结会讲稿

    统计系统学习教育总结会讲稿今天,我们召开全局学习教育总结大会,主要任务是深入学习贯彻重要指示精神,全面落实中央、省委、市委学习教育总结会议部署,认真总结我局学习教育的做法和成效,不断巩固拓展学...

    2年前   
    494    0

    统计系统亮点工作总结及下步打算

    统计局亮点工作总结及下步打算xx年,xx县统计局按照“特色创新、力抓亮点”的总思路,以高标准的工作要求,突出特色抓亮点,圆满完成了全年各项统计工作任务。一、xx年亮点工作回顾(一)建章立制,强...

    2年前   
    1672    0

    文档贡献者

    文***享

    贡献于2021-01-07

    下载需要 2 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档