毕业设计论文C++球队信息管理系统.doc

上传人:文库蛋蛋多 文档编号:3599195 上传时间:2023-03-14 格式:DOC 页数:34 大小:1.98MB
返回 下载 相关 举报
毕业设计论文C++球队信息管理系统.doc_第1页
第1页 / 共34页
毕业设计论文C++球队信息管理系统.doc_第2页
第2页 / 共34页
毕业设计论文C++球队信息管理系统.doc_第3页
第3页 / 共34页
毕业设计论文C++球队信息管理系统.doc_第4页
第4页 / 共34页
毕业设计论文C++球队信息管理系统.doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《毕业设计论文C++球队信息管理系统.doc》由会员分享,可在线阅读,更多相关《毕业设计论文C++球队信息管理系统.doc(34页珍藏版)》请在三一办公上搜索。

1、摘 要球队信息管理系统在VC6.0环境下,用纯C语言编写。采用结构化软件工程的方法。,每个功能模块对应一个.c文件和一个或多个函数。有一个com.c的文件,其中有8个公用的函数。有一个common.h的头文件,有链表结点结构体的定义以及函数的原型说明,以及系统数据文件存储路径。该系统作为一种一般的数据检索和排序方式,有着较高的实用价值。该系统具有将输入的数据(球员姓名、员工号、薪水、角色等各项基本信息)以文件形式保存、根据员工号或者姓名查询相关人员的信息、根据球员姓名和薪水进行排序的功能、能够统计出球队的人数及薪水总额等信息,并为用户提供简单易操作的人机界面。球队信息管理系统实现对一个球队的各

2、类人员的相关信息进行输入、输出、查询等操作。能够通过主界面进入到各个不同的子案例的功能中,并可以正确实现各操作,易于使用,提高工作效率,给管理用户带来轻松的感受。球队信息管理系统总控子系统信息录入子系统信息删除子系统查询排序子系统报表子系统退 出信息统计模块分类汇总模块返回定制报表模块退出排序模块查询模块关键词:C语言 结构化软件工程 流程图 功能介绍AbstractThe Information Manages System of Football Team - (TIMSFT) under the environment of VC6.0, writing with the C langu

3、age. Adopt the method that the structure turns the software engineering. Each function mold piece to should a Document of c and one or several functions .There is document of com.c among them have 8 public functions.There is the prototype elucidation of the definition and function that the chain wat

4、ch knot orders the structure body, and saving path of the system data document.TIMSFT is a kind of general data index and the row preface methods, having higher practical value. TIMSFT have to carry on the data about various basic information of football players name, football players number, salary

5、, role and so on. The importation keeps with the document form, according to employees number or the name searches the related personnel of information. It according to the players name and salary function that lines up the preface. TIMSFT can statistics the information, such as a number of ball tea

6、m and the salary total amount and for the man-machine interface that the customer provide to operate in brief and easily.The related information of each kind of personnel of the football team information management system realization to a football team carries on the importation, outputs and searche

7、s. TIMSFT can enter through a main interface in the function of the each different case example, with right carry out each operation. TIMSFT is easy to the use and raise the work efficiency, bring relaxed feeling for the customer.TIMSFTChief controlInput informationDelete informatioSelect informatiR

8、eport SystemExitStat. moduleCoolect moduleExitReport moduleExitTaxis moduleSelect moduleKeyword: The Information Manages System of Football TeamThe C language Software engineering Flow chart Function introduction目 录第1章球队管理信息系统设计- 5 -1.1需求设计- 5 -1.2系统结构图- 5 -1.3系统流程图- 7 -1.3.1结点生成流程图- 7 -1.3.2转入新的成员流

9、程图- 9 -1.3.3排序流程图- 10 -1.3.4从文件读取信息流程图- 11 -1.3.5将链表写入文件流程图- 12 -1.3.6将链表结点释放流程图- 13 -1.3.7人员转入流程图- 14 -第2章球队信息管理系统功能说明- 15 -2.1系统模块划分- 15 -2.2系统功能说明- 15 -2.3子系统功能说明- 15 -2.3.1总控子系统- 15 -2.3.2信息录入子系统- 15 -2.3.3信息删除子系统- 15 -2.3.4查询排序子系统- 16 -2.3.5报表子系统- 16 -2.4退出- 16 -第3章球队信息管理系统功能演示- 17 -3.1列出所有队员信息

10、- 17 -3.2人员转入- 18 -3.3人员转出- 18 -3.4按姓名查询- 19 -3.5按编号查询- 19 -3.6按姓名排序- 20 -3.7按薪水排序- 21 -第4章报表子系统功能说明- 22 -第5章附:代码的实现- 26 -参考文献- 35 -致 谢- 36 -第1章 球队管理信息系统设计1.1需求设计l1转入人员l2显示出现在所有人员的全部信息l 3转出人员l4查询某位球员的信息(按姓名或按人员编号)5按照某个信息对球队各类人员的信息进行重新排序:按姓名或按薪水l6按照规定实现某些信息报表n7统计球队人员总数及所有人员的工资总额n8实现按角色对各类人员进行分类汇总相关信息

11、n9由用户自己随意确定报表的输出形式及内容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将链表结点

12、释放流程图图1-8 流程图1.3.7人员转入流程图图1-9 流程图1.3.8人员转出流程图图1-10 流程图第2章 球队信息管理系统功能说明2.1系统模块划分球队信息管理系统总控子系统信息录入子系统信息删除子系统查询排序子系统报表子系统退 出信息统计模块分类汇总模块返回定制报表模块退出排序模块查询模块图2-1 系统模块图2.2系统功能说明:本系统实现对一个球队队员的基本信息的管理,主要有列出所有队员清单、添加一个队员信息、删除一个队员信息、队员信息排序、队员信息查询、队员信息统计、分类汇总、定制报表等功能。2.3子系统功能说明2.3.1总控子系统本子系统功能包括系统菜单的输出、系统主要流程的控

13、制。2.3.2信息录入子系统本子系统功能包括结构体类型定义、数据文件存储路径定义、读写文件、插入法创建有序链表、遍历输出链表等公共模块,还有新建一个结点并录入该结点各项数据、数据输入格式验证等。2.3.3信息删除子系统本子系统功能是从链表中删除用户指定的结点信息,并将结果保存到文件。2.3.4查询排序子系统本字系统功能包括两个模块,一个是查询,包括按编号查询和按姓名查询;还有一个是排序,包括按姓名排序和按月薪排序,其中升序还是降序排序由用户从键盘输入。2.3.5报表子系统本子系统包括五个模块。2.3.5.1信息统计模块有统计球队队员人数和统计球队月薪总额两个功能。2.3.5.2分类汇总模块按角

14、色分类汇总并输出队员的所有信息。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按姓名排序可以由用户

15、选择升序还是降序。图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.hvoid showMenu()printf(-n);printf( 球队管理系统 n);printf(-n); printf(* 1. 列出人员清单 *n);printf(* 2. 人员转入 *n);printf(* 3.

16、 人员转出 *n);printf(* 4. 按姓名查询 *n);printf(* 5. 按编号查询 *n);printf(* 6. 按姓名排序 *n);printf(* 7. 按薪水排序 *n);printf(* 8. 报表子系统 *n);printf(* 0. 退出系统 *n);printf(-n);printf(-n);5.2 Common.h文件#include#include#include#includestruct dateint year;int month;int day;typedef struct MEMchar number10;char name20;int role;

17、int age;float high;float weight;float salary;struct date joinDate; /加入球队的日期struct MEM *next;MEMBER;extern char * roleSet4;#define FILENAME c:team.dat/存储数据的文件的路径void showMenu();void showAll(MEMBER *head);void addMember(MEMBER *head);MEMBER * newNode(MEMBER *head);MEMBER * insert(MEMBER *head,MEMBER *

18、newNode,int style);void list(MEMBER *head);void writeToFile(MEMBER *head);MEMBER * loadFromFile(int);5.3 showall.c 文件#include common.h/*函数名:showAll函数功能:遍历链表输出所有数据*/void showAll(MEMBER *head)list(head);printf(n数据显示完毕!nn);5.4 addmenber.c文件#include common.hvoid addMember(MEMBER *head)char flag;/是否添加新队员

19、while(1)printf(要添加一个新队员吗? y/nn);flag=getche();if(flag=n|flag=N)/不再加入新队员break;else if(flag=y|flag=Y)MEMBER * newNod = newNode(head);insert(head,newNod,0);/printf(新结点被插入到链表中n);/end of ifelseprintf(n输入不正确!请重新选择!n);/end of whilewriteToFile(head);/printf(n新链表被写入文件n);list(head);/printf(输出链表n);printf(新增队员结

20、束!nn);5.5 Com.c文件#include common.hMEMBER * newNode(MEMBER *head)MEMBER * newNode= (MEMBER *)malloc(sizeof(MEMBER);float tmp;char tmpDate10;if(newNode=NULL) return NULL;/申请内存失败newNode-next = NULL;/*以下从键盘为新节点赋值*/doprintf(n请输入新队员编号:n);gets(newNode-number);if(strlen(newNode-number)=0)/ 输入不能为空串continue;/

21、if(unique(head,newNode-number)=1)/验证编号的唯一性/break;else break;/printf(所输入的编号已经存在,请重新输入!n);while(1);printf(请输入新队员姓名:n);while(strlen(gets(newNode-name)=0)/ 输入不能为空串printf(请重新输入新队员姓名:n);continue;printf(请输入新队员角色(0-前锋 1-中场 2-后卫 3-守门员):n);/暂时没有考虑输入03之外的数据的容错性while(1)while(scanf(%d,&newNode-role)!=1)/ 输入不是d格式

22、,需要重新输入scanf(%*s);/跳到行输入缓冲区下一个空白字符printf(请重新输入角色!n);if(newNode-role=0&newNode-roleage)!=1)/输入不是d格式,需要重新输入scanf(%*s);/跳到行输入缓冲区下一个空白字符printf(请重新输入年龄!n);printf(请输入新队员身高(单位:厘米):n);/输入不是f格式,需要重新输入while(scanf(%f,&tmp)!=1)scanf(%*s);/跳到行输入缓冲区下一个空白字符printf(请重新输入身高!n);newNode-high=tmp;printf(请输入新队员体重(单位:公斤):

23、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;doprintf(请输入新队员加入日期(使用半角

24、字符,格式:yymmdd):n);gets(tmpDate);/if(checkDate(newNode, tmpDate)=1)break;while(1);return newNode;/返回新节点的指针/*函数名:insert函数功能:将新结点newNode插入到链表head中,按指定的排序方式style插入,默认按编号升序插入style=1,按姓名升序排序style=2,按姓名降序排序style=3,按薪水升序排序style=4,按薪水升序排序style=其他,按编号升序排序*/MEMBER * insert(MEMBER *head,MEMBER *newNode,int style

25、)MEMBER *p,*q;q=head;p=head-next;switch(style)case 1:/按姓名升序插入while(p!=NULL)/找到插入点,在p与q之间插入if(strcmp(p-name ,newNode-name) next;q=q-next;else break;break;case 2:/按姓名降序插入while(p!=NULL)/找到插入点,在p与q之间插入if(strcmp(p-name ,newNode-name) 0)/按姓名降序插入p=p-next;q=q-next;else break;break;case 3:/按薪水升序插入while(p!=NU

26、LL)/找到插入点,在p与q之间插入if(p-salary salary)/按薪水升序插入p=p-next;q=q-next;else break;break;case 4:/按薪水降序插入while(p!=NULL)/找到插入点,在p与q之间插入if(p-salary newNode-salary)/按薪水降序插入p=p-next;q=q-next;else break;break;default:/默认,按编号升序插入while(p!=NULL)/找到插入点,在p与q之间插入if(strcmp(p-number ,newNode-number) next;q=q-next;else bre

27、ak;break;/end of switchq-next = newNode;newNode-next = p;return head;/*函数名:list函数功能:从文件读入数据,形成链表,并遍历链表输出所有数据*/void list(MEMBER *head)MEMBER*p;int count=0;p=head-next;printf(n%3s%8s%15s%13s%4s%8s%8s%8s%12snn,id,number,name,role,age,high,weight,salary,joinDate);while(p!=NULL)/遍历输出链表printf(%3d%8s%15s%1

28、3s%4d%8.2f%8.2f%8.2f%5d-%2d-%2dn,count+1,p-number,p-name,roleSetp-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(int style)MEMBER *

29、head,*node;FILE *fp = fopen(FILENAME,rb);if(fp=NULL)/文件还不存在,无法打开char c;printf(文件打开错误或文件不存在!n);printf(需要新建一个文件吗?(y/n)n);c=getche();if(c=y|c=Y)fp=fopen(FILENAME,wb);fclose(fp);fp=fopen(FILENAME,rb);elseprintf(nn程序即将结束!n);exit(1);/程序终止运行head=(MEMBER*)(malloc(sizeof(MEMBER);if(head=NULL)printf(分配内存失败!);

30、exit(1);head-next=NULL;node=(MEMBER*)malloc(sizeof(MEMBER);/为新的结点申请内存node-next=NULL;if(fread(node,sizeof(MEMBER),1,fp)=0)/读取第一个结点printf(文件中没有数据!n);elseinsert(head,node,style);/将读取的结点插入到链表中,插入法生成链表while(!feof(fp) )/没有到文件尾,继续读取node=(MEMBER*)malloc(sizeof(MEMBER);/为新的结点申请内存node-next=NULL;/插入法生成链表的需要if(

31、fread(node,sizeof(MEMBER),1,fp)=1)insert(head,node,style);/将读取的结点插入到链表中,插入法生成链表else free(node);/释放无效结点内存fclose(fp);return head;/*函数名:writeToFile函数功能:将头指针为head的链表全部写入到文件中*/void writeToFile(MEMBER *head)MEMBER *p;FILE *fp;if(head=NULL) printf(向文件写入链表时,链表头指针为空!n);return;fp= fopen(FILENAME,wb);p=head-ne

32、xt;while(p!=NULL)/没有到链表尾,继续fwrite(p,sizeof(MEMBER),1,fp);/将一个结点写到文件p=p-next;/将读取的结点插入到链表中,插入法生成链表fclose(fp);参考文献【1】 崔武子 等著,C程序设计教程,清华大学出版社,2001.8。【2】 谭浩强著 C语言程序设计 中国铁道出版社【3】 王家华。软件工程M。沈阳:东北大学出版社,2001,61-76 【4】 Stephen Prata著,C Primer Plus(第四版)中文版,人民邮电出版社,2002.7。【5】 陈禹 方美琪,软件开发工具,北京,经济科学出版社,2000,2326

33、致 谢首先我衷心地感谢我的指导教师葛日波老师。葛老师渊博的知识、敏锐的思维、深刻的洞察力、淡泊的心境、平易的待人方式和富有感召力的人格力量给我许多启发和帮助,使我在学习和工作中,都受益匪浅,葛老师的言传身教,使我领略到一个著名学者的风采和高尚的情操,这些对我的生活和工作都起着不可估量的影响,在此,我对敬爱的老师表示衷心的感谢!他始终如一地关心我各方面上的进展,悉心指导了全部研究的各个环节,反复审阅了论文稿,提出许多修改意见,为本文的完成付出了很多心血。他渊博的学术造诣及严谨的治学态度给作者以深刻教诲,深信将受益终身。感谢我的同学。他们在软件的测试工作中付出很多努力。为我的论文项目工作付出了许多

34、辛勤的劳动。tgKQcWA3PtGZ7R4I30kA1DkaGhn3XtKknBYCUDxqA7FHYi2CHhI92tgKQcWA3PtGshLs50cLmTWN60eo8Wgqv7XAv2OHUm32WGeaUwYDIAWGMeR4I30kA1DkaGhn3XtKknBYCUDxqA7FHYi2CHhI92tgKQcWA3PtGZ7R4I30kA1DkaGtgKQcWA3PtGZ7R4I30kA1DkaGhn3XtKknBYCUDxqA7FHYi2CHhI92tgKQcWA3PtGshLs50cLmTWN60eo8Wgqv7XAv2OHUm32WGeaUwYDIAWGMeR4I30kA1D

35、kaGhn3XtKknBYCUDxqA7FHYi2CHhI92tgKQcWA3PtGZ7R4I30kA1DkaGtgKQcWA3PtGZ7R4I30kA1DkaGhn3XtKknBYCUDxqA7FHYi2CHhI92tgKQcWA3PtGshLs50cLmTWN60eo8Wgqv7XAv2OHUm32WGeaUwYDIAWGeR4I30kA1DkaGhn3XtKknBYCUDxqA7FHYi2CHhI92tgKQcWA3PtGZ7R4I30kA1DkaGtgKQcWA3PtGZ7R4I30kA1DkaGhn3XtKknBYCUDxqA7FHYi2CHhI92tgKQcWA3PtGshLs50

36、cLmTWN60eo8Wgqv7XAv2OHUm32WGeaUwYDIAWGMeR4I30kA1DkaGhn3XtKknBYCUDxqA7FHYi2CHhI92tgKQcWA3PtGZ7R4I30kA1DkaGtgKQcWA3PtGZ7R4I30kA1DkaGhn3XtKknBYCUDxqA7FHYi2CHhI92tgKQcWA3PtGshLs50cLmTWN60eo8Wgqv7XAv2OHUm32WGeaUwYDIAWGMeR4I30kA1DkaGhn3XtKknBYCUDxqA7FHYi2CHhI92tgKQcWA3PtGZ7R4I30kA1DkaGtgKQcWA3PtGZ7R4I30kA1DkaGhn3XtKknBYCUDxqA7FHYi2CHhI92tgKQcWA3PtGshLs50cLmTWN60eo8Wgqv7XAv2OHUm32WGeaUwYDIAWGMeR4I30kA1DkaGhn3XtKknBYCUDxqA7FHYi2CHhI92tgKQcWA3PtGZ7R4I30kA1DkaG- 34 -

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号