| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2410 人关注过本帖
标题:求大神!大一期末做课程设计,遇到问题。关于链表。
只看楼主 加入收藏
张耀元
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2016-12-7
收藏
得分:0 
回复 8楼 九转星河
好的,就是源代码,九百多行了,谢谢啦。

有生之年 欣喜相逢
2016-12-30 23:37
张耀元
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2016-12-7
收藏
得分:0 
源代码超过5000行,不让我发!!

有生之年 欣喜相逢
2016-12-30 23:38
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
这么厉害~~发个压缩文件把~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-31 00:05
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
我也正在写一个大工程的链表管理系统……已经写得超过500行了,但是还有一大部分功能没写~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-31 00:07
张耀元
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2016-12-7
收藏
得分:0 
就是查询成绩那里,把成绩查询出来。
学生成绩管理.rar (254.51 KB)

有生之年 欣喜相逢
2016-12-31 00:35
张耀元
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2016-12-7
收藏
得分:0 
回复 10楼 炎天
还是不行。应该是链表的问题。

有生之年 欣喜相逢
2016-12-31 00:43
张耀元
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2016-12-7
收藏
得分:0 
程序代码:
//把头结点赋值为p了。可是还是不行。不知道问题出在哪。成绩不出来,显示最后那个查找结束
//普通学生按学号查询某门课程的得分
void chaxunmoumenke()
{
    system("CLS");
    int i,x;
    char num[10]; 

    char flag = '0';
    struct work *head=NULL;
    head=(struct work *)malloc(sizeof(struct work));
    memset(head,0,sizeof(struct work));
    head=lianbiao();
    struct work *p=head;

    while(flag == '0')  

    {  

          printf("请输入要查找的学生的学号(xxxx):  ");  

          scanf("%d",&num);   

          fflush(stdin);    

             struct work *p=head;              //将头结点head赋值与p  

          if(head == NULL)              //如果链表中头结点为空,则查询错误  

          { 

                printf("查询失败1.\n");       

                printf("不存在此学生信息.\n"); 

                return ; 

          }  

          else                              //否则开始查询  

          {  

              while(p != NULL)  

              {  

                    if(p->no == num)      //找到学号为num的学生就输出  

                    {  

                        do
                        {
                            printf("请输入需要查询的课程(课程1/课程2/课程3)[请输入1,2,3]:\n");
                            scanf("%d",&x);

                            switch(x)
                                {
                                case 1:printf(" %s  \n",p->chengji1),i=1;break;
                                case 2:printf(" %s  \n",p->chengji2),i=1;break;
                                case 3:printf(" %s  \n",p->chengji3),i=1;break;
                                default:
                                    {
                                        i=0;
                                        printf("没有该课程!请重新输入!");
                                    }
                                }
                        }while(x==0);     

                        break;  

                    }  

                    else  

                        p = p -> next;  

                }  

          }  

    

          printf("查找结束.\n");   

          fflush(stdin);  

    } 

}

有生之年 欣喜相逢
2016-12-31 00:45
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:0 
以下是引用张耀元在2016-12-30 13:48:36的发言:

//用链表将文件里的学生基本信息读出来

struct work *lianbiao()
{
    struct work *head=NULL;
    struct work *node=NULL;
    FILE *fp=NULL;
    if((fp=fopen("jiben.txt","rb"))==NULL)
    {
        printf("打开文件失败!");
        return NULL;
    }
    else
    {
        while(!feof(fp))
        {
            node=(struct work *)malloc(sizeof(struct work));
            memset(node,0,sizeof(struct work));

            struct work curWork;
            if(fread(&curWork,sizeof(struct work),1,fp)==1)
            {               

                node->chengji1 =curWork.chengji1;
                node->chengji2 = curWork.chengji2;
                node->chengji3 = curWork.chengji3;
                strcpy(node->idno, curWork.idno);
                strcpy(node->mima, curWork.mima);
                strcpy(node->name, curWork.name);
                strcpy(node->no, curWork.no);
                strcpy(node->powr, curWork.powr);

                node->next=head;
                head=node;
            }
        }
    }
    fclose(fp);
    return head;
}

这个 curWork 环节是否可取消?
        while(!feof(fp))
        {
            node=(struct work *)malloc(sizeof(struct work));
            if(fread(node,sizeof(struct work),1,fp)==1)
            {               
                node->next=head;
                head=node;
            }
            else
                free(node);            
        }

[此贴子已经被作者于2016-12-31 06:15编辑过]

2016-12-31 06:13
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:0 
以下是引用张耀元在2016-12-30 13:48:36的发言:


//普通学生查询某门课程的得分
void chaxunmoumenke()
{
    system("CLS");
    int i,x;
    struct work *head=NULL;
    head=(struct work *)malloc(sizeof(struct work));
    memset(head,0,sizeof(struct work));
    head=lianbiao();
    struct work *p=head;

    do
    {
        printf("请输入需要查询的课程(课程1/课程2/课程3)[请输入1,2,3]:\n");
        scanf("%d",&x);

        switch(x)
            {
            case 1:printf(" %s  \n",head->chengji1),i=1;break;
            case 2:printf(" %s  \n",head->chengji2),i=1;break;
            case 3:printf(" %s  \n",head->chengji3),i=1;break;
            default:
                {
                    i=0;
                    printf("没有该课程!请重新输入!");
                }
            }
         head=head->next;
    }while(x==0);
 }
}

    struct work *head=NULL;
    head=(struct work *)malloc(sizeof(struct work));
    memset(head,0,sizeof(struct work));
    head=lianbiao();
这几句试试改为这样:
    struct work *head=lianbiao();
2016-12-31 06:22
张耀元
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2016-12-7
收藏
得分:0 
回复 19楼 吹水佬
还是不行,成绩不出来。

有生之年 欣喜相逢
2016-12-31 13:18
快速回复:求大神!大一期末做课程设计,遇到问题。关于链表。
数据加载中...
 
   



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

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