毕业设计论文球队信息管理系统1doc文档在线提供1.docx
- 文档编号:3705528
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:31
- 大小:1.11MB
毕业设计论文球队信息管理系统1doc文档在线提供1.docx
《毕业设计论文球队信息管理系统1doc文档在线提供1.docx》由会员分享,可在线阅读,更多相关《毕业设计论文球队信息管理系统1doc文档在线提供1.docx(31页珍藏版)》请在冰豆网上搜索。
毕业设计论文球队信息管理系统1doc文档在线提供1
摘要
球队信息管理系统在VC6.0环境下,用纯C语言编写。
采用结构化软件工程的方法。
,每个功能模块对应一个.c文件和一个或多个函数。
有一个com.c的文件,其中有8个公用的函数。
有一个common.h的头文件,有链表结点结构体的定义以及函数的原型说明,以及系统数据文件存储路径。
该系统作为一种一般的数据检索和排序方式,有着较高的实用价值。
该系统具有将输入的数据(球员姓名、员工号、薪水、角色等各项基本信息)以文件形式保存、根据员工号或者姓名查询相关人员的信息、根据球员姓名和薪水进行排序的功能、能够统计出球队的人数及薪水总额等信息,并为用户提供简单易操作的人机界面。
球队信息管理系统实现对一个球队的各类人员的相关信息进行输入、输出、查询等操作。
能够通过主界面进入到各个不同的子案例的功能中,并可以正确实现各操作,易于使用,提高工作效率,给管理用户带来轻松的感受。
关键词:
C语言结构化软件工程流程图功能介绍
Abstract
TheInformationManagesSystemofFootballTeam----(TIMSFT)undertheenvironmentofVC6.0,writingwiththeClanguage.Adoptthemethodthatthestructureturnsthesoftwareengineering.EachfunctionmoldpiecetoshouldaDocumentofcandoneorseveralfunctions.Thereisdocumentofcom.camongthemhave8publicfunctions.
Thereistheprototypeelucidationofthedefinitionandfunctionthatthechainwatchknotordersthestructurebody,andsavingpathofthesystemdatadocument.
TIMSFTisakindofgeneraldataindexandtherowprefacemethods,havinghigherpracticalvalue.TIMSFThavetocarryonthedataaboutvariousbasicinformationoffootballplayer'sname,footballplayer'snumber,salary,roleandsoon.Theimportationkeepswiththedocumentform,accordingtoemployee'snumberorthenamesearchestherelatedpersonnelofinformation.Itaccordingtotheplayer'snameandsalaryfunctionthatlinesupthepreface.TIMSFTcanstatisticstheinformation,suchasanumberofballteamandthesalarytotalamountandfortheman-machineinterfacethatthecustomerprovidetooperateinbriefandeasily.
Therelatedinformationofeachkindofpersonnelofthefootballteaminformationmanagementsystemrealizationtoafootballteamcarriesontheimportation,outputsandsearches.TIMSFTcanenterthroughamaininterfaceinthefunctionoftheeachdifferentcaseexample,withrightcarryouteachoperation.TIMSFTiseasytotheuseandraisetheworkefficiency,bringrelaxedfeelingforthecustomer.
Keyword:
TheInformationManagesSystemofFootballTeam
TheClanguage
Softwareengineering
Flowchart
Functionintroduction
第1章球队管理信息系统设计
1.1需求设计
l1转入人员
2显示出现在所有人员的全部信息
3转出人员
4查询某位球员的信息(按姓名或按人员编号)
5按照某个信息对球队各类人员的信息进行重新排序:
按姓名或按薪水
6按照规定实现某些信息报表
7统计球队人员总数及所有人员的工资总额
8实现按角色对各类人员进行分类汇总相关信息
9由用户自己随意确定报表的输出形式及内容
10球队各类人员的主要信息包括:
编号、姓名、角色、年龄、身高、体重、薪水、加入球队日期
1.2系统结构图
图1-1系统结构图
图1-2系统结构图
1.3系统流程图
1.3.1结点生成流程图
图1-3系统流程图
1.3.2转入新的成员流程图
图1-4系统流程图
1.3.3排序流程图
图1-5系统流程图
1.3.4从文件读取信息流程图
图1-6信息流程图
1.3.5将链表写入文件流程图
图1-7文件流程图
1.3.6将链表结点释放流程图
图1-8流程图
1.3.7人员转入流程图
图1-9流程图
1.3.8人员转出流程图
图1-10流程图
第2章球队信息管理系统功能说明
2.1系统模块划分
图2-1系统模块图
2.2系统功能说明:
本系统实现对一个球队队员的基本信息的管理,主要有列出所有队员清单、添加一个队员信息、删除一个队员信息、队员信息排序、队员信息查询、队员信息统计、分类汇总、定制报表等功能。
2.3子系统功能说明
2.3.1总控子系统
本子系统功能包括系统菜单的输出、系统主要流程的控制。
2.3.2信息录入子系统
本子系统功能包括结构体类型定义、数据文件存储路径定义、读写文件、插入法创建有序链表、遍历输出链表等公共模块,还有新建一个结点并录入该结点各项数据、数据输入格式验证等。
2.3.3信息删除子系统
本子系统功能是从链表中删除用户指定的结点信息,并将结果保存到文件。
2.3.4查询排序子系统
本字系统功能包括两个模块,一个是查询,包括按编号查询和按姓名查询;还有一个是排序,包括按姓名排序和按月薪排序,其中升序还是降序排序由用户从键盘输入。
2.3.5报表子系统
本子系统包括五个模块。
2.3.5.1信息统计模块
有统计球队队员人数和统计球队月薪总额两个功能。
2.3.5.2分类汇总模块
按角色分类汇总并输出队员的所有信息。
2.3.5.3定制报表模块
由用户选择输入需要输出的字段、各字段输出的顺序,然后按照用户的定制要求输出所有队员的信息。
2.3.5.4返回上级菜单
返回到主菜单
2.3.5.5退出
终止程序运行
2.4退出:
终止程序运行
第3章球队信息管理系统功能演示
图3-1运行效果图
3.1列出所有队员信息
默认按编号升序列出
图3-2运行效果
3.2人员转入(新增人员)
输入信息时有一定程度的容错处理
图3-3运行效果
3.3人员转出(删除人员)
执行完毕后将从文件中物理删除该人员数据
图3-4运行效果
3.4按姓名查询
图3-5运行效果
3.5按编号查询
图3-6运行效果
3.6按姓名排序
可以由用户选择升序还是降序。
图3-7运行效果
3.7按薪水排序
可以由用户选择升序还是降序。
图3-8运行效果
第4章报表子系统功能说明
图4-1报表子系统
4.1统计球队人员总数
图4-2运行效果
4.2统计球队薪水总额
图4-3运行效果
4.3按角色分类汇总输出报表
图4-4运行效果
4.4用户定制报表
图4-5运行效果
第5章代码
5.1Menu.c文件
#include"common.h"
voidshowMenu(){
printf("----------------------------------------\n");
printf("球队管理系统\n");
printf("----------------------------------------\n");
printf("*1.列出人员清单*\n");
printf("*2.人员转入*\n");
printf("*3.人员转出*\n");
printf("*4.按姓名查询*\n");
printf("*5.按编号查询*\n");
printf("*6.按姓名排序*\n");
printf("*7.按薪水排序*\n");
printf("*8.报表子系统*\n");
printf("*0.退出系统*\n");
printf("----------------------------------------\n");
printf("----------------------------------------\n");
}
5.2Common.h文件
#include
#include
#include
#include
structdate{
intyear;
intmonth;
intday;
};
typedefstructMEM{
charnumber[10];
charname[20];
introle;
intage;
floathigh;
floatweight;
floatsalary;
structdatejoinDate;//加入球队的日期
structMEM*next;
}MEMBER;
externchar*roleSet[4];
#defineFILENAME"c:
\\team.dat"//存储数据的文件的路径
voidshowMenu();
voidshowAll(MEMBER*head);
voidaddMember(MEMBER*head);
MEMBER*newNode(MEMBER*head);
MEMBER*insert(MEMBER*head,MEMBER*newNode,intstyle);
voidlist(MEMBER*head);
voidwriteToFile(MEMBER*head);
MEMBER*loadFromFile(int);
5.3showall.c文件
#include"common.h"
/*********************************************************
函数名:
showAll
函数功能:
遍历链表输出所有数据
**********************************************************/
voidshowAll(MEMBER*head){
list(head);
printf("\n数据显示完毕!
\n\n");
}
5.4addmenber.c文件
#include"common.h"
voidaddMember(MEMBER*head){
charflag;//是否添加新队员
while
(1){
printf("要添加一个新队员吗?
y/n\n");
flag=getche();
if(flag=='n'||flag=='N')//不再加入新队员
break;
elseif(flag=='y'||flag=='Y'){
MEMBER*newNod=newNode(head);
insert(head,newNod,0);//printf("新结点被插入到链表中\n");
}//endofif
else
printf("\n输入不正确!
请重新选择!
\n");
}//endofwhile
writeToFile(head);//printf("\n新链表被写入文件\n");
list(head);//printf("输出链表\n");
printf("新增队员结束!
\n\n");
}
5.5Com.c文件
#include"common.h"
MEMBER*newNode(MEMBER*head){
MEMBER*newNode=(MEMBER*)malloc(sizeof(MEMBER));
floattmp;
chartmpDate[10];
if(newNode==NULL)
returnNULL;//申请内存失败
newNode->next=NULL;
/*以下从键盘为新节点赋值*/
do{
printf("\n请输入新队员编号:
\n");
gets(newNode->number);
if(strlen(newNode->number)==0)//输入不能为空串
continue;
//if(unique(head,newNode->number)==1)//验证编号的唯一性
//break;
elsebreak;
//printf("所输入的编号已经存在,请重新输入!
\n");
}while
(1);
printf("请输入新队员姓名:
\n");
while(strlen(gets(newNode->name))==0)//输入不能为空串
{
printf("请重新输入新队员姓名:
\n");
continue;
}
printf("请输入新队员角色(0-前锋1-中场2-后卫3-守门员):
\n");//暂时没有考虑输入0-3之外的数据的容错性
while
(1){
while(scanf("%d",&newNode->role)!
=1){//输入不是%d格式,需要重新输入
scanf("%*s");//跳到行输入缓冲区下一个空白字符
printf("请重新输入角色!
\n");
}
if(newNode->role>=0&&newNode->role<=3)//上句while执行完毕,已经输入一个整数,并且输入的是0-3之一
break;
else{//已经输入一个整数,但是输入的不是0-3之一
printf("请输入0~3中的一个整数:
\n");
printf("请输入新队员角色(0-前锋1-中场2-后卫3-守门员):
\n");
}
}
printf("请输入新队员年龄:
\n");
while(scanf("%d",&newNode->age)!
=1){//输入不是%d格式,需要重新输入
scanf("%*s");//跳到行输入缓冲区下一个空白字符
printf("请重新输入年龄!
\n");
}
printf("请输入新队员身高(单位:
厘米):
\n");//输入不是%f格式,需要重新输入
while(scanf("%f",&tmp)!
=1){
scanf("%*s");//跳到行输入缓冲区下一个空白字符
printf("请重新输入身高!
\n");
}
newNode->high=tmp;
printf("请输入新队员体重(单位:
公斤):
\n");
while(scanf("%f",&tmp)!
=1){//输入不是%f格式,需要重新输入
scanf("%*s");//跳到行输入缓冲区下一个空白字符
printf("请重新输入体重!
\n");
}
newNode->weight=tmp;
printf("请输入新队员薪水(单位:
人民币元/月):
\n");
while(scanf("%f",&tmp)!
=1){//输入不是%f格式,需要重新输入
scanf("%*s");//跳到行输入缓冲区下一个空白字符
printf("请重新输入薪水!
\n");
}
newNode->salary=tmp;
while(getchar()!
='\n')//清空行输入缓冲区
continue;
do{
printf("请输入新队员加入日期(使用半角字符,格式:
yy-mm-dd):
\n");
gets(tmpDate);
//if(checkDate(newNode,tmpDate)==1)
break;
}while
(1);
returnnewNode;//返回新节点的指针
}
/*********************************************************
函数名:
insert
函数功能:
将新结点newNode插入到链表head中,按指定的排序方式style插入,默认按编号升序插入
style=1,按姓名升序排序
style=2,按姓名降序排序
style=3,按薪水升序排序
style=4,按薪水升序排序
style=其他,按编号升序排序
**********************************************************/
MEMBER*insert(MEMBER*head,MEMBER*newNode,intstyle){
MEMBER*p,*q;
q=head;
p=head->next;
switch(style){
case1:
//按姓名升序插入
while(p!
=NULL){//找到插入点,在p与q之间插入
if(strcmp(p->name,newNode->name)<0){//按姓名升序插入
p=p->next;
q=q->next;
}
elsebreak;
}
break;
case2:
//按姓名降序插入
while(p!
=NULL){//找到插入点,在p与q之间插入
if(strcmp(p->name,newNode->name)>0){//按姓名降序插入
p=p->next;
q=q->next;
}
elsebreak;
}
break;
case3:
//按薪水升序插入
while(p!
=NULL){//找到插入点,在p与q之间插入
if(p->salary
p=p->next;
q=q->next;
}
elsebreak;
}
break;
case4:
//按薪水降序插入
while(p!
=NULL){//找到插入点,在p与q之间插入
if(p->salary>newNode->salary){//按薪水降序插入
p=p->next;
q=q->next;
}
elsebreak;
}
break;
default:
//默认,按编号升序插入
while(p!
=NULL){//找到插入点,在p与q之间插入
if(strcmp(p->number,newNode->number)<0){//按编号升序插入
p=p->next;
q=q->next;
}
elsebreak;
}
break;
}//endofswitch
q->next=newNode;
newNode->next=p;
returnhead;
}
/*********************************************************
函数名:
list
函数功能:
从文件读入数据,形成链表,并遍历链表输出所有数据
**********************************************************/
voidlist(MEMBER*head){
MEMBER*p;
intcount=0;
p=head->next;
printf("\n%3s%8s%15s%13s%4s%8s%8s%8s%12s\n\n","id","number","name","role","age","high","weight","salary","joinDate");
while(p!
=NULL){//遍历输出链表
printf("%3d%8s%15s%13s%4d%8.2f%8.2f%8.2f%5d-%2d-%2d\n",count+1,p->number,p->name,roleSet[p->role],p->age,p->high,p->weight,p->salary,p->joinDate.year,p->joinDate.month,p->joinDate.day);
count++;
if(count%20==0)//分屏显示,每输出20条记录暂停
getch();
p=p->next;
}
}
/*********************************************************
函数名:
loadFromFile
函数功能:
从文件中把数据全部读出,用插入法生成链表并返回头指针head
**********************************************************/
MEMBER*loadFromFile(intstyle){
MEMBER*head,*node;
FILE*fp=fopen(FILENAM
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 球队 信息管理 系统 doc 文档 在线 提供