| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 402 人关注过本帖
标题:再帮忙看一下吧!!!谢谢
只看楼主 加入收藏
现实太狗
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2013-12-1
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
再帮忙看一下吧!!!谢谢
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define N 50
typedef struct student/*结构体的定义*/
{
     char num[10];
     char name[20];
     int score[4];
     int sum;
     float aver;

}STU;
 void MainMenu()
 {
     
     printf("\t**********************菜单*************************************\n");
     printf("\t\t\t学生信息管理系统\n");
     printf("\t按1键:读入学生档案-----------------------按6键:学科及格概率---\n");
     printf("\t按2键:按照姓名查询-----------------------按7键:学生档案排序---\n");
     printf("\t按3键:按照学号查询-----------------------按8键:保存学生档案---\n");
     printf("\t按4键:添加学生档案-----------------------按9键:查看学生档案---\n");
     printf("\t按5键:删除学生档案-----------------------按10键: 各科平均值---\n");
     printf("\t按0键:退出管理系统\n");
     printf("\t****************************************************************\n");
 }
 int Shuru(STU a[])/*学生信息的输入*/
 {
     FILE *fp;
     int i,j,m,n=0;
     char cha[]="-1";
     if((fp=fopen("E:\\学生信息\\学生信息表.txt","w+"))==NULL)
     {
         printf("此文件不存在\n");
         getch();
         exit(1);
     }
     fprintf(fp,"学号\t\t姓名\t\t数学\t\t语文\t\t英语\t\tC语言\t\t总分\t\t平均值\n");
     for(i=0;i<N;i++)
     {
         printf("请输入第%d个学生的学号:\n",i+1);
         scanf("%s",a[i].num);
         printf("\n");
         m=strcmp(cha,a[i].num);
         if(m==0)
             break;
         printf("请输入给该生的姓名:\n");
         scanf("%s",a[i].name);
         printf("\n");
         fprintf(fp,"%s\t\t%s",a[i].num,a[i].name);
         printf("数学 语文 英语 C语言\n");
         a[i].sum=0;
         for(j=0;j<4;j++)
         {
            
             scanf("%d",&a[i].score[j]);
             a[i].sum=a[i].sum+a[i].score[j];
             fprintf(fp,"\t\t%d",a[i].score[j]);
         }
         fprintf(fp,"\t\t%d",a[i].sum);
         a[i].aver=(float)a[i].sum/4;
         fprintf(fp,"\t\t%.2f",a[i].aver);
         fprintf(fp,"\n");
     }
      
      rewind(fp);

     while(n<i)
     {
         fscanf(fp,"%s\t\t%s\t\t%d\t\t%d\t\t%d\t\t%d",a[i].num,a[i].name,a[i].score[0],a[i].score[1],a[i].score[2],a[i].score[3]);
         fscanf(fp,"\n");
         n++;
     }
     fclose(fp);
     for(j=0;j<i;j++)
         printf("%s\t%s\t%d\t%d\t%d\t%d\t%d\t%.2f\n",a[j].num,a[j].name,a[j].score[0],a[j].score[1],a[j].score[2],a[j].score[3],a[j].sum,a[j].aver);
     
   
     printf("学生的实际人数是:%d人\n",i);
     return(i);
     
 }
 void name_CZ(STU a[],int n)/*姓名查询*/
 {

     
     char cha[20];
     int i,flag=0;
     printf("请输入要查寻的名字:_\n");
     scanf("%s",cha);
     for(i=0;i<n;i++)
      if(strcmp(cha,a[i].name)==0)   
      {
         
          flag=1;
          printf("有此人\n");
          printf("学号\t姓名\t数学\t语文\t英语\tC语言\t总分\t平均值\n");
          printf("%s\t%s\t%d\t%d\t%d\t%d\t%d\t%.2f\n",a[i].num,a[i].name,a[i].score[0],a[i].score[1],a[i].score[2],a[i].score[3],a[i].sum,a[i].aver);
      }

      if(flag==0)
          printf("查无此人\n");      
 }
 void xuehao_CZ(STU a[],int n)/*学号查询*/
 {
     int i,flag=0;
     char cha[10];
     printf("输入要查询的学号\n");
     scanf("%s",cha);
     for(i=0;i<n;i++)
     if(strcmp(cha,a[i].num)==0)
     {
         flag=1;
         printf("有此人\n");
         printf("学号\t姓名\t数学\t语文\t英语\tC语言\t总分\t平均值\n");
         printf("%s\t%s\t%d\t%d\t%d\t%d\t%d\t%.2f\n",a[i].num,a[i].name,a[i].score[0],a[i].score[1],a[i].score[2],a[i].score[3],a[i].sum,a[i].aver);
         
     }
     if(flag==0)
         printf("查无此人\n");

 }
 void tianjia_DA(STU a[],int n)/*添加档案*/
 {
     FILE *fp;
     int i;
     if((fp=fopen("E:\\学生信息\\学生信息表.txt","a+"))==NULL)
     {
         printf("此文件不存在\n");
         getch();
         exit(1);
     }
     printf("请输入学生的学号:\n");
     scanf("%s",a[n+1].num);
     fprintf(fp,"\n");
     printf("请输入学生的姓名:\n");
     scanf("%s",a[n+1].name);
     printf("\n");
     fprintf(fp,"%s\t\t%s",a[n+1].num,a[n+1].name);
     printf("数学 语文 英语 C语言\n");
     a[n+1].sum=0;
     for(i=0;i<4;i++)
     {
         scanf("%d",&a[n+1].score[i]);
         a[n+1].sum=a[n+1].sum+a[n+1].score[i];
         fprintf(fp,"\t\t%d",a[n+1].score);
     }
     a[n+1].aver=(float)a[n+1].sum/4.0;
     fprintf(fp,"\t\t%d\t\t%f",a[n+1].sum,a[n+1].aver);
     rewind(fp);
     while(i>n+1)
     {
         fscanf(fp,"%s %s %d %d %d %d",a[i].num,a[i].name,a[i].score[0],a[i].score[1],a[i].score[2],a[i].score[3]);
         fscanf(fp,"\n");
         i++;

     }
     fclose(fp);
     for(i=0;i<n+1;i++)
         printf("%s\t%s\t%d\t%d\t%d\t%d\t%d\t%.2f\n",a[i].num,a[i].name,a[i].score[0],a[i].score[1],a[i].score[2],a[i].score[3],a[i].sum,a[i].aver);
     
   


 }
 void main()
{
    STU a[50];/*学生的人数*/
    int stu_score;/*学生的实际人数*/
    int n;
    while(1)
    {
        getch();
        system("CLS");
        MainMenu();
        printf("\t\t\t请输入0--10,并按回车:__\n");
        scanf("%d",&n);
        switch(n)
        {
           case 1:stu_score=Shuru(a);break;
           case 2:name_CZ(a,stu_score);break;
           case 3:xuehao_CZ(a,stu_score);break;
           case 4:tianjia_DA(a,stu_score);break;
        }
    }
}
输入的地方 ,如果输入的人数多于3个就运行不下去了!!还有存入档案的地方不对!!帮忙看一下吧!!谢谢了!!!!!
搜索更多相关主题的帖子: include 管理系统 结构体 信息 姓名 
2013-12-24 17:16
so_love
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:7
帖 子:812
专家分:4151
注 册:2013-11-25
收藏
得分:20 
额。给你个建议吧。你可以尝试换一种方式。你这样每次都操作一遍打开文件,太麻烦了。你可以尝试用一下链表。设置一个头指针。每次都操作链表。

一花一世界、一叶一追寻、片片花叶落、情系何人身。
2013-12-24 17:40
现实太狗
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2013-12-1
收藏
得分:0 
回复 2楼 so_love
我们链表没有学。

[ 本帖最后由 现实太狗 于 2013-12-24 19:23 编辑 ]
2013-12-24 19:02
快速回复:再帮忙看一下吧!!!谢谢
数据加载中...
 
   



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

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