C 언어 는 학생 정보 관리 시스템(다 중 파일)을 실현 한다.

본 논문 의 사례 는 C 언어 가 학생 정보 관리 시스템 을 실현 하 는 구체 적 인 코드 를 공유 하여 여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
elemtype.h

/*****************************
*                   。
*    :elemtype.h    
*   :
*     :2012-12-05
*     :2012-12-07
*   :1.0
*     :
*
*
******************************/

#ifndef ELEMTYPE
#define ELEMTYPE

#include <stdio.h>
//                    。
//        
#define MAX_NAME 30
//        
#define SCORE_NUM 3

/*      */
typedef enum 
{
  SCIENCE =0,//  
  ARTS,//  
  MEDICINE,//  
  OTHER//  
}StuType;

/*       */
typedef struct
{
  char  name[MAX_NAME+1];//    
  StuType type;//    ,           
  int  ID;//  
  float  score[SCORE_NUM];//      
}ElemType;


/*    :
                ,n           
     :
 filename-       
 n-              
 array-           
    :
 true-         ;
 false-       
*/
bool ReadDataFromFile(char *filename, ElemType array[], int n);


/*    :
         
     :
 n-              
 array-           
    :
  
*/
void DispalyAll(ElemType array[], int n);


/*    :
       ,             ,                
     :
 n-              
 array-           
    :
 true-         
 false-       
*/
bool ModifyStudentInfo(ElemType array[],int n);


/*    :
          
     :
 n-              
 array-           
    :
 -1-        
        
*/
void CalcSubjectScore(ElemType array[], int n );


/*    :
         ,      
     :
 n-              
 array-           
    :
 -1-        
        
*/
void CalcStudentScore(ElemType array[], int n );


/*    :
       ,             ,                
     :
 n-              
 array-           
    :
 true-         ,  :     n    1
 false-       
*/
void SortStu(ElemType array[], int n);


/*    :
               
     :
 filename-       
 n-            
 array-           
    :
 true-         ;
 false-       
*/
bool WriteDataToFile(char *filename, ElemType array[], int n); 

#endif
elemtype.cpp

#include "elemtype.h"
#include <stdlib.h>
#include <string.h>

//
///function
///          ,            。
bool ReadDataFromFile(char *filename, ElemType array[], int n)
{
 FILE* fp;
 int i;
 if ((fp=fopen(filename,"rb"))==NULL )
 {
 return false;
 }

 for (i=0; i<n; i++)
 {
 fread(array+i,sizeof(ElemType),1,fp);
 }

 fclose(fp);

 return true;
}


void DispalyAll(ElemType array[], int n)
{
 //add your code here
 int i;
 printf("%s%10s%9s%12s%10s%10s
","NAME","TYPE","ID","SCORE1","SCORE2","SCORE3"); for(i=0;i<n;i++) { printf("%s",array[i].name); switch(array[i].type) { case 0: printf("%10s","SCIENCE"); break; case 1: printf("%10s","ARTS"); break; case 2: printf("%10s","MEDICIEN"); break; case 3: printf("%10s","OTHER"); default: break; } printf("%10d%10.2f%10.2f%10.2f
",array[i].ID,array[i].score[0],array[i].score[1],array[i].score[2]); } printf("
"); } bool ModifyStudentInfo(ElemType array[],int n) { //add your code here int number; int i,j; printf(" :"); scanf("%d",&number); for(i=0;i<n;i++) { if(number==array[i].ID) { printf(" , , , ,
"); printf("( --- 0, 1, 2, 3):
"); scanf("%s %d %d",array[i].name,&array[i].type,&array[i].ID); for(j=0;j<SCORE_NUM;j++) { scanf("%f",&array[i].score[j]); } return true; break; } } return false; } void CalcSubjectScore(ElemType array[], int n) { //add your code here int i,j; float sum[SCORE_NUM]={0},ave[SCORE_NUM]; for(j=0;j<SCORE_NUM;j++) { for(i=0;i<n;i++) { sum[j]=sum[j]+array[i].score[j]; } ave[j]=sum[j]/n; } for(j=0;j<SCORE_NUM;j++) { printf(" %d :%.2f
",j+1,ave[j]); } } void CalcStudentScore(ElemType array[], int n) { //add your code here int findID,i,j; float sum=0; printf(" :"); scanf("%d",&findID); for(i=0;i<n;i++) { if(findID==array[i].ID) { for(j=0;j<SCORE_NUM;j++) { sum=sum+array[i].score[j]; } break; } } printf(" :%.2f
",sum); } void SortStu(ElemType array[], int n) { //add your code here int j; printf(" ( , , , )
"); printf("( --- 0, 1, 2, 3):
"); scanf("%s %d %d",array[n].name,&array[n].type,&array[n].ID); for(j=0;j<SCORE_NUM;j++) { scanf("%f",&array[n].score[j]); } n=n+1; printf(" !
"); DispalyAll(array,n); } // ///function /// bool WriteDataToFile(char *filename, ElemType array[], int n) { //add your code here int i; FILE* fp; if( (fp=fopen(filename,"rw"))==NULL ) { printf("cannot open file
"); return false; } for(i=0;i<n+1;i++) { fwrite(array+i,sizeof(ElemType),1,fp); } fclose(fp); return true; }
main.cpp

//       

#include "elemtype.h"
#define MAX_STUDENT_NUM 100

void displayInfo();
void run(ElemType* array, int n);

int main()
{
 int n = 5;//n           ,      5
 ElemType total[MAX_STUDENT_NUM];
 char filename[] = "student.dat";
 if (!ReadDataFromFile(filename,total,n))
 {
 printf("    %s  ",filename);
 }
 displayInfo();
 run(total,n);

 return 0;
}

//
///function
void displayInfo()
{
 puts("********************************************************************" );
 puts("      x     (  )        V1.0" );
 puts("********************************************************************
" ); } // ///function void run(ElemType* array, int n) { int option = 0; // puts(" "); puts(" :
" ); puts("0: "); puts("1: ") ; puts("2: ") ; puts("3: ") ; puts("4: ") ; puts("5: ") ; puts("6:
" ) ; do { scanf("%d", &option ); // switch(option ) { // case 1: DispalyAll(array,n); break; // case 2: { if( ModifyStudentInfo(array,n) ) { printf("
"); DispalyAll(array,n); printf(" !
"); } else printf(" !
"); } break; // case 3: CalcSubjectScore(array,n); break; // case 4: CalcStudentScore(array,n); break; // case 5: SortStu(array,n); break; // case 6: { if( WriteDataToFile("student.dat",array,n) ) { printf(" !
"); DispalyAll(array,n+1); } break; } default: break; } }while(option != 0 ); }
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기