| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 469 人关注过本帖
标题:删除学生信息这段程序有问题不知道怎么解决!!!
只看楼主 加入收藏
Small包子
Rank: 1
等 级:新手上路
帖 子:23
专家分:3
注 册:2013-3-20
结帖率:0
收藏
已结贴  问题点数:5 回复次数:2 
删除学生信息这段程序有问题不知道怎么解决!!!
程序代码:
#include<stdio.h>
#include<conio.h>
#include<string.h>  
#include<stdlib.h>
#define N  80
int m=0;
struct student
{    char name[20];
    int num;
    char cla[20];
    char sex[2];
    int score[5];
    int ave;
}stu[100];
void add()
{   int j,k,l;
        system("cls");  /*清屏*/
    printf("请输入要插入的学生成绩的人数:  ");
    scanf("%d",&m);
    for(j=0;j<m;j++)

    {    system("cls");  /*清屏*/
        printf("请输入学生姓名:  ");
    scanf("%s",stu[j].name);
    printf("请输入学生的学号:  ");
    scanf("%d",&stu[j].num);
    printf("请输入学生性别:  ");
    scanf("%s",stu[j].sex);
    printf("请输入班级:  ");
    scanf("%s",stu[j].cla);
    printf("请输入每个学生各科成绩");
    for(l=0;l<5;l++)
    scanf("%d",&stu[j].score[l]);
    printf("是否继续输入下一条记录,是输入(y/Y)");
    scanf("%*c%c",&k);
    if(k=='y'||k=='Y') continue;

    }
}

void sta()
{
    int j,l,avemax;
    int aave=0;
    system("cls");  /*清屏*/
    for(j=0;j<m;j++)
    {
     stu[j].ave=0;
     for(l=0;l<5;l++)
      stu[j].ave+=stu[j].score[l];
     stu[j].ave/=5;
    }

    for(j=0;j<m;j++)
        aave+=stu[j].ave;
        aave/=m;
        avemax=stu[0].ave;
        for(j=1;j<=m;j++)
        {
            if(avemax<stu[j].ave)  avemax=stu[j].ave;
        }
     printf("学生姓名          成绩平均分\n");
     for(j=0;j<m;j++)
     {
        printf("%s              \t%d\n",stu[j].name,stu[j].ave);
     }
     printf("所有学生的平均分:  %d",aave);
     printf("所有学生平均成绩的最高分:  %d",avemax);
    getch();
}

void change()
{
    int j,l,k;
    system("cls");  /*清屏*/
    for(j=0;j<m;j++)
    {    printf("%s   %d   %s   %s",stu[j].name,stu[j].num,stu[j].sex,stu[j].cla);
    printf("是否修改<y/Y>:\n");
    k=getche();
    if(k=='y')
    {printf("是否修改姓名<y/Y>:\n");
        k=getche();
        if(k=='y')
        {printf("请输入新的姓名:\n");
        scanf("%s",stu[j].name);}
        printf("是否修改学号<y/Y>:\n");
        k=getche();
        if(k=='y')
        {printf("请输入新的学号:\n");
        scanf("%d",&stu[j].num);}
        printf("是否修改性别<y/n>:\n");
        k=getche();
        if(k=='y')
        {printf("请输入新的性别:\n");
        scanf("%s",stu[j].cla);}
        printf("是否修改成绩<y/Y>");
        k=getche();
        if(k=='y');
        for(l=0;l<5;l++)
        {    printf("\n");            printf("%d\n",stu[j].score[l]);
            printf("是否修改该科成绩<y/n>");
        k=getche();
        if(k=='y')
        {    printf("请输入该科修改后的成绩:");
        scanf("%d",&stu[j].score[l]);}
        else continue;
        }
   
    }
    }
}
void del()
{
    int j,l,i;
    char k;
    system("cls");  /*清屏*/
    for(j=0;j<m;j++)
    {    printf("%s   %d   %s   %s\n",stu[j].name,stu[j].num,stu[j].sex,stu[j].cla);
    for(l=0;l<5;l++)
        printf("  %d",stu[j].score[l]);
        printf("\n");
        printf("是否要删除<y/Y>:");
        printf("\n");
        k=getche();
        if(k=='y')
        {
            for(i=0;i<10;i++)
            stu[j].name[i]=stu[j+1].name[i+1];
            stu[j].num=stu[j+1].num;
            for(i=0;i<2;i++)
            stu[j].sex[i]=stu[j+1].sex[i];
            for(i=0;i<5;i++)
            stu[j].cla[i]=stu[j+1].cla[i+1];
            for(l=0;l<5;l++)
                stu[j].score[l]=stu[j].score[l+1];
        }j--;
    }
    






}



void display()
{
    int j,l;
    system("cls");  /*清屏*/
    printf("姓名\t学号\t性别\t班级\t\t成绩\n");
    for(j=0;j<m;j++)
   
    {    printf("%s\t%d\t%s\t%s",stu[j].name,stu[j].num,stu[j].sex,stu[j].cla);
        for(l=0;l<5;l++)   
        printf("  %d",stu[j].score[l]);
        printf("\n");
    }
    getch();
}
void sort()
{
    int j,l,temp;
    char k;
    system("cls");  /*清屏*/
    for(j=0;j<m;j++)
        if(stu[j].ave<stu[j+1].ave)
        {temp=stu[j].ave;
         stu[j].ave=stu[j+1].ave;
         stu[j+1].ave=temp;
        }
    printf("升序请输入r:降序请输入d:");
    k=getche();
    printf("\n");
    if(k=='r')
    {for(j=m;j>0;j--)
    printf("%d\t",stu[j].ave);}
    if(k=='d')
    {for(j=0;j<m;j++)
    printf("%d\t",stu[j].ave);}
    getch();
}
    




void main()
{    char i;
    printf("\n\n\n\n\n\n\t\t\t   欢迎使用学生成绩管理系统");
    printf("\n\n\n\t\t\t\t\t制作人包盛辉");
    printf("\n\n\t\t\t\t  2013年6月");
    printf("\n\n\n\n\n\t按回车键进入主菜单:");            /*界面*/
    getchar();
    do
    { system("cls");  /*清屏*/
      printf("\n");
      printf("\t\t\t\t ************\n");
      printf("\t\t\t\t *  主菜单  *\n");               /*主菜单*/
      printf("\t\t\t\t ************\n\n\n");
      printf("\t        1.插入学生成绩信息        2.统计学生成绩信息\n\n");
      printf("\t        3.修改学生成绩信息        4.删除学生成绩信息\n\n");
      printf("\t        5.显示所有学生信息        6.学生成绩信息排序\n\n");
      printf("\t        7.退出系统\n\n");
      printf("\n\n");
      printf("\t    请选择[1/2/3/4/5/6/7]: ");
      i=getchar();
      switch(i)
      {
       case '1':   add(); break;    /*返回主菜单*/
       case '2':   sta(); break;
       case '3':   change(); break;
       case '4':   del(); break;
       case '5':   display(); break;
       case '6':     sort(); break;
       case '7':   exit(0);
       default:    break;
      }
    }while(1);
}



void del()这段函数有问题实现不了删除   望高手给点意见   可以在我的编程的基础上改也可以提供新的思路
搜索更多相关主题的帖子: 信息 
2013-06-22 12:51
蚕头燕尾
Rank: 10Rank: 10Rank: 10
来 自:Gryffindo
等 级:贵宾
威 望:12
帖 子:734
专家分:1546
注 册:2013-3-24
收藏
得分:5 
楼主是想根据什么信息进行删除

比如说根据姓名、学号、某一科的成绩等等。。


学习编程,为的是表达自己的思想,而不是被别人的思想所禁锢。要先明白自己想干嘛,而不要先问别人让你干嘛。               

                                                                                                                    Black Cat      Hello Tomorrow~
2013-06-22 20:16
Small包子
Rank: 1
等 级:新手上路
帖 子:23
专家分:3
注 册:2013-3-20
收藏
得分:0 
回复 2楼 蚕头燕尾
姓名和学号
2013-06-22 21:02
快速回复:删除学生信息这段程序有问题不知道怎么解决!!!
数据加载中...
 
   



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

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