| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1499 人关注过本帖
标题:求大神看看这段代码哪错了,谢谢
只看楼主 加入收藏
不呐呐
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-4-10
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:9 
求大神看看这段代码哪错了,谢谢
#include<stdio.h>
#include<stdlib.h>
#define N 5
//学生信息
struct student
{
    int no;//学号
    char name[20];//姓名
    int score;//成绩
};
typedef struct student elemType;
typedef struct
{
    elemType *elem;//首地址
    int length;//长度
    int listSize;//容量

}sqList;//学生信息表
int menu() //菜单
{
    int select;
    do
    {
        system("cls");
        printf("\t********欢迎使用学生成绩管理系统********\n");
        printf("\t*[1] 输入所有学生信息                  *\n");//唐密
        printf("\t*[2] 输出所有学生成绩                  *\n");//唐密
        printf("\t*[3] 按学号查找某个学生信息            *\n");//宋雨佳
        printf("\t*[4] 按姓名查找某个学生信息            *\n");//鹏鹏
        printf("\t*[5] 按学号对学生排序                  *\n");//高锋
        printf("\t*[6] 按总成绩对学生排序                *\n");//高锋
        printf("\t*[7] 按姓名修改某个学生信息            *\n");//杜彬
        printf("\t*[8] 按学号修改某个学生信息            *\n");//杜彬
        printf("\t*[9] 按姓名删除某个学生信息            *\n");//鹏鹏
        printf("\t*[10] 按学号删除某个学生信息           *\n");//吴春荣
        printf("\t*[0] 退出程序                          *\n");
        printf("\t****************************************\n");
        printf("\t>>>请选择相应的功能[0-10]:");
        scanf("%d",&select);
    }while(select<0||select>10);
    return select;
}
//初始化分配空间:为线性表L分配容量为size的空间
//返回1:成功,0:失败
int InitList(sqList *L,int size)
{
    L->elem=(elemType *)malloc(size*sizeof(elemType));
    if(L->elem==NULL)return 0;
    L->length=0;
    L->listSize=size;
    return 1;
}
//输入一个学生的信息
elemType inputStudent()
{
    elemType stu;
    printf("\t>>>学号:");
    scanf("%d",&stu.no);
    printf("\t>>>姓名:");
    fflush(stdin);
    gets(stu.name);
    printf("\t>>>成绩:");
    scanf("%d",&stu.score);
    return stu;
}
//显示所有学生的信息
void displayAll(sqList list)
{
    int i;
    printf("\t   学号\t姓名\t成绩\n");
    for(i=0;i<list.length;i++)
    {
        printf("\t   %d\t%s\t%d\n",list.elem[i].no,list.elem[i].name,list.elem[i].score);

    }
}




int DelectList(sqList *L,int i,elemType *e)
{
    int j;
    //检查删除位置是否正确
    if(i<1||i>L->length)return 0;
    //1.保存待删除的元素
    *e=L->elem[i-1];
    //2.从第i+1元素到第n个元素,依次前移
    for(j=i;j<L->length;j++)
    {
        L->elem[j-1]=L->elem[j];
    }
    //3.长度减1
    L->length--;
    return 1;
}
//查找:在线性表L中查找学号为num的元素,返回:0-失败,成功返回其位序
int LocateList(sqList *L,int num)
{
    int i;
    for(i=0;;i++)
    {
        if(L->elem[i].no==num){return i+1;break;}
        else return 0;
    }
}
   
//主函数
int main()
{
    sqList list;//学生信息表
    elemType stu,e;//一个学生信息
    int i,j;
    char ch;
    InitList(&list,30);//初始化学生信息表
    while(1)
     {
              i=menu();
              switch(i){
        case 10://按学号删除某个学生信息
            int z;
            printf("请输入要删除的学号:\n");
            
            scanf("%d",&z);//输入学号
            i=LocateList(&list,z);
            if(i<0)printf("无此学生!!\n");
            j=DelectList(&list,i,&stu);      
                                             
            if(j>0)                          
            {
                printf("\t   删除成功!\n");     
            }                                //成功:显示删除的学生信息
            else
            {
                printf("\t   删除失败!无此学生\n");
            }
            system("pause");

            break;
        case 0://退出程序
            printf("\t>>>亲,您确定要退出程序吗!?(Y/N):");
            fflush(stdin);//清除缓存
            ch=getchar();
            if(ch=='Y'||ch=='y')
            {
                return 0;//exit(0);

            }
            break;
        }
    }

    return 0;
}
搜索更多相关主题的帖子: 姓名 信息 system 管理系统 include 
2016-04-11 08:46
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:0 
有错误提示最好一起放上来
2016-04-11 08:49
不呐呐
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-4-10
收藏
得分:0 
没有人理我……
2016-04-11 08:49
不呐呐
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-4-10
收藏
得分:0 
错误提示--------------------Configuration: 学生成绩管理系统 - Win32 Debug--------------------
Compiling...
学生成绩管理系统.c
C:\Users\anna\Desktop\wcr\学生成绩管理系统.c(158) : error C2143: syntax error : missing ';' before 'type'
C:\Users\anna\Desktop\wcr\学生成绩管理系统.c(161) : error C2065: 'z' : undeclared identifier
执行 cl.exe 时出错.

学生成绩管理系统.exe - 1 error(s), 0 warning(s)
2016-04-11 08:50
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:0 
while(1)
     {
              i=menu();
              switch(i){
        case 10://按学号删除某个学生信息
            int z;                            这里的int z放到前面定义,不要在while里面定义。

下楼我贴给你修改过的,gcc可以通过了
图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2016-4-11 08:55编辑过]

2016-04-11 08:52
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:20 
#include<stdio.h>
#include<stdlib.h>
#define N 5
//学生信息
struct student
{
    int no;//学号
    char name[20];//姓名
    int score;//成绩
};
typedef struct student elemType;
typedef struct
{
    elemType *elem;//首地址
    int length;//长度
    int listSize;//容量

}sqList;//学生信息表
int menu() //菜单
{
    int select;
    do
    {
        system("cls");
        printf("\t********欢迎使用学生成绩管理系统********\n");
        printf("\t*[1] 输入所有学生信息                  *\n");//唐密
        printf("\t*[2] 输出所有学生成绩                  *\n");//唐密
        printf("\t*[3] 按学号查找某个学生信息            *\n");//宋雨佳
        printf("\t*[4] 按姓名查找某个学生信息            *\n");//鹏鹏
        printf("\t*[5] 按学号对学生排序                  *\n");//高锋
        printf("\t*[6] 按总成绩对学生排序                *\n");//高锋
        printf("\t*[7] 按姓名修改某个学生信息            *\n");//杜彬
        printf("\t*[8] 按学号修改某个学生信息            *\n");//杜彬
        printf("\t*[9] 按姓名删除某个学生信息            *\n");//鹏鹏
        printf("\t*[10] 按学号删除某个学生信息           *\n");//吴春荣
        printf("\t*[0] 退出程序                          *\n");
        printf("\t****************************************\n");
        printf("\t>>>请选择相应的功能[0-10]:");
        scanf("%d",&select);
    }while(select<0||select>10);
    return select;
}
//初始化分配空间:为线性表L分配容量为size的空间
//返回1:成功,0:失败
int InitList(sqList *L,int size)
{
    L->elem=(elemType *)malloc(size*sizeof(elemType));
    if(L->elem==NULL)return 0;
    L->length=0;
    L->listSize=size;
    return 1;
}
//输入一个学生的信息
elemType inputStudent()
{
    elemType stu;
    printf("\t>>>学号:");
    scanf("%d",&stu.no);
    printf("\t>>>姓名:");
    fflush(stdin);
    gets(stu.name);
    printf("\t>>>成绩:");
    scanf("%d",&stu.score);
    return stu;
}
//显示所有学生的信息
void displayAll(sqList list)
{
    int i;
    printf("\t   学号\t姓名\t成绩\n");
    for(i=0;i<list.length;i++)
    {
        printf("\t   %d\t%s\t%d\n",list.elem[i].no,list.elem[i].name,list.elem[i].score);

    }
}




int DelectList(sqList *L,int i,elemType *e)
{
    int j;
    //检查删除位置是否正确
    if(i<1||i>L->length)return 0;
    //1.保存待删除的元素
    *e=L->elem[i-1];
    //2.从第i+1元素到第n个元素,依次前移
    for(j=i;j<L->length;j++)
    {
        L->elem[j-1]=L->elem[j];
    }
    //3.长度减1
    L->length--;
    return 1;
}
//查找:在线性表L中查找学号为num的元素,返回:0-失败,成功返回其位序
int LocateList(sqList *L,int num)
{
    int i;
    for(i=0;;i++)
    {
        if(L->elem[i].no==num){return i+1;break;}
        else return 0;
    }
}
   
//主函数
int main()
{
    int z;
    sqList list;//学生信息表
    elemType stu,e;//一个学生信息
    int i,j;
    char ch;
    InitList(&list,30);//初始化学生信息表
    while(1)
     {
              i=menu();
              switch(i){
        case 10://按学号删除某个学生信息
 //           int z;
            printf("请输入要删除的学号:\n");
            
            scanf("%d",&z);//输入学号
            i=LocateList(&list,z);
            if(i<0)printf("无此学生!!\n");
            j=DelectList(&list,i,&stu);      
                                             
            if(j>0)                          
            {
                printf("\t   删除成功!\n");     
            }                                //成功:显示删除的学生信息
            else
            {
                printf("\t   删除失败!无此学生\n");
            }
            system("pause");

            break;
        case 0://退出程序
            printf("\t>>>亲,您确定要退出程序吗!?(Y/N):");
            fflush(stdin);//清除缓存
            ch=getchar();
            if(ch=='Y'||ch=='y')
            {
                return 0;//exit(0);

            }
            break;
        }
    }

    return 0;
}
2016-04-11 08:53
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
收藏
得分:0 
你的代码没写完,另外switch语句最好加上default
2016-04-11 08:57
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:0 
回复 7楼 grmmylbs
嗯,他的功能模块没有全部完成,看他后面每个模块人注释名字,估计是几个同学分别写一块,然后放一起的。估计是想先调试他现在这部分代码。
#define N 5 这个貌似都是预留的,还没用到

[此贴子已经被作者于2016-4-11 09:06编辑过]

2016-04-11 09:05
不呐呐
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-4-10
收藏
得分:0 
回复 6楼 wanglianyi1
谢谢,调试没有错误了,怎么才可以让你得到这个积分😂😂不会操作😂😂
2016-04-11 09:30
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:0 
回复 9楼 不呐呐
不客气,能帮到你最好;结贴就行了。好像每楼可以填分数,不过也可以自动分配分数好像。
2016-04-11 09:46
快速回复:求大神看看这段代码哪错了,谢谢
数据加载中...
 
   



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

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