| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 575 人关注过本帖, 1 人收藏
标题:学生管理系统,帮忙改错!小弟拜谢!
只看楼主 加入收藏
C、Gege
Rank: 2
等 级:论坛游民
帖 子:20
专家分:40
注 册:2011-12-24
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:3 
学生管理系统,帮忙改错!小弟拜谢!
里面的删除,保存,读取有些问题,希望高手指教!
这是小弟第一次也是独立做出的C程序,更是第一次在论坛发帖,希望前辈们指教!
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#define STU_NUMBER 100
#define SCORE_NUMBER 3
int ZONGRENSHU=0;/*全局变量总人数*/
typedef struct{                                    
    char xuehao[20];                           
    char name[20];
    char sex[2];
    float score[SCORE_NUMBER];
    float sum;
    float ave;   
}student;                        
student stu[STU_NUMBER];/*最大学生人数*/   
student temp_stu;/*临时排序学生变量*/
/*功能菜单*/
caidan()
{        
        printf("\t\t\t  ☆学生管理系统☆\n\n");   
        printf("\t\t\t1. 录 入 学 生 信 息\n");
        printf("\t\t\t2. 显 示 学 生 信 息\n");
        printf("\t\t\t3. 排 序 学 生 信 息\n");
        printf("\t\t\t5. 查 找 学 生 信 息\n");
        printf("\t\t\t4. 追 加 学 生 信 息\n");
        printf("\t\t\t6. 删 除 学 生 信 息\n");   
        printf("\t\t\t7. 修 改 学 生 信 息\n");
        printf("\t\t\t8. 保 存 学 生 信 息\n");
        printf("\t\t\t9. 读 取 学 生 信 息\n");
        printf("\t\t\t0. 退 出 管 理 系 统\n");        
}
/*输入学生信息*/
int input()   
{    int i=0,j=0;
    char ch;
    for(i;;i++)
    {        ZONGRENSHU++;
            j=0;
     printf("请输入学生学号:");fflush(stdin);gets(stu[i].xuehao);
     printf("请输入学生姓名:");fflush(stdin);gets(stu[i].name);
     printf("请输入学生性别:");fflush(stdin);gets(stu[i].sex);
     printf("请输入语文成绩:");scanf("%f",&stu[i].score[j]);j++;
     printf("请输入数学成绩:");scanf("%f",&stu[i].score[j]);j++;
     printf("请输入英语成绩:");scanf("%f",&stu[i].score[j]);
     for(j=0;j<3;j++){stu[i].sum+=stu[i].score[j];}
     stu[i].ave=stu[i].sum/3;
     printf("共有%d个学生的信息\n",ZONGRENSHU);
    printf("是否继续输入?y/n:");
    fflush(stdin);
    scanf("%c",&ch);
    if(ch=='n')
        break;
    }
return ZONGRENSHU;
}
/*输出学生信息*/
output(int ZONGRENSHU)
{    int i=0;
    printf("学号\t姓名\t性别\t语文\t数学\t英语\t总分\t平均成绩\n");
   
    for (i;i<ZONGRENSHU;i++)
    {printf("%s\t",stu[i].xuehao);
     printf("%s\t",stu[i].name);
     printf("%s\t",stu[i].sex);
     printf("%.2f\t",stu[i].score[0]);
     printf("%.2f\t",stu[i].score[1]);
      printf("%.2f\t",stu[i].score[2]);
     printf("%.2f\t",stu[i].sum);
     printf("%.2f\t",stu[i].ave);
    printf("\n");}
    printf("共有%d个学生的信息\n",ZONGRENSHU);
}
/*排序学生信息*/
sort(int ZONGRENSHU)
{    int i=0,j=0;
   
    for (i;i<ZONGRENSHU-1;i++)
    {
        for (j;j<ZONGRENSHU-1-i;j++)
            {if(stu[j].sum>stu[j+1].sum);
            temp_stu=stu[j];stu[j]=stu[j+1];stu[j+1]=temp_stu;}
        printf("共有%d个学生的信息\n",ZONGRENSHU);
    }
    printf("排序之后:\n");
    i=0;
    printf("学号\t姓名\t性别\t语文\t数学\t英语\t总分\t平均成绩\n");
    for (i;i<ZONGRENSHU;i++)
    {printf("%s\t",stu[i].xuehao);
     printf("%s\t",stu[i].name);
     printf("%s\t",stu[i].sex);
     printf("%.2f\t",stu[i].score[0]);
     printf("%.2f\t",stu[i].score[1]);
      printf("%.2f\t",stu[i].score[2]);
     printf("%.2f\t",stu[i].sum);
     printf("%.2f\t",stu[i].ave);
    printf("\n");}

}
/*添加学生信息*/
int add(int ZONGRENSHU)
{        int i,j=0;
        char ch;
        i=ZONGRENSHU;
        for(i;;i++)
        {    ZONGRENSHU++;
            j=0;
        printf("请输入学生学号:");fflush(stdin);gets(stu[i].xuehao);               
        printf("请输入学生姓名:");fflush(stdin);gets(stu[i].name);
        printf("请输入学生性别:");fflush(stdin);gets(stu[i].sex);
        printf("请输入语文成绩:");scanf("%f",&stu[i].score[j]);j++;
        printf("请输入数学成绩:");scanf("%f",&stu[i].score[j]);j++;
        printf("请输入英语成绩:");scanf("%f",&stu[i].score[j]);
        for(j=0;j<3;j++){stu[i].sum+=stu[i].score[j];}
        stu[i].ave=stu[i].sum/3;
    printf("共有%d个学生的信息\n",ZONGRENSHU);
    printf("是否继续追加?y/n:");
    fflush(stdin);
    scanf("%c",&ch);
    if(ch=='n')
        break;
        }   
return ZONGRENSHU;
}
/*查找学生消息*/
find(int ZONGRENSHU)                                       
{    int i=0;
    char find_name[20];
    printf("请输入您所查找的学生姓名:");
    fflush(stdin);
    gets(find_name);
    printf("系统为您搜索到的信息:\n");
    for (i;i<ZONGRENSHU;i++)
    {    if(strcmp(find_name,stu[i].name)==0)
        {
        printf("学号\t姓名\t性别\t语文\t数学\t英语\t总分\t平均成绩\n");
        printf("%s\t",stu[i].xuehao);
        printf("%s\t",stu[i].name);
        printf("%s\t",stu[i].sex);
        printf("%.2f\t",stu[i].score[0]);
        printf("%.2f\t",stu[i].score[1]);
         printf("%.2f\t",stu[i].score[2]);
        printf("%.2f\t",stu[i].sum);
        printf("%.2f\t",stu[i].ave);}
    else {printf("没有您所输入的学生");}
    }
}
/*删除学生信息*/
delete_student(int ZONGRENSHU)                                
{    int i,k=0;                    
    char delete_xuehao[20];                    
    char ch,y;
    printf("请输入您所删除学生的学号:");
    fflush(stdin);
    gets(delete_xuehao);
    for(i=0;i<ZONGRENSHU;i++)
    {if(strcmp(delete_xuehao,stu[i].xuehao)==0)            
        k=i;
                printf("该学生的信息:\n");
                printf("学号\t姓名\t性别\t语文\t数学\t英语\t总分\t平均成绩\n");
                printf("%s\t",stu[i].xuehao);
                printf("%s\t",stu[i].name);
                printf("%s\t",stu[i].sex);
                printf("%.2f\t",stu[i].score[0]);
                printf("%.2f\t",stu[i].score[1]);
                printf("%.2f\t",stu[i].score[2]);
                printf("%.2f\t",stu[i].sum);
                printf("%.2f\t",stu[i].ave);
            printf("\n确定删除(y)?\n");
            fflush(stdin);
            scanf("%c",&y);
            if(y=='y')
            {for(k;k<ZONGRENSHU-1;k++)
            {stu[k]=stu[k+1];}
            ZONGRENSHU--;/*总人数减一*/
            }/*if*/
    printf("是否继续删除学生信息?y/n");
    fflush(stdin);
    scanf("%c",&ch);
    if(ch=='n')
        break;
    }

    return ZONGRENSHU;                                    
}

/*修改学生信息*/
modify(int ZONGRENSHU)
{    int i=0;
    int XGXX;/*修改选项变量*/
    char modify_xuehao[20];/*修改的学生学号*/                                                                        
    printf("请输入您所修改学生信息的学号:");
    fflush(stdin);
    gets(modify_xuehao);
        for(i;i<ZONGRENSHU;i++)
            {if(strcmp(modify_xuehao,stu[i].xuehao)==0)
                {printf("该学生的信息:\n");
                printf("学号\t姓名\t性别\t语文\t数学\t英语\t总分\t平均成绩\n");
                printf("%s\t",stu[i].xuehao);
                printf("%s\t",stu[i].name);
                printf("%s\t",stu[i].sex);
                printf("%.2f\t",stu[i].score[0]);
                printf("%.2f\t",stu[i].score[1]);
                printf("%.2f\t",stu[i].score[2]);
                printf("%.2f\t",stu[i].sum);
                printf("%.2f\t\n",stu[i].ave);}
             else     
                {printf("没有您所输入的学生\n");}
            }/*for*/            
    printf("\t\t\t1.修改学生学号\n");
    printf("\t\t\t2.修改学生姓名\n");
    printf("\t\t\t3.修改学生性别\n");
    printf("\t\t\t4.修改语文成绩\n");
    printf("\t\t\t5.修改数学成绩\n");
    printf("\t\t\t6.修改英语成绩\n");
            printf("请输入修改选项:");
            scanf("%d",&XGXX);
    switch(XGXX)
    {case 1:printf("请输入该生学号:");fflush(stdin);gets(stu[i].xuehao);break;
     case 2:printf("请输入该生姓名:");fflush(stdin);gets(stu[i].name);break;
     case 3:printf("请输入该生性别:");fflush(stdin);gets(stu[i].sex);break;
     case 4:printf("请输入语文成绩:");scanf("%f",stu[i].score[0]);break;
     case 5:printf("请输入数学成绩:");scanf("%f",stu[i].score[1]);break;            
     case 6:printf("请输入英语成绩:");scanf("%f",stu[i].score[2]);break;
     default :printf("输入错误,请重新输入:\n");}/*swich*/        
                    
        
}
/*保存文件*/
save(ZONGRENSHU)
{    FILE *fp;
    int i=0;
    if ((fp=fopen("D:\\学生管理器.txt","wb"))==NULL)
        {printf("保存文件失败!\n");
            exit(0);}
    for (i;i<ZONGRENSHU;i++)
    {fwrite(&stu[i],sizeof(student),1,fp);}   
    printf("保存文件成功!\n");
    fclose(fp);
return i-1;
}
/*读取文件*/
load(ZONGRENSHU)
{    int i=0;
    FILE *fp;
    if ((fp=fopen("D:\\学生管理器.txt","rb"))==NULL)
        {printf("打开文件失败!\n");
            exit(0);}
        printf("打开文件成功!\n");   
            while(!feof(fp))
            {fread(&stu[i],sizeof(student),1,fp);
                i++;}
        fclose(fp);
return i-1;
}

DENGLU()/*登录函数*/
{    char mima[20];
    int i=0;   
    printf("请输入登录密码:");fflush(stdin);gets(mima);
          if(mima!="xuejianqiang")      
          {printf("输入错误!退出!");exit(0);}
                    
}/*DENGLU—END*/

main()
{    int XZGN;
    printf("\t欢迎进入 |欢宝| 学生管理系统!\n");
    DENGLU();/*调用登录函数!*/
    for(;;)
    {   
        caidan();
        printf("请选择功能项:");
        scanf("%d",&XZGN);
        switch(XZGN){
        case 1:ZONGRENSHU=input();break;
        case 2:output(ZONGRENSHU);break;
        case 3:sort(ZONGRENSHU);break;
        case 4:ZONGRENSHU=add(ZONGRENSHU);break;
        case 5:find(ZONGRENSHU);break;
        case 6:ZONGRENSHU=delete_student(ZONGRENSHU);break;
        case 7:modify(ZONGRENSHU);break;
        case 8:save(ZONGRENSHU);break;
        case 9:ZONGRENSHU=load(ZONGRENSHU);break;
        case 0:exit(0);
        default:printf("输入错误,请重新输入:\n");
        }
    }
return 0;
}
搜索更多相关主题的帖子: 管理系统 include 
2011-12-24 13:32
chenbjin
Rank: 2
等 级:论坛游民
帖 子:14
专家分:13
注 册:2011-12-22
收藏
得分:10 
表示惊叹,同样新手!我们的作业简单多拉!只是写一个成绩管理系统(只包括输入,查询,输出)还有一个投票系统!
2011-12-24 14:44
Timmmy
Rank: 2
等 级:论坛游民
帖 子:20
专家分:33
注 册:2011-11-5
收藏
得分:10 
程序代码:
 for(i;i<ZONGRENSHU;i++)
            {if(strcmp(modify_xuehao,stu[i].xuehao)==0)
                {printf("该学生的信息:\n");
                printf("学号\t姓名\t性别\t语文\t数学\t英语\t总分\t平均成绩\n");
                printf("%s\t",stu[i].xuehao);
                printf("%s\t",stu[i].name);
                printf("%s\t",stu[i].sex);
                printf("%.2f\t",stu[i].score[0]);
                printf("%.2f\t",stu[i].score[1]);
                printf("%.2f\t",stu[i].score[2]);
                printf("%.2f\t",stu[i].sum);
                printf("%.2f\t\n",stu[i].ave);}
             else    
                {printf("没有您所输入的学生\n");}
            }/*for*/           

你试过没?如果这个程序输入了学生,修改的时候打完if里面的,还会打出else里面的内容

还有,没有学生信息,之后又继续打印下面的修改语句。

[ 本帖最后由 Timmmy 于 2011-12-24 17:15 编辑 ]
2011-12-24 16:49
C、Gege
Rank: 2
等 级:论坛游民
帖 子:20
专家分:40
注 册:2011-12-24
收藏
得分:0 
回复 3楼 Timmmy
恩,谢谢你。
2011-12-25 10:26
快速回复:学生管理系统,帮忙改错!小弟拜谢!
数据加载中...
 
   



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

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