| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1376 人关注过本帖
标题:需要高手指点
只看楼主 加入收藏
WJbobo
Rank: 1
等 级:新手上路
帖 子:85
专家分:3
注 册:2008-4-10
结帖率:76.92%
收藏
 问题点数:0 回复次数:10 
需要高手指点
这是一个学员成绩管理的程序,有这些功能。学员成绩的录入,显示,排序,查询,修改,删除,退出等功能。
#include"stdio.h"
#include"stdlib.h"
#include"conio.h"
struct student
{
    int no;          //学号
    char name[20];   //姓名
    float score[2];  //两门课的成绩
    float avg;       //平均成绩
};
struct student input();                  
void display(struct student[],int);         //单个学员信息的录入
void sort(struct student[],int);           //显示所有学员信息
int pind(struct student[],int,int);       //排序  
void puery(struct student[],int);        //根据学号查找学员  
void ppdate(struct student[],int);      //修改学员信息   
void pemove(struct student[],int*);    //删除信息
void main()
{
     struct student stu[20];
     int count=0;
     char sel='1',flag;
     while(sel !='7')
     {
         system("cls");//清屏函数
         printf("---------------------学生信息管理系统-------------------------\n\n");
         printf("1.录入\n2.显示\n3.排序\n4.查询\n5.修改\n6.删除\n7.退出\n");
         printf("\n请选择:");
         sel=getchar();
         switch(sel)
         {
     case '1':
         system("cls");
         do
         {
             stu[count]=input();
             count++;
             printf("\n是否继续(y/n):");
             fflush(stdin);
             flag=getchar();

         }while(flag=='y'||flag=='Y');
         break;
     case '2':
             display(stu,count);
             break;
     case '3':
             sort(stu,count);
             break;
     case '4':
             puery(stu,count);
             break;
     case '5':
            ppdate(stu,count);
             break;
     case '6':
             pemove(stu,&count);
             break;
         }        
     }
     }
//单个学员信息录入
struct student input()
{
    struct student stu;
    float sum;
    int j;
    printf("\n学号:");
    scanf("%d",&stu.no);
    printf("\n姓名:");
    scanf("%d",&stu.name);
    printf("\n两门成绩:\n");
    sum=0;
    for(j=0;j<2;j++)
    {
        printf("成绩%d:",j+1);
        scanf("%f",&stu.score[j]);
        sum+=stu.score[j];
    }
    stu.avg=sum/2.0;
    return stu;
}
//显示所有学员的信息
void display(struct student stud[],int count)
{
    system("cls");
    printf("\n%-8s%-12s%-12s%-12s%s","学号","姓名","成绩一","成绩二","平均成绩");
    printf("\n%-8s%-12s%-12s%-12s%s\n","====","====","======","======","=======");
    for(int i=0;i<count;i++)
    {
        printf("%-8d",stud[i].no);
        printf("%-12d",stud[i].name);
        printf("%-12d",stud[i].score[0]);
        printf("%-12d",stud[i].score[1]);
        printf("%-12d",stud[i].avg);
        printf("\n");

    }
    printf("\n按任意键返回主采单:");
    getch();
}
//排序
void sort(struct student  stud[],int count)
{
    struct student t;
    int i,j;
    //冒泡
    for(i=0;i<count-1;i++)
    {
        for(j=count-1;j>i;j--)
        {
            if(stud[j].avg>stud[j-1].avg)
            {
                t=stud[j];
                stud[j]=stud[j-1];
                stud[j-1]=t;
                
            }
        }
    }
    system("cls");
    printf("\n排序已完成,请按任意键返回主菜单:");
    getch();
}
    //根据学号查找学员函数 ,找到返回该学员在数组中的下标,没找到返回-1
    int find(struct student stud[],int count,int no)
    {
        int i;
        for(i=0;i<count;i++);
        {
            if(stud[i].no==no)
                return i;
        
    }
          return -1;

}
//根据学号查询并显示学员的信息
void fuery(struct student stud[],int count)
{
    int dno,i;
    system("cls");
    printf("\n请输入要查询学员的学号:");
    scanf("%d",&dno);
    i=find(stud,count,dno);
    if(i==1)
    {
        printf("\n你所要查询的学员你存在!按任意键返回主菜单:");
        getch();
        return;
    }
    printf("\n%-8s%-12s%-12s%-12s%s","学号","姓名","成绩一","成绩二","平均成绩");
        printf("\n%-8s%-12s%-12s%-12s%s","====","====","=====","=====","=======");
        printf("%-8d",stud[i].no);
        printf("%-12s",stud[i].name);
        printf("%-12.2f",stud[i].score[0]);
        printf("%-12.2f",stud[i].score[1]);
        printf("%-.2f\n",stud[i].avg);
        printf("\n请按任意键返回主菜单:");
        getch();
}
//修改学员信息
void update(struct student stud[],int count)
{
    int dno,i;
    system("cls");
    printf("\n请输入要修改学员的学号:");
    scanf("%d",&dno);
    i=find(stud,count,dno);
    if(i==-1)
    {
        printf("\n你所要修改的学员不存在,按任意键返回主菜单:");
        getch();
        return;
    }
    stud[i]=input();
    printf("\n修改成功!按任意键返回主菜单:");
    getch();
}
//删除学员信息
void remove(struct student stud[],int*count)
{
    int dno,i;
    system("cls");
    printf("\n请输入要删除的学员学号:");
    scanf("%d",&dno);
    if(i==-1)
    {
        printf("\n你所要删除的学号不存在!按任意键返回主菜单:");
        getch();
        return;
    }
    for(int j=i;j<*count-1;j++)
    {
        stud[j]=stud[j+1];
    }
    (*count)--;
    printf("\n删除成功!按任意键返回主菜单:");
    getch();
}



错误    18    error LNK2019: 无法解析的外部符号 "void __cdecl pemove(struct student * const,int *)" (?pemove@@YAXQAUstudent@@PAH@Z),该符号在函数 _main 中被引用    1003.obj
错误    19    error LNK2019: 无法解析的外部符号 "void __cdecl ppdate(struct student * const,int)" (?ppdate@@YAXQAUstudent@@H@Z),该符号在函数 _main 中被引用    1003.obj
错误    20    error LNK2019: 无法解析的外部符号 "void __cdecl puery(struct student * const,int)" (?puery@@YAXQAUstudent@@H@Z),该符号在函数 _main 中被引用    1003.obj
错误    21    fatal error LNK1120: 3 个无法解析的外部命令    D:\My Documents\Visual Studio 2005\Projects\1001\Debug\1001.exe
搜索更多相关主题的帖子: include 学员 学号 int 
2008-06-20 14:33
scl512
Rank: 1
来 自:福建
等 级:新手上路
帖 子:35
专家分:0
注 册:2008-6-20
收藏
得分:0 
网上找的把!!自己写个把!!呵呵!!
2008-06-20 17:35
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
自己打字错误,怪谁?
作业不会自己写在网上找,鄙视,找了抄不对,鄙视,抄不对吧还不会自己调试,再鄙视,鄙视鄙视鄙视!!!

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-06-20 18:51
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
翅膀你怎么那么像女孩?还是你把你号给你女朋友用了

学习需要安静。。海盗要重新来过。。
2008-06-20 18:52
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
pemove打错字了,改为remove
ppdate打错字了,改为update

改到这里,我发现,这个代码好像不是你自己写的吧?应该是在网络上找的。
谁自己写代码会把所有函数都打错呢???

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2008-06-20 18:59
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
说不定是人家发代码前故意打错了呢~~~
对楼上某人:鄙视鄙视鄙视!!!

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-06-20 19:08
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
恩,我也是这么想地。的确有人,为了不让下载代码的人不劳而获,故意打错。
结果…………

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2008-06-20 19:10
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
恩恩,我要学习飞燕,以后放代码的时候加上版权标志,而且故意打错几个字~~~

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-06-20 19:13
WJbobo
Rank: 1
等 级:新手上路
帖 子:85
专家分:3
注 册:2008-4-10
收藏
得分:0 
伤心啊!我才不会到网上找代码呢?说实话把,这是我们书上的,有几个地方我有点不懂。所以拿上来看看。不是我搞错了,是垃圾书上的错了。
2008-06-21 09:54
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
这么多人推荐经典名著你不看要去看垃圾书,怪谁?

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-06-21 09:59
快速回复:需要高手指点
数据加载中...
 
   



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

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