| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1198 人关注过本帖
标题:关于C语言学生管理系统的求助!!
取消只看楼主 加入收藏
拿铁不加糖
Rank: 1
等 级:新手上路
帖 子:6
专家分:4
注 册:2010-9-9
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
关于C语言学生管理系统的求助!!
请教高手怎么解决下面这个程序不能修改信息的问题。还有就是就是这个程序在显示班级的时候会把级别和专业这两项合并。求解决办法。谢谢了。

#include<stdio.h>

#include<string.h>

struct student       //一条学生记录包含的信息//

{

char xuehao[10];        //编号//

char xingming[10];       //班级//

char xingbie[2];        //级别//   

char shengri[10];        //专业//

char zhuanye[20];        //班主任//

char banji[4];         //总人数//   

char jiatingdizhi[20];       //男生人数//

char sushehaoma[4];       //女生人数//

};

 

struct student stu[100];   //定义可容纳100条记录的结构体数组//


void save()   //保存函数//

{

FILE *fp;

int i;

if((fp=fopen("xueshengxinxi","w+"))==NULL)

   {

    printf("cannot open file\n");

    return;

   }

for(i=0;i<100;i++)

     if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)

        printf("file write error\n");

fclose(fp);

}

void function_1()          //浏览所有学生的信息//

{

int i;

FILE *fp;

fp=fopen("xueshengxinxi","rb");

printf("编号");   

printf("\t班级");

printf("\t级别");

printf("\t 专业");

printf("\t 班主任");

printf("\t 总人数");

printf("\t       男生人数");

printf("\t       女生人数");

for(i=0;i<5;i++)

    {

     fread(&stu[i],sizeof(struct student),1,fp);

     printf("\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s",

                  stu[i].xuehao,stu[i].xingming,stu[i].xingbie,

                     stu[i].shengri,stu[i].zhuanye,stu[i].banji,

                     stu[i].jiatingdizhi,stu[i].sushehaoma);

    }

fclose(fp);

}

int function_2()             //添加学生信息//

{

int i=0;

char MM='Y';

while(MM=='Y'&&i<100)

     {

      printf("\n请输入第%d个班级的相关信息\n",i+1);

      printf("编号:     ");   scanf("%s",stu[i].xuehao);

      printf("班级:     ");   scanf("%s",stu[i].xingming);

      printf("级别:     ");   scanf("%s",stu[i].xingbie);

      printf("专业:     ");   scanf("%s",stu[i].shengri);

      printf("班主任:   ");   scanf("%s",stu[i].zhuanye);

      printf("总人数:   ");   scanf("%s",stu[i].banji);

      printf("男生人数:");   scanf("%s",stu[i].jiatingdizhi);

      printf("女生人数: ");   scanf("%s",stu[i].sushehaoma);
      i=i+1;

      getchar();

      printf("\n是否继续添加信息?y/n     ");
      MM=getchar();

      save();

     }

return(i);

}

 

void function_3()          //查找学生信息//

{

int i,k=0;

char MVP='Y',XH[10],XM[10];

FILE *fp;

fp=fopen("xueshengxinxi","r");

while(MVP=='Y')

      {

        

          printf("1---按编号查找\n");

          printf("2---按班级名查找\n");

         printf("\n请根据操作项所对应的数字进行选择:     ");

       scanf("%d",&i);

       while(i>2||i<1)

            {

                printf("\n选择有误,请重新选择     ");

             scanf("%d",&i);

            }

       if(i==1)

         {

          printf("\n请输入编号:   ");

          scanf("%s",XH);

          while(k<5)

               {

                   if(strcmp(XH,stu[k].xuehao)==0)

                   break;

                k=k+1;

               }

          if(k<5)

             {

                 printf("\n该班级的信息为\n");

              printf("编号:     %s\n",stu[k].xuehao);

                       printf("班级:     %s\n",stu[k].xingming);

                       printf("级别:     %s\n",stu[k].xingbie);

                       printf("专业:     %s\n",stu[k].shengri);

                       printf("班主任:     %s\n",stu[k].zhuanye);

                       printf("总人数:     %s\n",stu[k].banji);

                       printf("男生人数:     %s\n",stu[k].jiatingdizhi);

                       printf("女生人数:     %s\n",stu[k].sushehaoma);

             }

           else

                  printf("\n对应的班级信息不存在\n\n");

         }

       else

           {

               printf("\n请输入班级名:   ");

            scanf("%s",XM);

            while(k<5)

                 {

                     if(strcmp(XM,stu[k].xingming)==0)

                     break;

                  k=k+1;

                 }

            if(k<5)

              {

                  printf("\n该班级的信息为\n");

               printf("编号:     %s\n",stu[k].xuehao);

                        printf("班级:     %s\n",stu[k].xingming);

                        printf("级别:     %s\n",stu[k].xingbie);

                        printf("专业:     %s\n",stu[k].shengri);

                        printf("班主任:     %s\n",stu[k].zhuanye);

                        printf("总人数:     %s\n",stu[k].banji);

                        printf("男生人数:     %s\n",stu[k].jiatingdizhi);

                        printf("女生人数:     %s\n",stu[k].sushehaoma);      

              }

            else

                   printf("\n对应的班级信息不存在\n\n");

           }

       getchar();

       printf("\n\n是否继续查找?y/n ");

       MVP=getchar();

      }

fclose(fp);

}

void function_4()          //修改学生信息//

{

int i=0,k=0;

char ZHY,XH[10],code[10];

FILE *fp;

fp=fopen("xueshengxinxi","r");


printf("\n请输入编号:   ");

scanf("%s",XH);

while(k<5)

   {

    if(strcmp(XH,stu[k].xuehao)==0)

       break;

    k=k+1;

   }


       {

           printf("确定要修改信息吗?y/n ");

           ZHY=getchar();

           if(ZHY=='Y')

          {

           printf("请输入班级信息\n");

           printf("编号:   "); scanf("%s",stu[k].xuehao);

           printf("班级:   "); scanf("%s",stu[k].xingming);

           printf("级别:   "); scanf("%s",stu[k].xingbie);

           printf("专业:   "); scanf("%s",stu[k].shengri);

           printf("班主任:   "); scanf("%s",stu[k].zhuanye);

           printf("总人数:   "); scanf("%s",stu[k].banji);

           printf("男生人数:   "); scanf("%s",stu[k].jiatingdizhi);

           printf("女生人数:   "); scanf("%s",stu[k].sushehaoma);

              save();           

          }        

       }

    }   


void main()            //主函数//

{

int i,N=0;             //N条记录//

char kobe='Y';


printf("\n\n              ===============欢迎使用班级管理系统===============\n\n");


while(kobe=='Y')

       {

        printf("\n                              1-浏览所有班级的信息\n");
         
        printf("\n                              2-添加班级新信息\n");
         
        printf("\n                              3-查找班级信息\n");
           
        printf("\n                              4-修改班级信息\n");
        printf("\n               =================================================\n");

        printf("\n\n                        请根据操作项所对应的数字进行选择:");

        scanf("%d",&i);

        while(i>4||i<1)

             {

                 printf("\n选择有误,请重新选择:     ");

              scanf("%d",&i);

             }

        if(i==1) function_1();

        else

                if(i==2) N=function_2();

        else

                if(i==3) function_3();

        else function_4();

        getchar();

        printf("\n\n\n是否返回主界面?y/n     ");

        kobe=getchar();

       }

printf("\n共有%d条记录\n",N);

printf("\n\n");


printf("   谢谢访问 再见   ");


}

搜索更多相关主题的帖子: C语言 系统 学生 管理 
2010-12-15 19:58
拿铁不加糖
Rank: 1
等 级:新手上路
帖 子:6
专家分:4
注 册:2010-9-9
收藏
得分:0 
回复 2楼 yanjie3155
能否解答一下!
2010-12-15 20:36
拿铁不加糖
Rank: 1
等 级:新手上路
帖 子:6
专家分:4
注 册:2010-9-9
收藏
得分:0 
顶呀!求办法。
2010-12-16 11:20
快速回复:关于C语言学生管理系统的求助!!
数据加载中...
 
   



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

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