标题:求在线大神一数据结构的题
取消只看楼主
瑶瑶猪猪
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-3-24
结帖率:0
已结贴  问题点数:20 回复次数:5 
求在线大神一数据结构的题


利用线性表的顺序存储结构,建立班级学生成绩单应用程序,要求能够插入、查找、更新和删除班级学生成绩的信息, 注意编写代码的规范性。
(有六个人)


搜索更多相关主题的帖子: 应用程序 成绩单 规范性 线性表 在线 
2015-03-24 19:29
瑶瑶猪猪
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-3-24
得分:0 
回复 3楼 诸葛欧阳
nonono不是啊


#include<stdio.h>
#define 7
typedef struct student
{
    int num;
    char name[64];
    float score;
    struct student *Next;
}student,*Pstudent;
typedef struct student node;
typedef node *Link;
Link insert_list(Link head,Link New,int key)
{
    Link pointer;
    Link Tmp;
    pointer=head;
    while
    {
        if(pointer==NULL)
        {
            New->Next=pointer->Next;
            pointer->Next=New;
            break;
            }
            pointer=pointer->Next;
    }
    return head;
}。。。。。我总感觉前面缺了点什么
2015-03-24 19:33
瑶瑶猪猪
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-3-24
得分:0 
回复 4楼 瑶瑶猪猪
我们c语言和数据结构进度不同....然后就有点懵,我参考很多就混乱了
2015-03-24 19:34
瑶瑶猪猪
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-3-24
得分:0 
回复 6楼 TonyDeng
真的好慢...我们用的还是win tc......c语言刚刚才讲指针....
2015-03-24 19:39
瑶瑶猪猪
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-3-24
得分:0 
回复 10楼 TonyDeng
- -我现学了,改完了...可还是有错啊...运行不出来


#include<stdio.h>
#define MAXSIZE 100
typedef struct student
{
    int num;
    char name[64];
    float score;
    int data[MAXSIZE];
    struct student *Next;
}student,*Pstudent;
typedef struct seqlist
{
 
    int length;
    int data[MAXSIZE];
}seqlist,*PSeqList;
PSeqList Init_SeqList( )
{
    PSeqList PL;
    PL=(PSeqList)malloc(sizeof(SeqList));
    if (PL)
    PL->length=0;
    return (PL);
}
void Destroy_SeqList(PSeqList *PL)
{
if (*PL)
free (*PL) ;

*PL=NULL;
return ;
}
int Length_SeqList(PSeqList PL)
{
if (PL)
return (PL->length) ;

return (-1);
}
int Location_SeqList (PSeqList PL, int x)
{
int i=0;
if (!PL)
{
printf("不存在,不能检查");
return(-1);
}

while (i<PL->length&& PL->data[i]!= x)
i++;

if (i>=PL->length)
return 0;
else
return (i+1);
}
int Insert_SeqList(PSeqList PL,int i,int x)
{
int j;
if (!PL)
{
printf("表不存在");
return (-2);
}  

if (PL->length>= MAXSIZE)
{
printf("空间已满");
return(-1);
}  
if(i<1 || i>PL->length+1)
{
printf("插入位置不合法");
return (0);
}

for(j= PL->length-1;j>=i-1;j--)
PL->data[j+1]= PL->data[j];

PL->data[i-1]=x;
PL->length++;
return (1);
}
int Delete_SeqList(PSeqList PL,int i)
{
int j;
if (!PL)
{
printf("不存在,不能删除元素");
return(-1);
}
if(i<1 || i> PL->length)
{
printf("删除位置不合法");
return(0);
}
for(j=i; j<PL->length; j++)
PL->data[j-1]= PL->data[j];
PL->length--;
return (1);
}
 
void Print_Choice()
{
printf("请输入你要进行的操作:\n");
printf("1.插入信息\n");
printf("2.删除信息:\n");
printf("3.查找信息:\n");
printf("4.更改信息:\n");
printf("5.退出:\n");
return;
}
void Print_SeqList(PSeqList PL)
{
printf("\图表如下:");

int i=0;
for(i=0;i<PL->length;i++)
{
printf("学生学号:%d\n学生姓名:%s\n学生成绩:%f\n",PL->student[i].num,PL->student[i].name,PL->student[i].score);
}

printf("\n");
}
void Insert(PSeqList PL)
{
int i;
int num;
char name[20];
float score;
printf("请输入要插入的位置:\n");
scanf("%d",&i);
printf("请输入学生的学号:\n");
scanf("%d",&num);
printf("请输入学生的姓名:\n");
scanf("%s",&name);
printf("请输入学生的成绩:\n");
scanf("%f",&score);
}

Insert_SeqList(PL,i,x);
Print_SeqList(PL);
}
void Delete(PSeqList PL)
{
int i;
printf("请输入删除的位置:");
scanf("%d",&i);

Delete_SeqList(PL,i);
Print_SeqList(PL);
}

void Locate(PSeqList PL)
{
int Locate(pl);
printf("请输入想查找的学生信息:");
datatype x;
scanf("%d",&x);

int i=Location_SeqList(PL,x);
if(i>0)
{
printf("该学生在%d中",i);
printf("请输入你要查找的学生信息:\n学生学号:%d\n学生姓名:%s\n学生成绩:%f\n",PL->student[i].num,PL->student[i].name,PL->student[i].score)
}
else if(i==0)
printf("未查到");
else("erro")
Print_SeqList(PL);
}

int Renew(PseqList PL)
{
    int x,choice,num,score;
    char name[20];
    printf("请输入想更改的学生信息:");
    scanf("%d",&x);
    int i=Location_SeqList(PL,x);
    if(i>0)
    printf("请输入你要更改的学生信息:\n学生学号:%d\n学生姓名:%s\n学生成绩:%f\n",PL->student[i].num,PL->student[i].name,PL->student[i].score)
    printf("请选择更改项目");
    printf("更改学号");
    printf("更改名字");
    printf("更改成绩");
    printf("返回");
   
    scanf("%d",&choice);
while(1)
{
    switch(choice)
    {
        case 1:
        printf("请输入新的学号:\n");
        scanf("%d",&num);
        PL->student[i-1].num=num;
        return 0;
        case 2:
        printf("请输入新的姓名:\n");
        scanf("%s",name);
        strcpy(PL->student[i-1].name=name);
        return 0;
        case 3:
        printf("请输入新的成绩:\n");
        scanf("%f",&score);
        PL->student[i-1].score=score;
        case 4:
        return 0;
        default:
        printf("输入错误,请重新输入");
        break;
        
    }
    }
}


int main()
{
    PseqList student=Init_SeqList();
    int choice;
   
    while(1)
    {
        Print_SeqList(student);
        Print_Choice();
        scanf("%d",&choice);
        
        switch(choice)
        {
            case 1:
            Insert(student);
            break;
            case 2:
            Delete(student);
            break;
            case 3:
            Locate(student);
            break;
            case 4:
            Renew(student);
            break;
            case 5:
            Destroy_SeqList(&student);
            return 0;
            default:
            printf("输入错误,请重新输入");
            break
        }
    }
}   
   

2015-03-24 23:28
瑶瑶猪猪
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-3-24
得分:0 
回复 15楼 longwu9t
谢谢....这个估计以后才能看懂
2015-03-24 23:34



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-443033-1-1.html




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

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