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 );
}
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 체인 시계는 뱀을 탐식하는 작은 게임을 실현한다본고의 실례는 여러분에게 C 언어 체인표가 뱀 탐식 게임을 실현하는 구체적인 코드를 공유하여 참고하도록 하였으며, 구체적인 내용은 다음과 같다. 프로젝트 이름: 뱀놀이 운영 환경: Linux 프로그래밍 언어: C 언...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.