收藏 分销(赏)

选美比赛管理.doc

上传人:a199****6536 文档编号:2627299 上传时间:2024-06-03 格式:DOC 页数:24 大小:134.50KB 下载积分:10 金币
下载 相关 举报
选美比赛管理.doc_第1页
第1页 / 共24页
选美比赛管理.doc_第2页
第2页 / 共24页


点击查看更多>>
资源描述
课程设计 学 号 班 级 姓 名 指导教师 2007年 07月 17日 课程设计任务书 一、课程设计题目:选美比赛管理 二、课程设计工作自2007年7月9日起至2006年7月16日止 三、课程设计内容: 运用所学的C语言知识,编制和调试程序,具有如下功能: 一批选手参加比赛,比赛的规则是最后得分越高,名次越低。当半决赛结束时,要在现场按照选手的出场顺序宣布最后得分和最后名次,获得相同分数的选手具有相同的名次,名次连续编号,不用考虑同名次的选手人数。例如: 选手序号: 1,2,3,4,5,6,7 选手得分: 5,3,4,7,3,5,6 输出名次为: 3,1,2,5,1,3,4 编写程序完成半决赛的评分排名工作,并按以上格式将结果输出到屏幕及文件beauty.dat 四、课程设计要求: 程序质量: l 贯彻结构化程序设计思想。 l 用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。 l 用户界面中的菜单至少应包括“信息录入”、“查询”、“排名”、“退出”4项。 l 代码应适当缩进,并给出必要的注释,以增强程序的可读性。 课程设计说明书: 课程结束后,上交课程设计说明书(打印稿和电子稿),其内容如下: l 封面 l 目录 l 课程设计任务书 l 需求分析(分析题目的要求) l 程序流程图(总体流程图和主要功能模块流程图) l 核心技术的实现说明及相应程序段 l 个人总结 l 参考资料 l 源程序及适当的注释 指导教师:________ 学生签名:________ 目录 一、需求分析 1 二、程序流程图 2 三、核心技术的实现说明及相应程序段 7 四、个人总结 8 五、参考文献 9 六、源程序 9 I 一、需求分析 经过对程序设计题目的分析可知,此问题用链表来完成。建立结构体player,来存储选手信息,包括选手序号、姓名、分数、名次以及指向下一结点的指针next。按序号从小到大建立链表,依次将各结点赋初值,名次先初始化为0。将此链表按分数进行排序,为每个结点的名次赋值,保存。输出结果。整个程序的设计实现大致分为3大模块,第一大模块为选手信息录入模块,其中包括录入信息、排序、保存等;第二大模块为查询选手信息模块,其中包括按姓名查询、按序号查询、按名次查询;第三大模块为输出比赛结果模块。程序中用到的函数:主菜单函数menu()、建立结点函数creatone()、建立链表函数inseart()、排出名次函数sorts()、保存函数save()、子菜单函menu1()、按姓名查询函数searchname()、按序号查询函数searchid()、按名次查询函数searchorder()、输出比赛结果函数print()。 其实现的功能具体如下: 1、建立结点函数creatone():录入选手信息(姓名、分数)建立选手结点,即创建人物。 2、建立链表函数inseart():将各个结点按序号链接在一起,构建一个链表。 3、排出名次函数sorts():对链表中分数进行排序,分数越少名次越高。将得到的名次赋给各个结点中的order。 4、保存函数save():对输出到屏幕的选手信息按指定路径加以保存。 5、按姓名查询函数searchname():输入姓名,到链表中去比对,成功则输出此人信息,否则输出无此人信息。按序号、名次查询结构与此相同。 6、输出比赛结果函数print():按名次输出各个选手的信息。 二、程序流程图 总体结构图 开始 调用system()为屏幕即字体设置颜色 定义一些变量、为头结点分配空间并使它的next指向空 无条件循环 choice = menu() choice =1 1 P!=NULL 调用creatone() insert()函数 调用sorts() save()函数 Choice!=4 choice=2 1 查询菜单 查询函数 调用print() Choice=3 结束 程序运行情况: 主菜单 录入选手信息: 查询子菜单: 名次查询: 输出比赛结果: 三、核心技术的实现说明及相应程序段 本程序采用链表结构,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。在这些函数当中,排出名次函数sorts()是程序中最为核心的部分,下面对此函数加以说明。 此函数的目标是对选手链表按分数进行排名,为结构体中的order项赋值。具体的程序说明如下: //--------------排序函数---------------- struct player * sorts( struct player * head,int n ) { struct player * min; struct player * p; int count = 0; int order = 1; min = head->next; p = min->next; while ( count<n ) { while ( p!=NULL ) { if( min->score>p->score && p->order==0 ) min = p; p = p->next; } min->order = order; count++; p = min->next; while ( p!=NULL ) { if ( min->score==p->score ) { p->order = order; count++; } p = p->next; } order++; min = head->next; if ( min->order!=0 ) min = min->next; p = min->next; } return head; } 四、个人总结 在设计此程序时由于已经1年没复习C语言知识了忘记了好多语句,所以我又把《C程序设计》阅读了几边把忘记的知识补充上,这使我的C语言基础知识更牢靠了。这次C程序的设计不同于以前,其要求更高了,我设计了一个小程序就用了5天的时间,现在知道了做程序员是很辛苦的。 此次我设计的程序通过了测试,基本能达到课程设计要求,本人知识有限程序可能还有不合理之处望老师批评指正。 五、参考文献 1 谭浩强 C程序设计 北京:清华大学出版社,2005 2 谭浩强 C程序设计题解与上机指导北京:清华大学出版社,2005 六、源程序 //======================================================= //在选美大奖赛的半决胜赛现场,有一批选手参加比赛,比赛的规则是最 //后得分越高,名次越低。当半决决赛结束时,要在现场按照选手的出场 //顺序宣布最后得分和最后名次,获得相同分数的选手具有相同的名次, //名次连续编号,不用考虑同名次的选手人数。 //======================================================= //--------------头文件---------------- #include <stdio.h> #include <string.h> #include <malloc.h> #include <windows.h> //--------------宏定义---------------- #define L sizeof(struct player) //--------------结构体---------------- struct player { int id; //序号 int order; //名次 char name[30]; //姓名 int score; //分数 struct player * next; }; //--------------菜 单---------------- int menu() { int a; printf("\n\n\n 欢迎进入选美成绩管理系统! \n\n\n"); printf(" **************MENU************\n"); printf(" 1、选手信息录入\n"); printf(" 2、选手信息查询\n"); printf(" 3、输出比赛结果\n"); printf(" 4、退 出\n"); printf(" ******************************\n"); do { printf("请输入1-4中的一个选项:"); scanf("%d",&a); }while(a>4||a<1); return(a); } /*-----------------------------------1-子菜单函数---------------------------*/ int menu1() { int a; printf(" ************MENU**********\n"); printf(" (1)、按姓名查询\n"); printf(" (2)、按序号查询\n"); printf(" (3)、按名次查询\n"); printf(" (4)、返回上一菜单\n"); printf(" **************************\n"); do { printf("请输入1-4中的一个选项:"); scanf("%d",&a); }while(a>4||a<1); return(a); } //----------------------建立结点----------------------- struct player * creatone( struct player * p,int i ) { p = (struct player *)malloc(L); /*为新结点分配空间*/ printf("%d号选手姓名: ",++i); /*输入信息*/ scanf("%s",p->name); if( strcmp( p->name,"end" )==0 ) /*判断是否停止输入*/ p = NULL; else { printf("最后得分: "); scanf("%d",&p->score); p->id = i; p->order = 0; p->next = NULL; printf("\n"); } return p; } //--------------------------建立链表------------------------------- struct player * insert( struct player * head,struct player * p ) { struct player * q; q = head; while ( q->next!=NULL ) q = q->next; q->next = p; return head; } //--------------排序函数---------------- struct player * sorts( struct player * head,int n ) { struct player * min; struct player * p; int count = 0; int order = 1; min = head->next; p = min->next; while ( count<n ) { while ( p!=NULL ) { if( min->score>p->score && p->order==0 ) min = p; p = p->next; } min->order = order; count++; p = min->next; while ( p!=NULL ) { if ( min->score==p->score ) { p->order = order; count++; } p = p->next; } order++; min = head->next; if ( min->order!=0 ) min = min->next; p = min->next; } return head; } //-----------------按名字查找----------------- void searchname( struct player * head ) { struct player * q; char name[30]; q = head->next; printf ( "请输入要查询的选手的姓名:" ); scanf ( "%s",name ); while ( q!=NULL && strcmp(q->name,name)!=0 ) q = q->next; if ( q==NULL ) printf ("没有此人的信息!\n\n"); else printf ("\n%d号选手%s\n 名 次:第%d名\n 最后得分:%d分\n\n\n",q->id,q->name,q->order,q->score); } //-----------------按序号查找----------------- void searchid( struct player * head ) { struct player * q; int id = 0; q = head->next; printf ( "请输入要查询的选手的序号:" ); scanf ( "%d",&id ); while ( q!=NULL && q->id!=id ) q = q->next; if ( q==NULL ) printf ("没有此人的信息!\n\n"); else printf ("\n%d号选手%s\n 名 次:第%d名\n 最后得分:%d分\n\n\n",q->id,q->name,q->order,q->score); } //-----------------按名次查找----------------- void searchorder( struct player * head ) { struct player * q; int order = 0; int n = 0; q = head->next; printf ( "请输入要查询的选手的名次:" ); scanf ( "%d",&order ); while ( q!=NULL ) { if ( q->order==order ) { printf ("\n%d号选手%s\n 名 次:第%d名\n 最后得分:%d分\n",q->id,q->name,q->order,q->score); n = 1; } q = q->next; } if ( n==0 ) printf ("没有此人的信息!\n\n"); } //--------------输出比赛结果---------------- void print( struct player * head,int n ) { struct player * p; int count = 0; int i = 1; while ( count<n ) { p = head->next; printf("\n\n第%d名:\n",i); while ( p!=NULL ) { if (p->order==i) { printf ("\n%d号选手%s 最后得分:%d分",p->id,p->name,p->score); count++; } p = p->next; } i++; } } /*----------------------------------保存文件-----------------------------*/ void save(struct player *head) { FILE *fp; struct player *p; p = head->next; if((fp = fopen("beauty.dat","wb"))==NULL) { printf("Can't open the file\n"); exit(0); } while(p!=NULL) { fwrite(p,L,1,fp); p = p->next; } fclose(fp); } //--------------主函数---------------- int main() { int system (const char *); system ("color 2e"); struct player * head; struct player * p; int choice; int i = 0; head = (struct player *)malloc(L); head->next = NULL; while(1) /*主菜单*/ { choice = menu(); switch(choice) { case 1: printf("请依次输入要录入的选手信息,在姓名栏输入end结束:\n\n"); while(1) { p = creatone( p,i ); if ( p==NULL ) break; i++; head = insert( head,p ); } sorts( head,i ); save( head ); break; case 2: do { choice = menu1(); switch (choice) { case 1: searchname( head ); break; case 2: searchid( head ); break; case 3: searchorder( head ); break; case 4: break; } }while( choice!=4 ); break; case 3: print( head,i ); break; case 4: exit(0); /*安全退出操作系统*/ } } return 0; }目 录 第一章 总 论 4 1.1 项目概况 4 1.2 编制依据 5 1.3 项目建设内容及规模 5 1.4 项目投资概算及资金筹措 14 1.5 产品方案 15 1.6 原材料及动力 16 1.7 主要技术经济指标 17 1.8 项目实施进度 18 1.9 研究结论 18 第二章 项目建设背景和必要性 19 2.1 项目建设背景 19 2.2 项目建设必要性 20 第三章 市场分析和预测 22 3.1 市场现状 22 3.2 **县市场 23 3.3 全国市场 23 3.4 鸡肉市场分析 24 3.5 鸡蛋市场分析 24 3.6 有机肥市场分析 24 3.7 销售预测 25 第四章 项目区概况 26 4.1 项目区基本情况 26 4.2 项目区畜牧业生产现状 27 4.3 水、电、路、通讯、技术等条件 27 第五章 项目建设方案 29 5.1 项目建设原则 29 5.2 项目设计依据的规范与规程 29 5.3 项目设计方案 30 5.4 工程设计标准 33 5.5 技术标准 36 5.6 设备选型 53 第六章 消防安全 57 6.1 消防依据 57 6.2 消防工作程序 57 6.3 消防安全流程 59 第七章 节水与节能 60 7.1 节水工程与科技措施 60 7.2 养殖节能措施 61 7.3 饲料加工节能措施 61 7.4 电气节能措施 62 7.5 减排 62 第八章 环境影响和保护措施 63 8.1 环境保护依据 63 8.2 项目区环境现状 63 8.3 环境影响评价 64 8.4 工程环境保护措施 64 8.5 “三废”处理措施 65 8.6 环境影响综合评价 65 第九章 项目组织管理 67 9.1 基本思路 67 9.2 组织管理 67 9.3 施工组织及质量管理 68 9.4 建设及运作方式 69 第十章 招投标方案 70 10.1 项目招标执行文件及标准 70 10.2 项目招标范围、组织形式及方式 70 10.3 招投标组织 71 第十一章 建设实施进度安排 73 11.1 项目建设期 73 11.2 项目建设进度安排 73 第十二章 投资估算和资金筹措 74 12.1投资概算 74 12.2 资金筹措方案 86 第十三章 财务分析评价 87 13.1 财务评价依据 87 13.2 经营收入、税金及附加估算 87 13.3 利润估算 90 13.4 财务现金流量分析 90 13.5 盈亏平衡分析 90 13.6 敏感性分析 91 13.7 评价小结 91 第十四章 效益分析 93 14.1 经济效益 93 14.2 社会效益 94 14.3 生态效益 95 第十五章 风险分析及保障措施 96 15.1 项目主要风险因素分析 96 15.2 保障措施 97 第十六章 结论与建议 101 16.1 可行性研究结论 101 16.2 问题与建议 101 21
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服