⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1.c

📁 成绩管理系统
💻 C
字号:
         
#include "stdio.h"    /*I/O函数*/
#include "stdlib.h"   /*其它说明*/
#include "string.h"   /*字符串函数*/
#include "conio.h"   /*屏幕操作函数*/
#include "mem.h"   /*内存操作函数*/
#include "ctype.h"   /*字符操作函数*/
#include "alloc.h"   /*动态地址分配函数*/
struct score
{
int order;
char number[15];
char name[20];
 float score[6];
}recored,space[50];
int i,j,k=0;
char temp[20],ch;
FILE *fp,*fp1;

void put_data()
{
 if((fp=fopen("score.txt","ab+"))==NULL)
 {
 printf("cannot open this file.\n");
 getch();exit(0);
 }
 for(i=0;i<=50;i++)
 {
 printf("\nPlease input number:");
 gets(recored.number);
    printf("Please input name:");
    gets(recored.name);
    printf("Please input Chinese score:");
    gets(temp);recored.score[0]=atof(temp);
    printf("Please input Math score:");
    gets(temp);recored.score[1]=atof(temp);
    printf("Please input English score:");
    gets(temp);recored.score[2]=atof(temp);
    printf("Please input Physics score:");
    gets(temp);recored.score[3]=atof(temp);
    printf("Please shur Chemistry score:");
    gets(temp);recored.score[4]=atof(temp);
    recored.score[5]=(recored.score[0]+recored.score[1]+recored.score[2]+recored.score[3]+recored.score[4])/5;
    fwrite(&recored,sizeof(recored),1,fp);
    printf("another?y/n");
    ch=getch();
    if(ch=='n'||ch=='N')
    break;
    } fclose(fp);
}
void output_data()
{
    float s;int n;
    if((fp=fopen("score.txt","rb+"))==NULL)
    {
    printf("Cannot reading this file.\n");
    exit(0);
    }
    for(i=0;i<=50;i++)
    {
    if((fread(&space[i],sizeof(space[i]),1,fp))!=1)
    break;
    }
    printf("\nnumber    name       Chinese  Math   English  Physics  Chemistry  Average\n");
    for(j=0,k=1;j<i;j++,k++)
    {
    space[j].order=k;
    printf("%6s %8s       %3.1f     %3.1f   %3.1f     %3.1f     %3.1f       %3.1f\n",space[j].number,space[j].name,space[j].score[0],space[j].score[1],space[j].score[2],space[j].score[3],space[j].score[4],
    space[j].score[5]);
    }
    getch();
    fclose(fp);
}

void change_data()
{
    if((fp=fopen("score.txt","rb+"))==NULL||(fp1=fopen("temp.txt","wb+"))==NULL)
    {
    printf("Cannot open this file.\n");
    exit(0);
    }
    printf("\nPLease input change_data number:");
    scanf("%d",&i); getchar();
    while((fread(&recored,sizeof(recored),1,fp))==1)
    {
    j=atoi(recored.number);
    if(j==i)
    {
     printf("number:%s\nname:%s\n",recored.number,recored.name);
      printf("Please input name:");
        gets(recored.name);
        printf("Please input Chinese score:");    
gets(temp);recored.score[0]=atof(temp);
      printf("Please input Math score:");
        gets(temp);recored.score[1]=atof(temp);
        printf("Please input English score:");          gets(temp);recored.score[2]=atof(temp);
      printf("Please input Physics score:");
      gets(temp);recored.score[3]=atof(temp);
      printf("Please input Chemistry score:");
       gets(temp);recored.score[4]=atof(temp);
            recored.score[5]=(recored.score[0]+recored.score[1]+recored.score[2]+recored.score[3]+recored.score[4])/5;

    } fwrite(&recored,sizeof(recored),1,fp1);
    }
    fseek(fp,0L,0);
    fseek(fp1,0L,0);
    while((fread(&recored,sizeof(recored),1,fp1))==1)
    {
    fwrite(&recored,sizeof(recored),1,fp);
    }

   fclose(fp);
   fclose(fp1);
}
void search()
{
    if((fp=fopen("score.txt","rb"))==NULL)
    {
    printf("\nCannot open this file.\n");
    exit(0);
    }
    printf("\nPLease input number to see:");
    scanf("%d",&i);
    while(fread(&recored,sizeof(recored),1,fp)==1)
    {
    j=atoi(recored.number);
    if(i==j)
    {
    printf("number:%s   name:%s\nChinese:%f\n Math:%f\n English:%f\n Physics:%f\n Chemistry:%f\n ",recored.number,recored.name,recored.score[0],recored.score[1],recored.score[2],recored.score[3],recored.score[4],recored.score[5]);
    }getch();
    }
}
void delete()
{
if((fp=fopen("score.txt","rb+"))==NULL||(fp1=fopen("temp.txt","wb+"))==NULL)
    {
    printf("\nopen score.txt was failed!");
    getch();
    exit(0);
    }
    printf("\nPlease input ID which you want to del:");
    scanf("%d",&i);getchar();
    while((fread(&recored,sizeof(recored),1,fp))==1)
   {
   j=atoi(recored.number);
   if(j==i)
 {
 printf("Anykey will delet it.\n");
    getch();
    continue;
    }
    fwrite(&recored,sizeof(recored),1,fp1);
    }
     fclose(fp);
     fclose(fp1);
     remove("score.txt");
     rename("temp.txt","score.txt");
     printf("recored delet was succesful!\n");
     printf("Anykey will return to main.");
     getch();
}
main()
{
while(1)
{
      clrscr();
      gotoxy(1,1);
      textcolor(GREEN);
      textbackground(BLACK);
      window(1,1,99,99);
       clrscr();
  printf("\n\n\n\t     (*^__^*)      Student's Score System  (*^__^*)        \n");
  printf("\t                             \n");
  printf("\t                          1>input              \n");
  printf("\t                          2>change             \n");
  printf("\t                          3>delete               \n");
  printf("\t                          4>search               \n");
  printf("\t                          5>output                 \n");
  printf("\t                          6>exit                    \n");
  printf("\t                                                     \n");
  printf("\t                           (*^__^*)                            \n");
    printf("Enter number(1-6):");
    ch=getch();
    switch(ch)
    {
    case '1':clrscr();put_data();break;
    case '2':clrscr();change_data(); break;
    case '3':clrscr();delete();  break;
    case '4':clrscr();search(); break;
    case '5':clrscr();output_data();   break;
    case '6':clrscr();printf("\n\n\n\n\n\n\n\n\t\t\t\tGOOD BYE!");getch();exit(0);
    default: continue;
    }
}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -