第4章 运动会编排系统(案例)

合集下载

数据结构课程设计--运动会成绩管理系统

数据结构课程设计--运动会成绩管理系统

目录1 需求分析 (1)1.1 问题描述 (1)1.2 基本要求 (1)1.3 测试数据 (1)2 概要设计 (2)2.1 数据结构 (2)2.2 程序模块及之间的调用关系 (2)3 详细设计 (3)3.1 数据类型定义 (3)3.2 函数之间的调用关系 (3)3.3 算法设计 (4)4 测试结果 (5)4.1多组数据输入与输出 (5)5 调试分析 (9)参考文献 (10)附录 (11)1 需求分析1.1 问题描述运动会分数统计系统参加运动会有n个学校,学校编号为1……n。

比赛分成m个男子项目,和w个女子项目。

项目编号为男子1……m,女子m+1……m+w。

不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。

(m<=20,n<=20)1.2 基本要求(1) 可以输入各个项目的前三名或前五名的成绩;(2) 能统计各系总分,(3) 可以按系编号、系总分、男女团体总分排序输出;(4) 可以按系编号查询系某个项目的情况;可以按项目编号查询取得前三或前五名的系。

1.3 测试数据(1) 输入:进入输入界面,根据提示,输入参赛学校个数,再输入:男子组和女子组个数。

再根据提示的选择菜单1:输入各项中的获奖学校。

(2) 输入:2查看输出结果。

(3) 输入:3查看输出结果。

(4) 输入:4查看输出结果。

(5) 输入:5查看输出结果。

(6) 输入:6查看输出结果。

(7) 输入:7根据提示输入系编号和项目编号。

(8) 输入:8根据提示输入系编号和项目编号。

(8) 输入:9,退出。

2.1 数据结构(1) 学校:代号,男子团体个数和总分,女子团体个数和总分。

(2) 运动项目:项目编号,男子项目,女子项目,前三名,前五名,第一名系的编号,第二名系的编号,第三名系的编号,第四名系的编号,第五名系的编号。

2.2 程序模块及之间的调用关系3.1算法设计主要算法的设计思想:本程序主要是使用数组来实现操作。

索美田径运动会编排管理系统 版本及功能区别

索美田径运动会编排管理系统  版本及功能区别

索美田径运动会编排管理系统》是目前唯一同时支持<日程表自动分配>、<秩序册一键生成>和<成绩管理与比赛日程完全一致>的软件,推荐使用导入报名或网络报名。

和同类软件相比:设置简单,而功能却更加强大;可以支持任意形式的号码使用模式和全程向导管理,实现了专业性与灵活性兼备,是国内最优秀的运动会管理软件。

超强可编辑功能:《国内唯一支持word和Excel两种格式秩序册生成的软件》,支持现场联网成绩输入、临时增减运动员、特殊加分方式等高级功能。

十多年无数次的运动会实践和在线服务确保您的成功使用!软件分为:注册码和软件狗硬件两种注册方式,其中软件狗版本可以在任意电脑上使用。

包含: 主机程序+Excel导入报名+秩序册一键生成功能+比赛表格打印、成绩管理。

增强版:支持最多50个参赛单位,6个年级或12个(男女)比赛组别,参赛人数不限,秩序册生成次数不限。

包含: 主机程序+Excel导入报名+秩序册一键生成功能+比赛表格打印、成绩管理。

专业版:参赛单位数量不限,6个年级或12个(男女)比赛组别,参赛人数不限,秩序册生成次数不限。

包含: 主机程序(不限参赛单位数量、支持全能自动查分)+Excel导入报名+秩序册一键生成功能+比赛表格打印、成绩管理网络版:参赛单位数量,比赛组别,参赛人数,秩序册生成次数均不限。

支持比赛现场联网处理,可以有效提高比赛现场管理效率。

包含: 主机程序+Excel导入报名+比赛现场联网处理程序+局域网客户端报名程序+秩序册一键生成功能+比赛表格打印、成绩高效管理豪华版:参赛单位数量,比赛组别,参赛人数,秩序册生成次数均不限。

支持比赛现场联网处理,适合于管理要求较高、大型高档次的运动会模式。

包含: 主机程序+互联网、校园网报名系统+Excel导入报名+比赛现场联网处理程序(高级)+现场成绩实时查询系统+秩序册一键生成功能+比赛表格打印、成绩高效管理(高级)运动会软件套装:包括豪华版的全部功能+高级应用组件(可选)+赛场信息一体化,适用于运动会管理高级用户。

运动会管理系统课程设计报告

运动会管理系统课程设计报告

目录一课程设计目的 (1)二课程设计任务和内容 (1)三系统设计方案 (2)3.1系统详细描述 (2)3.1.1系统设计背景 (2)3.1.2系统设计详细信息 (2)3.2功能模块划分 (2)3.2.1功能模块描述 (2)3.2.2输入项 (4)3.2.3输出项 (4)四系统实现与测试 (4)4.1主菜单实现 (5)4.1.1流程图 (5)4.1.2代码 (6)4.1.3主菜单测试 (7)4.2查询模块实现 (7)4.2.1流程图 (7)4.2.2代码 (8)4.2.3模块测试 (11)4.3显示数据模块实现 (12)4.3.1流程图 (12)4.3.2代码 (13)4.3.3模块测试 (15)4.4文件输出模块 (16)4.4.1代码 (16)4.4.2模块测试 (17)4.5显示排名模块 (17)4.5.1流程图 (17)4.5.2代码 (18)4.5.3模块测试 (19)五程序调试及错误 (19)六参考文献 (20)七附录 (20)一、课程设计的目的1)学习综合运用C高级语言课程和其他先修课程的知识,提高分析和解决实际问题的的能力,进一步巩固、加深和拓宽所学的知识;进一步加强结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解。

2)全面系统的学习面向对象程序设计的基本概念、基本语法和编程方法;独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。

3)掌握程序设计中的常用算法和C语言的编程技巧和上机调试程序的方法。

4)在参与一系列子项目的实践过程中,提高如何综合运用所学知识解决实际问题的能力,以及获得相关项目管理和团队合作等众多方面的具体经验。

二、课程设计任务和内容按照如下要求,运用C++语言,编写一套可用的较为完善的校际运动会管理系统软件(两人分模块合作)要求:初始化输入:学校总数及名字,运动员总数及运动员基本信息,运动会项目(为方便测试暂定为男女分别为4项,以项目一,项目二,项目三,项目四代表)各项目名次取法有以下几种:取前五名:第一名 7分,第二名 5分,第三名 3分,第四名2分,第五名 1分;取前三名:第一名 5分,第二名 3分,第三名 2分;用户自定义。

C语言课程程序设计——校际运动会管理系统

C语言课程程序设计——校际运动会管理系统

课程设计报告课程设计报告题目:校际运动会管理系统姓名:xx学号:XXXXX专业:XXXXX班级:XXXXX指导教师:XXXXX职称:XXXXX2012年06 月20 日目录摘要 (2)第1章需求分析 (2)第2章概要设计 (2)2.1系统总体设计框架 (2)2.2系统功能模块图 (3)第3章详细设计 (6)第4章主要源程序代码 (7)第5章调试分析过程描述 (17)第6章总结 (19)参考文献 (19)学生课程设计报告评分表 (20)校际运动会管理系统摘要本文介绍了利用C语言对校际运动会管理系统进行设计的过程,从系统总体框架,功能分析,模块设计与分析,类的设计与分析,功能测试等环节通过Microsoft Visual C++ 6.0对校际运动会管理系统进行详细的设计,并介绍了校际运动会管理系统如何运用,本次设计是基于C语言的程序设计,利用了C语言的强大功能,设计出的程序运行良好,可以在校际运动会管理系统等方面进行良好的运用。

关键词:C语言,班级档案管理系统,Microsoft Visual C++ 6.0一、需求分析(1)信息初始化输入:N─参赛学校总数,M─男子竞赛项目数, W─女子竞赛项目数;各项目名次取法有以下几种:①取前5名:第一名得分 7,第二名得分5,第三名得分3,第四名得分2,第五名得分1;②取前3名:第一名得分5,第二名得分3,第三名得分2;③用户自定义:各名次权值由用户指定。

(2)提醒用户填写比赛结果,输入各项目获奖运动员信息。

(3)所有信息记录完毕后,用户可以查询各个学校的比赛成绩,生成团体总分报表,察看参赛学校信息和比赛项目信息等。

二、概要设计分析整个系统,根据以上的需求分析及设计要求,可将整个系统的设计分为以下五个模块:信息输入、录入比赛结果、查询信息、退出.2. 系统功能模块图各功能模块设计模块(1)信息输入模块一是参赛学校信息,二是参赛运动员信息,三是比赛项目信息,分别输入并保存图2信息输入模块流程图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");printf("Choic your number(1-4):[ ]\b\b");scanf("%d",&n);if (n<1||n>4){w=1;getchar();}else w=0;}while (w==1);switch(n){case 1 : saveathlete(); break;// 保存运动员信息子函数case 2 : saveschool(); break;//保存学校信息子函数case 3 : saveprogram();break;//保存项目比赛信息子函数case 4 : exit(0);}}(2)结果录入模块(3)查询信息模块[分析]查询信息模块提供按不同方式查询各种信息机返回功能,其中各功能模块用菜单方式选择。

第四章-(SPL)系统布置设计

第四章-(SPL)系统布置设计

4.3.2工艺过程R分析
(3)设备选择 在制定工艺过程中,必须选择加工设备,
设备的类型及功能对工艺过程又有很大影响。 可按下式计算所需设备数量:
设备数量
负荷率
计划产量
成品率 1 故障率
工作时间 单件时间
4.3.3作业单位S划分
企业的各级组成部门称为作业单位。 一个企业应该有: 生产车间:直接承担企业的加工,装配生产任务。 仓储部门:原材料仓库,标准件与外购件库,半成品仓库,
第四章 系统布置设计
4.1 设施规划与设计概述 4.2 系统布置设计(SLP)的模式 4.3 SLP的分析方法 4.4 方案评价与选择
4.1设施规划与设计概述 设施规划与设计以企业生产系统的空间静态
结构(布局)为研究对象,从企业动态——物 流状况分析出发,探讨企业平面布置设计目标、 设计原则,着重研究设计方法与设计程序(步 骤),使企业达到以最少的投入获得最大效益 的目的。
4.1.1设施规划与设计的研究范围
场(厂)址选择
设施规划 与设计
设施 设计
布置设计 物料搬运系统设计 建筑设计 公用工程设计 信息系统设计
4.1.1设施规划与设计的研究范围
1)场址选择
场址选择就是对可供选择的地区的具体位置的有关 影响素进行分析和评价,达到场址最优化。
2)布置设计
对系统的各组成部分进行位置布置是设施规划与设 计中的中心内容。布置设计就是通过对系统物流、人流、 信息流进行分析,对建筑物、机器、设备、运输通道和 场地作出有机的组合与合理配置,达到系统内部布置最 优化。
4.3基本要素分析
4.3.1产品P——产量Q分析
• 企业生产的产品品种的多少以及每种产品产量的 高低,决定了工厂的生产类型,直接影响着工厂 的总体布局及生产设备的布置形式。

C语言课程设计-学校运动会管理系统(含调试图)计算机演示教学

C语言课程设计-学校运动会管理系统(含调试图)计算机演示教学

C语言课程设计-学校运动会管理系统(含调试图)计算机XXXXX大学XXXXXXXXX学院XXXX—XXXX学年第一学期《C程序设计》课程设计题目名称:学校运动会管理系统姓名学号班级指导教师编写日期成绩:目录1需求分析 (4)2总体设计 (4)3详细设计: (5)3.1信息录入 (5)3.2信息修改 (5)3.3信息删除 (6)3.4信息查询 (6)3.5信息输出及退出系统 (7)4程序运行结果及分析 (7)6参考文献 (8)7致谢 (8)1需求分析在进行管理得方法和手段方面,最有效得工具就是电脑管理了系统实现运动,会的信息记录和存储,进行全面自动管理,大幅度提高了信息管理得效率,使得运动会能够更加圆满得完成。

因此,校运动会管理系统显得尤为重要。

2总体设计本文研究开发的运动会管理系统用于支持用于查询各个学校在运动会中的成绩。

有几种目标:●支持输入各个项目的基本信息;●可以按比赛项目编号或名称查询、删除、修改信息;●可以按运动员编号或姓名查询、删除、修改信息;●数据输入信息并能随时查询。

3详细设计:3.1信息录入3.2信息修改3.3信息删除3.4信息查询3.5信息输出及退出系统4程序运行结果及分析5结论与心得由于对较为复杂的系统程序不能很灵活地开发,在整个过程中遇到了不少的困难;但整个实践过程使我们在C编程方面有了更好的了解,同时在程序开发方面的能力得到了一定的提高,而且还增强了我们对于各种实践的兴趣。

整个实践过程让我们认识到:勤奋与实践最能挺升自身的能力。

6参考文献[1]谭浩强,《C程序设计(第四版)》,北京:清华大学出版社,2010.67致谢能够完成这次课程设计要感谢c语言课程的老师,他渊博的知识、开阔的视野和敏锐的思维给了我深深的启迪。

这篇论文是在老师的精心指导和大力支持下才完成的。

最后还要感谢各位同学的帮助。

8附源代码#include<iostream>#include<fstream>#include<string>using namespace std;void fun1(){cout<<"******************************"<<endl;cout<<endl; cout<<"******学校运动会管理系统******"<<endl;cout<<"----数据录入请按:1----"<<endl;cout<<"----数据修改请按:2----"<<endl;cout<<"----数据删除请按:3----"<<endl;cout<<"----数据查询请按:4----"<<endl;cout<<"----数据显示请按:5----"<<endl;cout<<"----退出系统请按:6----"<<endl;cout<<endl; cout<<"*******************************"<<endl;cout<<endl; cout<<"*****请输入一个数据,并按回车键!*****"<<endl;}class Match{public: Match *next;//为创建链表做准备int number; //比赛项目编号char call[10]; //比赛项目名称char time[10]; //比赛时间char place[20]; //比赛地点friend void input1();};void input1(){ofstream fout("e:\\比赛项目.dat",ios::app);char ch; Match a;do { cout<<"请分别输入比赛项目编号、名称、比赛时间、比赛地点."<<endl; cin>>a.number>>a.call>>a.place>>a.time;a.next=NULL;fout.write((char *)&a,sizeof(Match));cout<<"是否继续输入,如果继续键入Y|y"<<endl;cin>>ch;}while(ch=='y'||ch=='Y');fout.close();}Match *head1; void creat(){head1=NULL;Match *p,*q=head1;ifstream fin("e:\\比赛项目.dat",ios::in);if(!fin){cout<<"文件打开失败!"<<endl; exit(0);}p=new Match;fin.read((char*)p,sizeof(Match));while(!fin.eof()){if(head1==NULL) head1=p;else q->next=p;q=p;p=new Match;fin.read((char*)p,sizeof(Match));}fin.close();} int change1() //对比赛项目相关信息修改{ cout<<"您正在进行修改比赛项目有关事项操作!"<<endl; creat();Match *p1;p1=head1;cout<<"请输入要修改比赛项目的编号:"<<endl;int number1;//要修改的比赛项目编号 int sign=0;//设置的标记变量 cin>>number1;while(p1!=NULL){ if(p1->number==number1) {sign=1;break;}p1= p1->next;}if (sign==0) cout<<"没有找到要修改的记录!"<<endl;else{cout<<"请选择要修改比赛项目的那些信息"<<endl;cout<<"------修改比赛项目的编号----1"<<endl;cout<<"------修改比赛项目的名称----2"<<endl;cout<<"------修改比赛时间----3"<<endl;cout<<"------修改比赛地点----4"<<endl;cout<<"请输入对应信息的编号"<<endl;int a;int nu;//新的整形数据 char info[20];//新的字符数组 cin>>a;switch(a) { case 1:cout<<"请输入新的比赛编号:"<<endl;cin>>nu;p1->number=nu;cout<<"比赛项目编号修改成功!"<<endl;break;case 2:cout<<"请输入新的比赛项目名称:"<<endl;cin>>info;strcpy(p1->call,info);cout<<"比赛项目名称修改成功!"<<endl;break;case 3:cout<<"请输入新的比赛时间:"<<endl;cin>>info;strcpy(p1->time,info);cout<<"比赛项目时间修改成功!"<<endl;break;case 4:cout<<"请输入新的比赛地点:"<<endl;cin>>info;strcpy(p1->place,info);cout<<"比赛项目地点修改成功!"<<endl;break;ofstream fout("e:\\比赛项目.dat",ios::out);p1=head1;while(p1!=NULL){fout.write((char*)p1,sizeof(Match));p1=p1->next;}fout.close();}return 0;}int delete1() //对比赛项目相关信息进行删除{creat();Match *p1,*p2;p2=p1=head1;cout<<"请选择要删除比赛项目的那些信息"<<endl;cout<<"------删除比赛项目的编号----1"<<endl;cout<<"------删除比赛项目的名称----2"<<endl;cout<<"请输入对应信息的编号"<<endl;int n;cin>>n;int num,flag=0;char cal[10];switch(n) {case 1: cin>>num;while(p1!=NULL){if(p1->number==num){flag=1;break;}p2=p1;p1= p1->next;}if (flag==0) cout<<"没有找到要删除的记录!"<<endl;p2->next=p1->next;case 2: cin>>cal;while(p1!=NULL){if(!strcmp(p1->call,cal)){flag=1;break;} p2=p1;p1= p1->next;}if (flag==0) cout<<"没有找到要删除的记录!"<<endl;elsep2->next=p1->next;} ofstream fout("e:\\比赛项目.dat",ios::out);p1=head1;while(p1!=NULL){fout.write((char*)p1,sizeof(Match));p1=p1->next;}fout.close();return 0;}void print1(){creat();Match *p1=head1;cout<<"请分别输出比赛项目编号、名称、比赛时间、比赛地点."<<endl; break;case 2:cout<<"请输入新的比赛项目名称:"<<endl;cin>>info;strcpy(p1->call,info);cout<<"比赛项目名称修改成功!"<<endl;break;case 3:cout<<"请输入新的比赛时间:"<<endl;cin>>info;strcpy(p1->time,info);cout<<"比赛项目时间修改成功!"<<endl;break;case 4:cout<<"请输入新的比赛地点:"<<endl;cin>>info;strcpy(p1->place,info);cout<<"比赛项目地点修改成功!"<<endl;break;}ofstream fout("e:\\比赛项目.dat",ios::out);p1=head1;while(p1!=NULL){fout.write((char*)p1,sizeof(Match));p1=p1->next;}fout.close();}return 0;}int delete1() //对比赛项目相关信息进行删除{creat();Match *p1,*p2;p2=p1=head1;cout<<"请选择要删除比赛项目的那些信息"<<endl;cout<<"------删除比赛项目的编号----1"<<endl;cout<<"------删除比赛项目的名称----2"<<endl;cout<<"请输入对应信息的编号"<<endl;int n;cin>>n;int num,flag=0;char cal[10];switch(n) {case 1: cin>>num;while(p1!=NULL){if(p1->number==num){flag=1;break;}p2=p1;p1= p1->next;}if (flag==0) cout<<"没有找到要删除的记录!"<<endl;else p2->next=p1->next;case 2: cin>>cal;while(p1!=NULL){if(!strcmp(p1->call,cal)){flag=1;break;}p2=p1;p1= p1->next;}if (flag==0) cout<<"没有找到要删除的记录!"<<endl;else p2->next=p1->next;}ofstream fout("e:\\比赛项目.dat",ios::out);p1=head1;while(p1!=NULL){fout.write((char*)p1,sizeof(Match));p1=p1->next;} fout.close();return 0;}void print1(){creat();Match *p1=head1;cout<<"请分别输出比赛项目编号、名称、比赛时间、比赛地点."<<endl;while(p1!=NULL){cout<<p1->number<<'\t'<<p1->call<<'\t'<<p1->time<<'\t'<<p1->place<<endl; p1=p1->next;}}void find1(){creat();Match *p1;p1=head1;int sign=0;//设置的标记变量 cout<<"请选择要查询比赛项目的哪些信息"<<endl; cout<<"------按比赛项目的编号查询----1"<<endl;cout<<"------按比赛项目的名称查询----2"<<endl;cout<<"------按比赛时间查询----3"<<endl;cout<<"------按比赛地点查询----4"<<endl;cout<<"请输入对应信息的编号"<<endl;int a;int nu;//查询整形数据条件char info[20];//查询字符型数据条件 cin>>a;switch(a){case 1:cout<<"请输入要查询的比赛编号:"<<endl;cin>>nu;while(p1!=NULL){if(p1->number==nu){sign=1;break;}p1= p1->next;}if (sign==0) cout<<"没有找到要查询的记录!"<<endl;else cout<<p1->number<<'\t'<<p1->call<<'\t'<<p1->time<<'\t'<<p1->place<<endl;break;case 2:cout<<"请输入要查询的比赛项目名称:"<<endl;cin>>info while(p1!=NULL) { if(p1->call==info) {sign=1;break;} p1= p1->next;}if (sign==0) cout<<"没有找到要查询的记录!"<<endl;elsecout<<p1->number<<'\t'<<p1->call<<'\t'<<p1->time<<'\t'<<p1->place<<endl;break;case 3:cout<<"请输入要查询的比赛时间:"<<endl;cin>>info;while(p1!=NULL){if(!strcmp(p1->time,info)) {sign=1;break;} p1= p1->next;}if (sign==0) cout<<"没有找到要查询的记录!"<<endl;elsecout<<p1->number<<'\t'<<p1->call<<'\t'<<p1->time<<'\t'<<p1->place<<endl; break;case 4:cout<<"请输入要查询的比赛地点:"<<endl; cin>>info;while(p1!=NULL){if(!strcmp(p1->place,info)){sign=1;break;}p1= p1->next;}if (sign==0) cout<<"没有找到要查询的记录!"<<endl;elsecout<<p1->number<<'\t'<<p1->call<<'\t'<<p1->time<<'\t'<<p1->place<<endl;break;}}class Athlet{public: Athlete *next;int number;//运动员的编号 char name[10];//运动员的姓名 char part[20];//运动员所属工作单位或省份 char sex[20];//运动员性别 int age;//运动员年龄 friend void input2();};void input2(){ofstream fout("e:\\运动员.dat",ios::app);char ch;Athlete b;do{cout<<"请分别输入运动员编号、姓名、性别、年龄、所属省份或工作单位."<<endl; cin>>b.number>>>>b.sex>>b.age>>b.part;b.next=NULL;fout.write((char *)&b,sizeof(Athlete));cout<<"是否继续输入,如果继续键入Y|y"<<endl;cin>>ch;}while(ch=='y'||ch=='Y');}Athlete *head4; void creat2(){head4=NULL;Athlete *p,*q=head4;ifstream fin("e:\\运动员.dat",ios::in);if(!fin){ cout<<"文件打开失败!"<<endl; exit(0); } p=new Athlete;fin.read((char*)p,sizeof(Athlete));while(!fin.eof()){ if(head4==NULL) head4=p;else q->next=pq=p;p=new Athlete;fin.read((char*)p,sizeof(Athlete));}fin.close();}int change2() //对运动员相关信息修改{ cout<<"您正在进行修改运动员基本信息操作!"<<endl;creat2();Athlete *p1;p1=head4;cout<<"请输入要修改运动员的编号:"<<endl;int number1;//要修改的运动员编号 int sign=0;//设置的标记变量 cin>>number1;while(p1!=NULL){if(p1->number==number1){sign=1;break;}p1= p1->next;}if (sign==0) cout<<"没有找到要修改的记录!"<<endl;else{cout<<"请选择要修改运动员的哪些信息"<<endl;cout<<"------修改运动员的编号----1"<<endl;cout<<"------修改运动员的姓名----2"<<endl;cout<<"------修改运动员所属工作单位或省份----3"<<endl; cout<<"------修改运动员性别----4"<<endl;cout<<"------修改运动员年龄----4"<<endl;cout<<"请输入对应信息的编号"<<endl;int a;int nu;//新的整形数据 char info[20];//新的字符数组 cin>>a;switch(a){case 1:cout<<"请输入新的运动员编号:"<<endl;cin>>nu;p1->number=nu;cout<<"运动员的编号修改成功!"<<endl;break;case 2:cout<<"请输入新的运动员姓名:"<<endl;cin>>info;strcpy(p1->name,info);cout<<"运动员姓名修改成功!"<<endl;break;case 3:cout<<"请输入新的运动员所属工作单位或省份:"<<endl;cin>>info;strcpy(p1->part,info);cout<<"运动员所属工作单位或省份修改成功!"<<endl;break;case 4:cout<<"请输入新的性别:"<<endl;cin>>info;strcpy(p1->sex,info);cout<<"运动员性别修改成功!"<<endl;break;case 5:cout<<"请输入新的年龄:"<<endl;cin>>nu;p1->age=nu, cout<<"运动员年龄修改成功!"<<endl;break;}ofstream fout("e:\\运动员.dat",ios::out);p1=head4;while(p1!=NULL){fout.write((char*)p1,sizeof(Athlete));p1=p1->next;}fout.close();}return 0;}int delete2()//对运动员相关信息进行删除{creat2();Athlete *p1,*p2;p2=p1=head4;cout<<"请选择要删除运动员的哪些信息"<<endl;cout<<"------删除运动员的编号----1"<<endl;cout<<"------删除运动员的姓名----2"<<endl;cout<<"请输入对应信息的编号"<<endl;int n;cin>>n;int num,flag=0;char na[10];switch(n) {case 1: cin>>num;while(p1!=NULL){if(p1->number==num){flag=1;break;}p2=p1;p1= p1->next;}if (flag==0) cout<<"没有找到要删除的记录!"<<endl;elsep2->next=p1->next;case 2: cin>>na;while(p1!=NULL){if(!strcmp(p1->name,na)){flag=1;break;}p2=p1;p1= p1->next;}if (flag==0) cout<<"没有找到要删除的记录!"<<endl;else p2->next=p1->next;}ofstream fout("e:\\运动员.dat",ios::out);p1=head4; while(p1!=NULL)}fout.write((char*)p1,sizeof(Athlete));p1=p1->next;}fout.close();return 0;}void find2(){ creat2();Athlete *p1;p1=head4;int sign=0;//设置的标记变量 cout<<"请选择要查询运动员的哪些信息"<<endl; cout<<"------按运动员的编号查询----1"<<endl;cout<<"------按运动员的姓名查询----2"<<endl;cout<<"请输入对应信息的编号"<<endl;int a;int nu;//查询整形数据条件 char info[20];//查询字符型数据条件cin>>a;switch(a){ case 1:cout<<"请输入要查询的运动员编号:"<<endl;cin>>nu;while(p1!=NULL){if(p1->number==nu){sign=1;break;}p1= p1->next;}if (sign==0) cout<<"没有找到要查询的记录!"<<endl;elsecout<<p1->number<<'\t'<<p1->name<<'\t'<<p1->part<<'\t'<<p1->sex<<'\t'<<p1->age<<endl;break;case 2:cout<<"请输入要查询的运动员姓名:"<<endl;cin>>info;while(p1!=NULL){if(p1->name==info) {sign=1;break;} p1= p1->next;}if (sign==0) cout<<"没有找到要查询的记录!"<<endl;elsecout<<p1->number<<'\t'<<p1->name<<'\t'<<p1->part<<'\t'<<p1->sex<<'\t'<<p1->age<<endl;break;}}void print2(){ creat2();Athlete *p1=head4;cout<<"请分别输出运动员编号、姓名、所属省份或工作单位、性别、年龄."<<endl;while(p1!=NULL){cout<<p1->number<<'\t'<<p1->name<<'\t'<<p1->part<<'\t'<<p1->sex<<'\t'<<p1->age<<endl; p1=p1->next;}}class Message { public: Message *next;char name[10];//运动员姓名 char avent[10];//运动员参加的某比赛项目名称int score //成绩 int ca;//名次 friend void input3();};void input3(){ofstream fout("e:\\比赛赛事.dat",ios::app);char ch;Message c;do{ cout<<"请分别输入参赛运动员姓名、比赛名称、比赛成绩、比赛名次."<<endl; cin>>>>c.avent>>c.score>>c.ca;c.next=NULL;fout.write((char *)&c,sizeof(Message));cout<<"是否继续输入,如果继续键入Y|y"<<endl;cin>>ch;}while(ch=='y'||ch=='Y');fout.close();}Message *head7;void creat3(){head7=NULL;Message *p,*q=head7;{ifstream fin("e:\\比赛赛事.dat",ios::in);if(!fin){ cout<<"文件打开失败!"<<endl; exit(0);} p=new Message;fin.read((char*)p,sizeof(Message));while(!fin.eof()){if(head7==NULL) head7=p;elseq->next=p;q=p;p=new Message;fin.read((char*)p,sizeof(Message));}fin.close();}int change3() //修改比赛赛事信息{cout<<"您正在进行修改比赛赛事有关事项操作!"<<endl;creat3();Message *p1;p1=head7;cout<<"请输入参赛运动员姓名及参赛项目名称! "<<endl;char na[20];char info[20];int sign=0;//设置的标记变量cin>>na>>info;while(p1!=NULL){if((p1->name==na)&&(p1->avent==info)) {sign=1;break;}p1= p1->next;}if (sign==0) cout<<"没有找到要修改的记录!"<<endl;else{cout<<"请选择要修改比赛赛事的哪些信息"<<endl;cout<<"------修改参赛运动员的姓名----1"<<endl;cout<<"------修改比赛项目的名称----2"<<endl;cout<<"------修改比赛成绩----3"<<endl;cout<<"------修改比赛名次----4"<<endl;cout<<"请输入对应信息的编号"<<endl;int a;int nu;//新的整形数据 char info[20];//新的字符数组 cin>>a;switch(a){case 1:cout<<"请输入新的参赛运动员姓名:"<<endl;cin>>info;strcpy(p1->name,info);cout<<"参赛运动员姓名修改成功!"<<endl; break;case 2:cout<<"请输入新的比赛项目名称:"<<endl;cin>>info;strcpy(p1->avent,info);cout<<"比赛项目名称修改成功!"<<endl;break;case 3:cout<<"请输入新的比赛成绩:"<<endl;cin>>nu;p1->score=nu;break;}ofstream fout("e:\\比赛赛事.dat",ios::out);p1=head7;while(p1!=NULL)cout<<"比赛项目成绩修改成功!"<<endl;break;case 4功!"<<endl;{fout.write((char*)p1,sizeof(Message));p1=p1->next;}fout.close();} return 0;}int delete3() //对比赛赛事相关信息进行删除{creat3();Message *p1,*p2;p2=p1=head7;cout<<"请输入要删除的参赛运动员姓名及比赛项目名称:"<<endl;int flag=0;char na[20];char info[20];cin>>na>>info;while(p1!=NULL){if((p1->name==na)&&(p1->avent==info)){flag=1;break;} p2=p1;p1= p1->next;}if (flag==0) cout<<"没有找到要删除的记录!"<<endl;elsep2->next=p1->next;ofstream fout("e:\\比赛赛事.dat",ios::out);p1=head7; while(p1!=NULL){fout.write((char*)p1,sizeof(Message));p1=p1->next;}fout.close();return 0;}void print3(){ creat3();Message *p1=head7;cout<<"请分别输出比赛参赛运动员姓名、比赛项目名称、比赛成绩、比赛名次."<<endl;while(p1!=NULL){cout<<p1->name<<'\t'<<p1->avent<<'\t'<<p1->score<<'\t'<<p1->ca<<endl; p1=p1->next;20 }}void find3(){creat3();Message *p1;p1=head7;int sign=0;//设置的标记变量 cout<<"请输入要查询的参赛运动员姓名和比赛项目名称! "<<endl; char na[20];char info[20];//查询字符型数据条件 cin>>na>>info;while(p1!=NULL) { if((p1->name==na)&&(p1->avent==info)) {sign=1;break;} p1= p1->next;}if (sign==0) cout<<"没有找到要查询的记录!"<<endl;else}int find()//进行查找{cout<<endl;cout<<"\t\t\t请输入要查询的信息:"<<endl;cout<<"\t\t比赛项目信息查询请按:1"<<endl;cout<<"\t\t运动员信息查询请按:2"<<endl;cout<<"\t\t比赛赛事信息查询请按:3"<<endl;int j;cin>>j;switch(j) { case 1:find1();break;case 2:find2();break;case 3:find3();break;default:cout<<"输入数据有误!"<<endl;cout<<p1->name<<'\t'<<p1->avent<<'\t'<<p1->score<<'\t'<<p1->ca<<endl;}return 0;}int input(){ cout<<endl;cout<<"\t\t\t请输入要输入的信息:"<<endl;cout<<"\t\t比赛项目信息输入请按:1"<<endl;cout<<"\t\t运动员信息输入请按:2"<<endl; cout<<"\t\t比赛赛事信息输入请按:3"<<endl;int j;cin>>j;switch(j) { case 1:input1();break;case 2:input2();break;case 3:input3();break;default:cout<<"输入数据有误!"<<endl;}return 0;}int print(){ cout<<endl;cout<<"\t\t\t请输入要显示输出的信息:"<<endl;cout<<"\t\t比赛项目信息显示输出请按:1"<<endl; cout<<"\t\t运动员信息显示输出请按:2"<<endl; cout<<"\t\t比赛赛事信息显示输出请按:3"<<endl;int j;cin>>j;switch(j){ case 1:print1();break;case 2:print2();break;case 3:print3();break;default:cout<<"输入数据有误!"<<endl;}return 0;}int change(){cout<<endl;cout<<"\t\t\t请输入要修改的信息:"<<endl;cout<<"\t\t比赛项目信息修改请按:1"<<endl;cout<<"\t\t运动员信息修改请按:2"<<endl;cout<<"\t\t比赛赛事信息修改请按:3"<<endl;int j; cin>>j;switch(j){ case 1:change1();break;case 2:change2();break;case 3:change3();break;22 default:cout<<"输入数据有误!"<<endl;}return 0;}int deleted() { cout<<endl;cout<<"\t\t\t请输入要删除的信息:"<<endl;cout<<"\t\t比赛项目信息删除请按:1"<<endl; cout<<"\t\t运动员信息删除请按:2"<<endl;cout<<"\t\t比赛赛事信息删除请按:3"<<endl;int j;cin>>j;switch(j){case 1:delete1();break;case 2:delete2();break;case 3:delete3();break;default:cout<<"输入数据有误!"<<endl;}return 0;}int main(){ int i;do{fun1(); cin>>i;switch(i) { case 1:input();break; case 2:change();break;case 3:deleted();break;case 4:find();break;case 5: print();break;case 6: return 0;default:cout<<"您输入数据有误!"<<endl;}}while(1);return 0;}。

运动会管理系统资料

淮海工学院计算机工程学院课程设计报告设计名称: C语言课程设计姓名: *** 学号: 20141228** 专业班级:软件工程142系(院):软件工程系设计时间:2015.6.22-2015.7.5设计地点:计算机工程学院机房、教室、学生宿舍、图书馆表,完成读入后,关闭文件。

从链表的头节点开始查找该项成绩记录,查找到后,删除该项成绩,以成任务,怎么才能找到课堂所学与实际应用的最佳结合点?怎么才能让自己的程序在篇幅上简单,在使用价值上丰富?怎样让自己的业余更靠近专业?怎样让自己的计划更具有序性,而不会忙无一用?经过一段时间的考虑,仔细地研究课本,才做到了心中有数,才了解了C语言课程设计的真正用意——培养自学能力,养成程序编辑的好习惯。

我从来不相信车到山前必有路的说法,认为那只是懒惰者自寻懒惰的借口,我要积极,要把握,要努力。

回顾起此次课程设计,至今我仍感慨颇多,的确,从从拿到题目到完成整个编程,从理论到实践,在整整半个学期的日子里,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体……通过这次课程设计之后,几乎包括了《c语言程序设计》的所有知识。

我懂得了怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪,黑夜过去了,我们收获的是黎明。

在本次实践中,给我教训最大的是一定要先审好题目,刚拿到题目的时候我就照着课本上的程序敲了起来,等到做到一半的时候才发现自己少看了一个删除信息的功能,这就使得我刚开始使用的结构体数组失去了作用,我只好重新开始,用链表来完成作业。

C语言课程设计报告—校际运动会管理系统_3

C语言课程设计校际运动会管理系统C语言程序设计报告书一、C 语言程序设计的目的二、巩固已学习的内容, 复习程序设计和上机调试的基本方法方法。

通过学习一个综合程序的设计与编写, 使学生能够在较短的时间内掌握综合程序设计的基本步骤和方法。

通过学习课本上的习题, 举一反三, 学会构建程序的柜架以及部分常用的算法代码的收发室。

在加强的基础上, 动手两个程序的完整设计与编写。

三、课程设计报告正文(一)、题目(1)信息初始化, 输入:N-参赛学校总数, M-男子竞赛项目数, W-女子竞赛项目数;各项目名次取法有以下几种:《1》取前5名: 第1名得分7, 第2名得分5, 第3名得分3, 第4名得分2, 第5名得分1. 《2》取前3名: 第1名得分5, 第2名得分3, 第3名得分2.《3》用户自定义: 各名次权值由用户指定。

(2)提醒用户填写比赛结果, 输入各项目获奖运动员的信息。

(3)所有信息记录完毕后, 用户可以查询各个学校的比赛成绩, 生成团体总分报表, 查看参赛学校信息和比赛项目信息等。

[提示](1)总体设计: 系统设计为信息输入模块、比赛结果录入模块和查询模块三个模块。

(2)数据结构采用结构体数组, 包括学校、项目、运动员三个结构体。

比如学校结构体成员包括学校校名、竞赛项目、得分项目结构体成员包括项目名、权值。

(二)题目的总体要求是要建立三个模块: 信息输入模块、比赛结果录入模块以及查询模块。

在建立完之后, 要求该程序能够在用户将各种必要的信息记录之后, 用户可以查询所有学校的比赛成绩, 而且也可以生成团体总分表, 查看参赛学校信息和比赛项目信息等一切录入的信息, 为此, 要示编程人员能通过一些具体的程序将以上的功能加以实现。

在建立三个模块的大前提下, 我们将采用结构体, 循环体, 指针和各种函数来实现这种功能, 在数据结构体中, 要采用结构体数组, 其中包括学校、项目、运动员三个结构体。

学校结构体成员包括学校校名、竞赛项目、得分项目结构体成员包括项目名、权值。

学校运动会管理系统

学校运动会管理系统:开发背景-----组织一次运动会既繁琐又复杂:从各参赛队运动员运动项目报名到项目编排、从运动员分组编排到竞赛日程表的确定、从各类竞赛用表的制作到秩序册的打印、从比赛成绩记录到排出名次打印、从团体总分的计算到成绩册的汇总……不仅要反复抄写,花费大量人力与时间,且效率低下易出错,还难免出错。

本系统的开发是为促进校园信息化管理,方便广大院校的田径运动会信息管理而研制开发的,旨在减轻各大院校机关体育教学管理工作者的工作负担,协助他们更科学、更简单地编排田径运动会,提高工作效率,从而使体育教育工作更上一个台阶。

需求分析一、功能描述主要目标:根据国家田径运动会的规则,结合学校实际情况,开发适用于学校的田径运动会管理系统。

管理系统能实现:1、参赛队伍情况报名登记(包括参赛队伍代表人和运动员报名、竞赛分组、参赛队及运动员自动编号、生成秩序册等功能)2、竞赛成绩管理(包括运动员检录?、预赛成绩管理、决赛成绩管理和成绩报表打印等功能)3、汇总统计(包括生成团体总分表、参赛队伍队员检录情况?、各组项目的前八名运动员成绩报表与打印)4、查询子系统(包括运动员基本信息查询、参赛单位查询、成绩查询和得分查询等功能)5、生成奖状。

二、主要输出报表根据对以往手工操作的报表分析,系统必须要实现输出一下几张报表:(1)各参赛队人数统计表。

用于统计各参赛单位的运动员男女个数及该单位的运动员编码情况。

(2)代表队情况表。

详细列出各参赛单位的负责人和联系方式、运动员的姓名及其编码。

(3)竞赛分组表。

根据不同组别和运动员所报的项目进行分组比赛。

(4)竞赛日程表。

根据运动会组委会规则,系统对运动日程进行安排。

(5)运动会竞赛情况表。

详细列出本次运动会竞赛情况(新的比赛记录情况……)(6)运动员成绩单。

分别列出各参赛队的运动员比赛成绩。

(7)各奖项奖状生成打印。

各赛项前六名、体育道德风尚奖、团体前三名、……四、业务流程图根据运动会整体的业务流程,可分为运动会开幕前业务流程、运动会期间业务流程、运动会结束后的业务流程。

运动会信息管理系统设计与开发

运动会分数信息管理系统设计与开发1 引言本课程设计主要解决在运动会上,将各个比赛项目所有获得名次的同学的成绩输入;成绩查询;成绩修改;成绩删除;以及成绩输出。

1.1 课程设计目的进一步巩固《C\C++程序》,《VC++》课程所学的知识,特别加强数组,指针,结构体,文件数据类型的应用,熟悉面向过程的结构化和面向对象可视化程序设计方法,通过本次课程设计的实践,锻炼程序设计的能力以及用C/C++ C++解决实际问题的能力,为以后后续课程的学习打好基础。

1.2 程序功能说明该程序用于运动会上,涉及到比赛项目成绩的录入,某个学校在某个项目中获得成绩的查询,某个学校在某个运动项目中获得的成绩的修改,某个学校在某个运动项目中获得的成绩的删除,以及某个学校所有获得成绩的得分报表以及团体成绩的得分报表。

其中比赛成绩的录入可以按照运动项目举行的次序输入,也可以输入自己指定的运动项目的成绩;自己扩展的功能是“某个学校在某个项目中获得成绩的查询,某个学校在某个运动项目中获得的成绩的修改,某个学校在某个运动项目中获得的成绩的删除”三项,这三项都要求输入学校以及运动项目编号,通过这两项作为参数具体的函数可以查询、修改成绩或者是删除某项成绩记录,进而影响到最后得分报表的输出。

2 原理分析2.1 开发语言本课程涉及主要采用了C++。

C++语言是在C语言的基础上发展起来的,不仅继承了C语言的所有特点,而且引入了面向对象的程序设计方法[1]。

C++改进了程序涉及思路,将编程方式进化到面向对象进行程序设计这一新的思维过程[2]。

C++语言代表着对以往语言之精华的发展和提炼,并能很好的与C语言兼容,既支持面向对象的程序设计,也支持结构化的程序设计。

它修补了C语言中的一些漏洞,提供更好的类型检查和编译时的分析,提供了异常处理机制,简化了程序的出错处理,利用throw、try和catch关键字,出错处理程序不必与正常的代码紧密结合,提高了程序的可靠性和可读性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第4章运动会编排系统●了解运动会编排系统的开发环境和技术;●掌握利用PowerDesigner进行数据库的概念模型和物理模型设计的方法;●学习报表生成的方法和技术。

为了使体育工作者在运动会的举办中应用计算机技术提高效率,因此开发基于B/S模式的运动会编排系统。

本系统经过需求分析、功能模块设计、数据库设计、网站框架搭建、美工制作、代码编写、调试等过程,主要采用开发平台,C#语言,SQL Server 2000数据库等技术,结合软件工程开发思想,运用Visio、PowerDesigner、Visual Studio .NET 2005等开发软件,将新一代的开发模式应用到实践,充分体验项目开发的全部过程。

4.1系统概述本系统使用(C#)+ SQL Server 2000组合开发而成,其宗旨在于方便对运动会编排管理。

系统强调用户使用的便捷性,从界面设计上来说,友好且易于操作;采用了传统的三层结构设计,增强了系统的可重用性和可移植性,便于日后的维护和扩展。

4.1.1 开发目的和背景现今时代,计算机已经应用到各个学科、各个部门,我们的生活已经逐渐在信息化、自动化。

随着北京奥运会的举办,使全民关注体育、关注健康,积极投身到体育锻炼,各中小单位也积极举办运动会。

运动会编排工作存在着工作量大、数据繁杂等问题,因此我们开发运动会编排系统,结合体育运动中的规则等事项将运动会编排工作简单化、自动化、网络化并易于管理,从而大大降低了问题的复杂程度,使工作简单,节省人力、资源、时间。

4.1.2开发环境和技术本系统使用Visual 2005作为系统的开发平台,采用 技术,它是事件驱动编程模型,支持页面与代码的分离,代码比较有条理,容易实现系统的维护和升级。

本系统利用Microsoft SQL Server 2000作为本系统的数据库,它是一个支持多用户的新型数据库,适用于大中规模的数据量需求。

本系统使用IIS作为网站的服务器软件,可以满足用户的访问需要。

系统中的设计模拟体育编排中大部分工作,包括符合各种规则、算法、资源分配、公平合理等原则。

本系统中应用了办公软件的二次开发,包括excel生成读取、导入,word模板制作、自动填充内容,word内容的自动生成等。

4.2需求分析运动会编排系统的宗旨在于方便体育工作者进行中小型体育赛事的编排管理工作,因此本系统应该实现所有方便运动会编排中的所必需的功能及服务。

同时,任何一个系统都需要进行管理,本系统也不例外。

系统管理员所应该具有的功能,同样需要仔细考虑。

本系统目前支持三种角色即管理员、操作者、匿名浏览者。

管理员:拥有系统编排、管理、查询权限。

操作员:拥有系统编排中的成绩录入、输出、查询权限。

匿名浏览者:拥有信息查询的权限。

系统必须完成的功能需求:1.进行运动会基本信息录入2.规程管理3.运动项目设定4.参赛项目设定5.报名表生成6.报名表导入7.比赛规程设定8.比赛分组9.各种数据的报表输出10.用户、数据库、帮助等其它必要功能系统的操作必须按照一定的逻辑顺序方能操作成功,因为各个模块之间有依赖关系,如有了报名表才能进行分组,分好组才能进行比赛。

4.3 总体设计下面的系统总体设计功能图(图4-1)可以直观地了解系统将要实现的功能结构。

为了增强系统的可重用性和可移植性,便于日后的维护和扩展,本系统采用传统的三层结构,即表现层、业务逻辑层和数据访问层。

表现层位于最上层,离用户最近。

用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面。

业务逻辑层是用户表示层和数据访问层之间的职能接口,负责处理用户输入的信息,或者是将这些信息发送给数据访问层进行保存,或者是调用数据访问层中的函数再次读出这些数据。

数据访问层提供了到数据存储的接口,实现对数据的保存和读取操作。

数据访问,可以访问数据库系统、二进制文件、文本文档或是XML文档。

图4-1系统总体设计功能图4.4 数据库设计本系统设计了11个数据表,有些数据表是动态生成的,下面分别介绍。

4.4.1 数据库模型根据系统功能模块的设计,充分考虑到避免数据库信息冗余问题,用PowerDesigner设计了系统数据库的概念数据模型和物理数据模型。

共设置11个数据表存储系统的全部数据,数据库物理数据模型如图4-2所示。

FK_图4-2 数据库物理数据模型4.4.2 数据字典为了使该系统的各数据表的含义更加清晰,对其作如下功能描述。

项目编码表:记录项目的信息,如表4-1所示。

表4 -1项目编码表参赛项目表:记录参赛项目的信息,如表4-2所示。

表4-2 参赛项目表其他表格不一一列出,有些数据表是动态生成,系统中会有创建新的数据表、删除新的数据表,这些表中的字段是由需求决定并安排一定的顺序。

4.5 系统详细设计首先介绍系统登录模块。

初始化由管理者在系统第一次将要使用本系统时进行完全初始化,并进行数据库数据的初始化和某些必要数据的默认写入,如系统默认管理员帐户密码(用户名admin密码admin)。

注意更改管理员密码。

当登陆页面时,系统将弹出登录界面。

输入用户名、密码、验证码,单击确定即可进操作首页。

用户登录时表面上没有明显的角色区分,是由系统后台自动判断用户角色,进入不同管理页面。

角色目前分为三种:管理员、操作者和匿名。

可按需求进行适当的调整,即给不同权限用户开放相应功能。

验证码技术用于防止恶意登陆,机器暴力爆破密码,提高系统的安全性。

进入操作界面即可看到登陆者的角色,如管理员、操作者,界面如图4-3、图4-4。

点击安全退出即可退出系统返回到登陆界面。

图 4-3管理员操作界面(部分)图4-4操作者操作界面(部分)操作员与匿名登录功能上只是管理员中的部分功能,在此不再赘述,请参照管理员登陆相关内容。

当系统判断出登陆者是以管理员权限操作时,进入管理员管理界面。

管理员即可进行相关操作。

登录模块的部分操作代码如下:protected void ImageButton1_Click(object sender, ImageClickEventArgs e) {……Session["role"]=getrole(username);……}protected int getrole(string username)//获得用户权限{SqlConnection strcon = newSqlConnection(System.Configuration.ConfigurationManager.AppSettings["conStr"] );strcon.Open();string sqlstr="select role from 用户where username='"+ username + "'";SqlCommand scd = new SqlCommand(sqlstr, strcon);int role = Convert.ToInt32(scd.ExecuteScalar());//1为管理员 0为操作者return role;}4.5.1 新运动会初始化初始化一个新的运动会,功能包括四项,如图4-5。

图4-5 初始化功能模块1.运动会基本信息当系统未设置运动会基本信息时,系统会自动生成MeetingID为某一参数的其他信息为空的运动会基本信息,管理员点击编辑即可进行当前运动会基本信息的输入。

如图4-6。

此操作还可以在以后的操作中随时更改,这将会影响到数据库数据和秩序册等信息的改变。

图4-6 运动会基本信息2.参赛规程设定此操作是进行一个运动会必须填写的参数,包括每个运动员最多能报项目数、每个参赛队每个项目最多能报人数、是否计算积分(1为是,0为否)、录取名次、团体录取名次、运动会级别、某项最少报名人数。

当是否计算积分为1时,点击刷新设置按钮即可在下方显示录取名次的相应得分设置;如果是否计算积分为0时,下方的得分设置不会出现。

如图4-7所示。

另外,参赛规程设定还包括参赛规程文本的输入框,有更具体规程输入。

图4-7参赛规程设置其操作代码如下:页面加载的事件处理方法,该方法在页面非回传时判断是否需要计算团体总分,这通过一次SQL查询完成。

此后,将数据库中存储的规程文本显示在界面上。

protected void Page_Load(object sender, EventArgs e){if (!Page.IsPostBack){//是否计算团体总分SqlConnection con = newSqlConnection(ConfigurationManager.AppSettings["conStr"]);con.Open();string mysql = "SELECT 参数值FROM 运动会竞赛规程WHERE (类型 = 3)";SqlCommand dbCommand = new SqlCommand(mysql, con);SqlDataReader reader = dbCommand.ExecuteReader();reader.Read();string a = reader[0].ToString();con.Close();if (a.Equals("0")) { GridView2.Visible = false; }con.Open();mysql = "SELECT 规程FROM 规程文本";SqlCommand dbCommand1 = new SqlCommand(mysql, con);string gctext = dbCommand1.ExecuteScalar().ToString();guicheng.Text = gctext;con.Close();}}“刷新设置”按钮的点击事件处理方法,该方法首先获得录取最大名次n,然后全部删除旧的录取办法,最后向数据库插入包含这n个名次的录取办法(新旧两次的n值不同),更新完成之后,刷新页面。

protected void Button1_Click(object sender, EventArgs e){SqlConnection con1 = newSqlConnection(ConfigurationManager.AppSettings["conStr"]);con1.Open();string mysql = "SELECT 参数值 FROM 运动会竞赛规程WHERE (类型= 4)";SqlCommand dbCommand1 = new SqlCommand(mysql, con1);SqlDataReader reader1 = dbCommand1.ExecuteReader();reader1.Read();int n = Convert.ToInt16(reader1[0].ToString());//录取名次con1.Close();SqlConnection con3 = newSqlConnection(ConfigurationManager.AppSettings["conStr"]);con3.Open();mysql = "delete from 运动员录取办法";SqlCommand dbCommand3 = new SqlCommand(mysql, con3);dbCommand3.ExecuteNonQuery();con3.Close();for (int i = 1; i <= n; i++){SqlConnection con2 = newSqlConnection(ConfigurationManager.AppSettings["conStr"]);con2.Open();mysql = "insert into 运动员录取办法 values(" + i + ",0)";SqlCommand dbCommand2 = new SqlCommand(mysql, con2);dbCommand2.ExecuteNonQuery();con2.Close();}Server.Transfer("ini7.aspx");}除此之外,规程设置包含的两个表格中的“编辑”功能由框架实现。

相关文档
最新文档