| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5158 人关注过本帖, 1 人收藏
标题:NBA信息管理系统(没头绪,求大神指教)
只看楼主 加入收藏
MeU
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2016-5-5
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:13 
NBA信息管理系统(没头绪,求大神指教)
一个NBA球队允许最多有15名球员,一个球员只能在一个球队,用C语言编写程序实现下面要求:
(1)系统以菜单方式工作
(2)增加球队的功能
(3)删除球队的功能
(4)增加相应球队的球员,当球队人员超过15人时,提示该球队不能加入球员
(5)删除球员
(6)查询指定球队所有球员的信息,并按照球员编号排序输出
(7)查询所有球员信息,并按照球员年薪排序输出
(8)查询指定球员的信息
(9)退出系统
二:每个子功能执行完毕后,返回并显示主菜单,并且每个输入环节都要有输入错误提示
三:详细说明
    所增加的球队名称,球员名称自己命名。若添加的球队或球员已经存在,则提示该球队或球员已经存在,添加失败
    球队列表包括球队名称,球队所属城市,球队已有球员个数
    球员的信息包括:球员编号(int),球员名字(String)、球员年薪(float)、球员年龄(int)、球员身高(float)
    退出程序,返回系统菜单。
搜索更多相关主题的帖子: 编写程序 管理系统 NBA球队 C语言 信息 
2016-06-16 14:03
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:5 
一、这个就类似学生信息管理系统一样,主要用到知识点:结构体,数组,switch语句,for语句这些就可以解决了;
(1)系统以菜单方式工作
这个就是用几个printf语句打出一个菜单分别显示你后面的(2)--(9)的功能,然后后面用switch语句来选择调用哪个子功能函数,界面类似如下:
程序代码:
printf("\n\n\n\n\n\t\t\t 菜单选项\n");
        printf("\t\t\t****************\n");
        printf("\t\t\t*  1.增加球队  *\n");
        printf("\t\t\t*  2.删除球队  *\n");
        printf("\t\t\t*  3.增加球员  *\n");
        printf("\t\t\t*  4.删除球员  *\n");
        ..........        
        printf("\t\t\t*  0.退出系统  *\n");
        printf("\t\t\t****************\n");
        printf("\t\t\t  请选择:");

至于(2)-(9)的功能,你分别用一个函数做一个功能模块,然后在主函数中调用就行了。
二、每个子功能函数执行后返回菜单这个有两个方法:1、使用goto语句;二、把菜单显示也单独写成一个子函数,然后其他函数调用。
每个输入环节有输入错误提示就使用if-else语句就可以实现了
三、球员信息这些使用结构体,球队使用数组,其他细节诸如排序功能和球员已满提示一步步写就行了
大概就这么个思路,你可以先写个流程图或者搭个框架结构,然后每一个功能函数再去填充就可以了。

[此贴子已经被作者于2016-6-16 16:09编辑过]

2016-06-16 14:32
MeU
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2016-5-5
收藏
得分:0 
回复 2楼 wanglianyi1
谢谢大神指点,但有木有类似完整的代码能参考一下啊?真的有急用,可是半天都折腾不出来!!!谢谢啦
2016-06-16 14:46
格格不入fl
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:56
专家分:192
注 册:2016-3-23
收藏
得分:1 
可以用链表
2016-06-16 15:20
lanke711
Rank: 9Rank: 9Rank: 9
来 自:流浪在天国之路
等 级:蜘蛛侠
威 望:7
帖 子:317
专家分:1437
注 册:2015-7-16
收藏
得分:1 
楼主可以百度搜一下学生管理系统的项目代码进行参考。
就是把对象是学生,换成了对象是NBA球队。其它没什么改变。
如果以后要学习C++,多练习这种项目,有助于对面向对象编程的理解。

普通人之所以普通,是因为他们普遍有一个通病,那就是认为自己永远普通。
千夫所指,我亦坚持。就算被所有人误解,我也照样守护这一切。
我们总是觉得,这些灵魂的表情,傲慢自大,目中无人,其实,真正目中无人的是我们。它们傲慢的不过是表情,而我们傲慢的却是行为!
记得,是为了忘记!
只要想着有那么一天,我就能忍受现在的每一天!
灾难并不可怕,可怕的是心中没有了希望。
你以为我在天堂,其实我正在路上。
当你觉得自己走不到终点的时候,请不要放弃。或许你的对手也是这种感觉。
2016-06-16 15:45
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:10 
回复 3楼 MeU
你直接在论坛里搜索,有学生信息管理系统相关的帖子,有的,我随便搜了个给你参考下吧,这个用了链表,我直接复制过来的,你试试看吧。
程序代码:
#include"stdio.h"
#include"stdlib.h"
#include"malloc.h"
typedef struct NODE{
char name[20];
int ID;
float score[3];
struct NODE *next;
} NODE;
int index=0;

//输入某个学生的成绩
NODE *Creat(int n){
NODE *phead,*p,*previous;
int i;
phead=(NODE*)malloc(sizeof(NODE));
previous=phead;
previous->next=NULL;
for(i=0;i<n;i++){
p=(NODE*)malloc(sizeof(NODE));
printf("please input name,ID\n");
scanf("%s%d",&p->name,&p->ID);
printf("请输入3门成绩:\n");
scanf("%f%f%f",&p->score[0],&p->score[1],&p->score[2]);
previous->next=p;
p->next=NULL;
previous=p;
index++;
}
return phead;
}
//打印所有学生的成绩
void Print(NODE*phead){
NODE *ptemp;
ptemp=phead;
ptemp=ptemp->next;
while(ptemp!=NULL){
printf("---the student information---\n");
printf("姓名:%s\n",ptemp->name);
printf("学号:%d\n",ptemp->ID);
printf("成绩:%f\t%f\t%f\t\n",ptemp->score[0],ptemp->score[1],ptemp->score[2]);
ptemp=ptemp->next;
}
}
//插入某个学生的成绩
NODE* Insert(NODE *phead){
NODE *ptemp,*p1;
ptemp=phead;
p1=(NODE*)malloc(sizeof(NODE));
printf("请输入姓名,学号:\n");
scanf("%s%d",&p1->name,&p1->ID);
printf("请输入语文,数学,英语成绩:\n");
scanf("%f%f%f",&p1->score[0],&p1->score[1],&p1->score[2]);
p1->next=ptemp->next;
ptemp->next=p1;
index++;
return phead;
}
//删除某个学生的成绩
NODE* Delete(NODE*phead ,int i){
NODE *ptemp,*previous;
ptemp=phead;
ptemp=ptemp->next;
previous=ptemp;
while(ptemp!=NULL&&(ptemp->ID!=i)){
previous=ptemp;
ptemp=ptemp->next;
}
if(ptemp)
{
previous->next=ptemp->next;
free(ptemp);
printf("删除成功!\n");
}
return phead;
}
//计算所有学生的成绩
float AverageAll(NODE*phead){
NODE *ptemp;
ptemp=phead;
ptemp=ptemp->next;
int i=0;
float b,m,sum=0.0;
while(ptemp!=NULL){
m=ptemp->score[0]+ptemp->score[1]+ptemp->score[2];
sum=sum+m;
ptemp=ptemp->next;
i++;
}
b=sum/(i);
return b;
}
//计算某个学生的成绩
float AverageSigle(NODE*phead,int i){
NODE *ptemp;
ptemp=phead;
ptemp=ptemp->next;
float m;
while(ptemp->ID!=i&&ptemp!=NULL)
ptemp=ptemp->next;
if(ptemp)
m=(ptemp->score[0]+ptemp->score[1]+ptemp->score[2])/3;
return m;
}
//查找某个学生的信息
void Lookfor(NODE *phead,int i){
NODE *ptemp;
ptemp=phead;
ptemp=ptemp->next;
while(ptemp!=NULL&&(ptemp->ID!=i))
ptemp=ptemp->next;
if(ptemp)
{
printf("*********学生信息************\n");
printf("学号:%d\t姓名:%s\n",ptemp->ID,ptemp->name);
printf("第一门成绩:%f第二门成绩:%f第三门成绩:%f\n",ptemp->score[0],ptemp->score[1],ptemp->score[2]);
}
}
//修改学生的信息
void Revise_information(NODE*phead,int i){
NODE *ptemp;
ptemp=phead;
ptemp=ptemp->next;
while(ptemp!=NULL&&(ptemp->ID!=i))
{
ptemp=ptemp->next;
}
if(ptemp){
printf("请输入修改的姓名:");
scanf("%s",&ptemp->name);
printf("请输入要修改的学号:");
scanf("%d",&ptemp->ID);
printf("请输入要修改的成绩显3门:");
scanf("%f%f%f",&ptemp->score[0],&ptemp->score[1],&ptemp->score[2]);
printf("修改成功!\n");
}
}
//按照递增的顺序排列
NODE* Ascendline(NODE*phead){
NODE*ptemp,*previous,*p1;
int i;
for(i=0;i<index;i++){
ptemp=phead;
p1=ptemp;
previous=ptemp=ptemp->next;
ptemp=ptemp->next;
while(ptemp!=NULL){
float m,n;
m=ptemp->score[0]+ptemp->score[1]+ptemp->score[2];
n=previous->score[0]+previous->score[1]+previous->score[2];
if(n>m)
{
p1->next=ptemp;
previous->next=ptemp->next;
ptemp->next=previous;
}
p1=previous;
previous=ptemp;
ptemp=ptemp->next;

}

}
return phead;
}
//按照递减的顺序排列
NODE* Descendline(NODE*phead){
NODE*ptemp,*previous,*p1;
int i;
for(i=0;i<index;i++){
ptemp=phead;
p1=ptemp;
previous=ptemp=ptemp->next;
ptemp=ptemp->next;
while(ptemp!=NULL){
float m,n;
m=ptemp->score[0]+ptemp->score[1]+ptemp->score[2];
n=previous->score[0]+previous->score[1]+previous->score[2];
if(n<m)
{
p1->next=ptemp;
previous->next=ptemp->next;
ptemp->next=previous;
}
p1=previous;
previous=ptemp;
ptemp=ptemp->next;
}
}
return phead;
}
void menu(){
printf("*************学生管理系统************************\n");
printf("1.输入n个学生的成绩\n");
printf("2.打印学生的成绩\n");
printf("3.插入某个学生的信息和成绩\n");
printf("4.删除某个学生的信息和成绩\n");
printf("5.查找某个学生的信息和成绩\n");
printf("6.计算所有学生的信息和成绩\n");
printf("7.计算某个学生的信息和成绩\n");
printf("8.修改某个学生的信息和成绩\n");
printf("9.按照成绩的递增进行排序\n");
printf("10.按照成绩的递减顺序排列\n");
}#include"head.h"
void main(){
int n,i;
NODE *phead;
menu();
scanf("%d",&n);
while(n){
switch(n){
case 1:printf("请问要输入几个学生的信息:\n");
       scanf("%d",&i);
       phead=Creat(i);
       break;
case 2:Print(phead);
       break;
case 3:phead=Insert(phead);
       break;
case 4:printf("请输入要删除学生的学号:");
       scanf("%d",&i);
       Delete(phead,i);
       break;
case 5:printf("请输入要查找学生的学号:");
       scanf("%d",&i);
       Lookfor(phead,i);break;
case 6:printf("所有学生的平均成绩是:%f\n",AverageAll(phead));break;
case 7:printf("请输入要查找学生的学号:");
       scanf("%d",&i);
       printf("学号为%d的成绩是:%f\n",i,AverageSigle(phead,i));break;
case 8:printf("请输入要修改学生的学号:\n");
       scanf("%d",&i);
       Revise_information(phead,i);break;
case 9:phead=Ascendline(phead);printf("排序完成!\n");
       Print(phead);
       break;
case 10:phead=Descendline(phead);printf("排序完成!\n");
       Print(phead);
       break;
default:printf("输入错误!\n");break;
}
menu();
scanf("%d",&n);
}
}
2016-06-16 16:16
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:3 
或者你看下这个,是不是更容易理解点,大同小异,理解了的话你的那个就容易写了
student.rar (5.24 KB)

                    --论坛直接下载的--作者:蚂蚁的哲学
难度不是很大的,无非是一些知识点的整合使用,你分步写,一个功能一个功能来,不要一看这么长代码就慌了,没耐心没细心写了,其实你理解之后就感觉豁然开朗了。加油

[此贴子已经被作者于2016-6-16 16:23编辑过]

2016-06-16 16:20
MeU
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2016-5-5
收藏
得分:0 
回复 6楼 wanglianyi1
谢谢大神,我试试看吧!!!
2016-06-16 17:05
MeU
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2016-5-5
收藏
得分:0 
回复 5楼 lanke711
谢谢,我试试
2016-06-16 17:08
MeU
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2016-5-5
收藏
得分:0 
我只能改成酱紫了,能不能麻烦哪位大神帮我完善一下!!真的非常感谢!!
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedef struct NODE
{
    char name[20];
    int ID;
    float nianxin;
    int age[3];
    float high;
    struct NODE *next;
} NODE;

typedef struct NODE1
{
    char name[20];
    char city[20];
    int num;
    struct NODE1 *next;
} NODE1;

int index=0;

//输入某个球员的信息
NODE *Creat(int n)
{
    NODE *phead,*p,*previous;
    int i;
    phead=(NODE*)malloc(sizeof(NODE));
    previous=phead;
    previous->next=NULL;
    for(i=0;i<n;i++)
    {
        p=(NODE*)malloc(sizeof(NODE));
        printf("please input name,ID\n");
        scanf("%s%d",&p->name,&p->ID);
        printf("please input nianxin:\n");
        scanf("%f",&p->nianxin);
        printf("please input age:\n");
        scanf("%d",&p->age);
        printf("please input high:\n");
        scanf("%f",&p->high);
        previous->next=p;
        p->next=NULL;
        previous=p;
        index++;
    }
return phead;
}

//增加某个球员的信息
NODE* Insert(NODE *phead)
{
    NODE *ptemp,*p1;
    ptemp=phead;
    p1=(NODE*)malloc(sizeof(NODE));
    printf("please input name,ID\n");
    scanf("%s%d",&p1->name,&p1->ID);
    printf("please input nianxin:\n");
    scanf("%f",&p1->nianxin);
    printf("please input age:\n");
    scanf("%d",&p1->age);
    printf("please input high:\n");
    scanf("%f",&p1->high);
    p1->next=ptemp->next;
    ptemp->next=p1;
    index++;
    return phead;
}
//删除某个球员的信息
NODE* Delete(NODE*phead ,int i)
{
    NODE *ptemp,*previous;
    ptemp=phead;
    ptemp=ptemp->next;
    previous=ptemp;
    while(ptemp!=NULL&&(ptemp->ID!=i))
    {
        previous=ptemp;
        ptemp=ptemp->next;
    }
    if(ptemp)
    {
        previous->next=ptemp->next;
        free(ptemp);
        printf("删除成功!\n");
    }
    return phead;
}

//查找某个球员的信息
void Lookfor(NODE *phead,int i)
{
    NODE *ptemp;
    ptemp=phead;
    ptemp=ptemp->next;
    while(ptemp!=NULL&&(ptemp->ID!=i))
        ptemp=ptemp->next;
    if(ptemp)
    {
        printf("*********球员信息************\n");
        printf("编号: %d\t姓名: %s\n",ptemp->ID,ptemp->name);
        printf("年薪: %f\n",ptemp->nianxin);
        printf("年龄: %d\n",ptemp->age);
        printf("身高: %f\n",ptemp->nianxin);
    }
}
//增加球队
NODE1* insert(NODE1 *phead)
{
    NODE1 *ptemp,*p1;
    ptemp=phead;
    p1=(NODE1*)malloc(sizeof(NODE1));
    printf("please input name\n");
    scanf("%s",&p1->name);
    printf("please input city:\n");
    scanf("%s",&p1->city);
    printf("please input num:\n");
    scanf("%d",&p1->num);
    p1->next=ptemp->next;
    ptemp->next=p1;
    index++;
    return phead;
}
//删除球队
NODE1* delete(NODE1*phead ,char name[20])
{
    NODE1 *ptemp,*previous;
    ptemp=phead;
    ptemp=ptemp->next;
    previous=ptemp;
    while(ptemp!=NULL&&(ptemp->name!=name))
    {
        previous=ptemp;
        ptemp=ptemp->next;
    }
    if(ptemp)
    {
        previous->next=ptemp->next;
        free(ptemp);
        printf("删除成功!\n");
    }
    return phead;
}
//修改球员的信息
void Revise_information(NODE*phead,int i)
{
    NODE *ptemp;
    ptemp=phead;
    ptemp=ptemp->next;
    while(ptemp!=NULL&&(ptemp->ID!=i))
    {
        ptemp=ptemp->next;
    }
    if(ptemp)
    {
        printf("请输入修改的姓名:");
        scanf("%s",&ptemp->name);
        printf("请输入要修改的编号:");
        scanf("%d",&ptemp->ID);
        printf("请输入要修改的年薪:");
        scanf("%f",&ptemp->nianxin);
        printf("请输入要修改的年龄:");
        scanf("%f",&ptemp->age);
        printf("请输入要修改的身高:");
        scanf("%f",&ptemp->high);
        printf("修改成功!\n");
    }
}
//按照年薪递增的顺序排列
NODE* Ascendline(NODE*phead)
{
    NODE*ptemp,*previous,*p1;
    int i;
    for(i=0;i<index;i++)
    {
        ptemp=phead;
        p1=ptemp;
        previous=ptemp=ptemp->next;
        ptemp=ptemp->next;
        while(ptemp!=NULL)
        {
            float m,n;
            m=ptemp->nianxin;
            n=previous->nianxin;
            if(n>m)
            {
                p1->next=ptemp;
                previous->next=ptemp->next;
                ptemp->next=previous;
            }
            p1=previous;
            previous=ptemp;
            ptemp=ptemp->next;

        }
    }
    return phead;
}
//按照递减的顺序排列

void menu()
{
    printf("*************NBA球队信息查询系统************************\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("9.按照年薪递增的顺序排列\n");
    printf("10.\n");
}#include "head.h"


void main()
{
    int n,i;
    NODE *phead;
    menu();
    scanf("%d",&n);
    while(n)
    {

        switch(n)
        {
        case 1:printf("请问要输入几个球员的信息:\n");
            scanf("%d",&i);
            phead=Creat(i);
            break;
        case 2:;
            break;
        case 3:phead=Insert(phead);
            break;
        case 4:printf("请输入要删除球员的编号:");
            scanf("%d",&i);
            Delete(phead,i);
            break;
        case 5:printf("请输入要查找球员的编号:");
            scanf("%d",&i);
            Lookfor(phead,i);
            break;
        case 6:phead=insert(phead);
            break;
        case 7:printf("请输入要删除球队的名称:");
            scanf("%s",name);
            delete(phead,name);
            break;
        case 8:printf("请输入要修改球员的编号:\n");
            scanf("%d",&i);
            Revise_information(phead,i);break;
        case 9:phead=Ascendline(phead);printf("排序完成!\n");
            Print(phead);
            break;
        case 10:;
            break;
        default:printf("输入错误!\n");break;
        }
        menu();
        scanf("%d",&n);
    }
}


[此贴子已经被作者于2016-6-16 20:04编辑过]

2016-06-16 19:59
快速回复:NBA信息管理系统(没头绪,求大神指教)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020340 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved