我主要設計一個能實現學生信息管理系統,讓它來運行和管理學生信息。它在現實生活中運用方便的、管理方便。它能輸入學生學號、年齡、性別、出生年月、地址電話E-mail。系統以菜單的方式進行工作,進入子菜單後,還可以返回主菜單。在子菜單中的各種操作都有中文說明,操作簡單、易懂。只要我們正確的操作系統,系統就無異常現在,當然系統也能對一些基本的錯誤做出提示,並能讓使用者重新進行操作。
對各個操作的成功,如:添加學生信息、修改學生信息、刪除學
生信息,系統都輸出「…….的成功」的字樣。系統對刪除和修改前,還進行「確定」和「取消」。系統對不存在的學號和姓名系統能判斷是否存在。對已存在的學號,操作者不能添加和這個學號一樣的學生信息,同時系統還提示已有此學號。對於修改、刪除和查詢,系統遇到不存在的學生能提示沒有這個信息。
❷ 編程如何用C語言編寫一個學生成績管理系統程序
我們才做了這個作業。。。
#include <malloc.h>
#include <stdio.h>
#include <stdlib.h>
#define LEN sizeof(struct scorenode)
#define DEBUG
#include <string.h>
struct scorenode
{
int number;/*學號*/
char name[8];/*姓名*/
float cj1;/*成績1*/
float cj2;/*成績2*/
float cj3;/*成績3 */
struct scorenode *next;
};
typedef struct scorenode score;
int n,k;/*n,k為全局變數,本程序中的函數均可以使用它*/
/*==============================================================================================*/
score *creat(void)
/*函數creat,功能:創建鏈表,此函數帶回一個指向鏈表頭的指針*/
{
score*head;
score *p1,*p2,*p3,*max;
int i,j;
float fen;
  char t[10];
n=0;
  p1=p2=p3=(score *)malloc(LEN);head=p3; /*申請一個新單元*/
    printf("請輸入學生資料,輸0退出!\n");
repeat1: printf("請輸入學生學號(學號應大於0):");/*輸入大於0的學號*/
    scanf("%d",&p1->number);
  while(p1->number<0)
  {
    getchar();
  printf("輸入錯誤,請重新輸入學生學號:");
    scanf("%d",&p1->number);
  }     
    /*輸入學號為字元或小於0時,程序報錯,提示重新輸入學號*/
if(p1->number==0)
  goto end;/*當輸入的學號為0時,轉到末尾,結束創建鏈表*/
else 
{ 
p3=head;
  if(n>0)
   { 
    for(i=0;i<n;i++)
      {
        if(p1->number!=p3->number)
  p3=p3->next;
  else 
  { 
 printf("學號重復,請重輸!\n");
  goto repeat1;
  /*當輸入的學號已經存在,程序報錯,返回前面重新輸入*/
    }
   }   
  }       
 }
    printf("請輸入學生姓名:");
    scanf("%s",&p1->name);    /*輸入學生姓名*/
    printf("請輸入cj1(0~100):");   /*輸入cj1,成績應在0-100*/
    scanf("%f",&p1->cj1);
  while(p1->cj1<0||p1->cj1>100)
{ 
 getchar();
printf("輸入錯誤,請重新輸入cj1");    /*輸入錯誤,重新輸入成績1*/
        scanf("%f",&p1->cj1);
}
    printf("請輸入cj2(0~100):");   /*輸入cj2,成績應在0-100*/
    scanf("%f",&p1->cj2);
  while(p1->cj2<0||p1->cj2>100)
{ 
getchar();
printf("輸入錯誤,請重新輸入cj2");   /*輸入錯誤,重新輸入cj2直到正確為止*/
      scanf("%f",&p1->cj2);
}
    printf("請輸入cj3(0~100):");/*輸入cj3,成績應在0-100*/
    scanf("%f",&p1->cj3);
  while(p1->cj3<0||p1->cj3>100)
{ 
getchar();
printf("輸入錯誤,請重新輸入cj3");
        scanf("%f",&p1->cj3);}   /*輸入錯誤,重新輸入cj3直到正確為止*/
  head=NULL;
while(p1->number!=0)
{
  n=n+1;
if(n==1) 
head=p1;
else
  p2->next=p1;
  p2=p1;
  p1=(score *)malloc(LEN);
  printf("請輸入學生資料,輸0退出!\n");
repeat2:printf("請輸入學生學號(學號應大於0):");
    scanf("%d",&p1->number);    /*輸入學號,學號應大於0*/
    while(p1->number<0)
  {
   getchar();
   printf("輸入錯誤,請重新輸入學生學號:");
    scanf("%d",&p1->number);
  }     
   /*輸入學號為字元或小於0時,程序報錯,提示重新輸入學號*/
if(p1->number==0)
  goto end;   /*當輸入的學號為0時,轉到末尾,結束創建鏈表*/
else
{
p3=head;
if(n>0)
  {
   for(i=0;i<n;i++)
    {
      if(p1->number!=p3->number)
  p3=p3->next;
  else 
  {
    printf("學號重復,請重輸!\n");
  goto repeat2;
  /*當輸入的學號已經存在,程序報錯,返回前面重新輸入*/
  }
  }   
  }       
}
printf("請輸入學生姓名:");
    scanf("%s",&p1->name);/*輸入學生姓名*/
  printf("請輸入cj1(0~100):");
    scanf("%f",&p1->cj1);/*輸入cj1,成績應在0-100*/
  while(p1->cj1<0||p1->cj1>100)
{
 getchar();
  printf("輸入錯誤,請重新輸入cj1");
      scanf("%f",&p1->cj1);}/*輸入錯誤,重新輸入cj1直到正確為止*/
  printf("請輸入cj2(0~100):");
    scanf("%f",&p1->cj2);/*輸入cj2,成績應在0-100*/
  while(p1->cj2<0||p1->cj2>100)
{ 
 getchar();
  printf("輸入錯誤,請重新輸入cj2");
      scanf("%f",&p1->cj2);
}   /*輸入錯誤,重新輸入cj2績直到正確為止*/
    printf("請輸入cj3(0~100):");
    scanf("%f",&p1->cj3);/*輸入cj3,成績應在0-100*/
  while(p1->cj3<0||p1->cj3>100)
{
 getchar();
  printf("輸入錯誤,請重新輸入cj3");
      scanf("%f",&p1->cj3);}  /*輸入錯誤,重新輸入cj3直到正確為止*/
  }
end: p1=head;
  p3=p1;
for(i=1;i<n;i++)
          {
        for(j=i+1;j<=n;j++)
          {
    max=p1;
    p1=p1->next;
      if(max->number>p1->number)
    {
    k=max->number;
    max->number=p1->number;
    p1->number=k;
      /*交換前後結點中的學號值,使得學號大者移到後面的結點中*/
    strcpy(t,max->name);
    strcpy(max->name,p1->name);
    strcpy(p1->name,t);
  /*交換前後結點中的姓名,使之與學號相匹配*/
    fen=max->cj1;
    max->cj1=p1->cj1;
    p1->cj1=fen;
          /*交換前後結點中的cj1,使之與學號相匹配*/
     fen=max->cj2;
    max->cj2=p1->cj2;
    p1->cj2=fen;
  /*交換前後結點中的cj2,使之與學號相匹配*/
      fen=max->cj3;
    max->cj3=p1->cj3;
    p1->cj3=fen;
          /*交換前後結點中的cj3,使之與學號相匹配*/
    }
       }
  max=head;p1=head;/*重新使max,p指向鏈表頭*/
} 
p2->next=NULL;/*鏈表結尾*/
    printf("輸入的學生數為:%d個!\n",n);
    return(head);
}
score *add(score *head,score *stu)
/*函數add,功能:追加學生資料,並且將所有學生資料按學號排序*/
{
score *p0,*p1,*p2,*p3,*max;
  int i,j;
float fen;
  char t[10];
p3=stu=(score *)malloc(LEN);/*開辟一個新單元*/
  printf("\n輸入要增加的學生的資料!");
repeat4: printf("請輸入學生學號(學號應大於0):");
scanf("%d",&stu->number); 
/*輸入學號,學號應大於0*/
    while(stu->number<0)
  { 
   getchar();
   printf("輸入錯誤,請重新輸入學生學號:");
    scanf("%d",&stu->number);}    /*輸入錯誤,重新輸入學號*/
  /******************************************************/
  if(stu->number==0)
  goto end2;/*當輸入的學號為0時,轉到末尾,結束追加*/
else 
{ 
  p3=head;
if(n>0)
  {for(i=0;i<n;i++)
      {if(stu->number!=p3->number)
  p3=p3->next;
  else 
  {
   printf("學號重復,請重輸!\n");
   goto repeat4;
  /*當輸入的學號已經存在,程序報錯,返回前面重新輸入*/
    }
  }   
  }       
}
  /******************************************************/ 
  printf("輸入學生姓名:");
      scanf("%s",stu->name);         /*輸入學生姓名*/
    printf("請輸入cj1(0~100):");
      scanf("%f",&stu->cj1);   /*輸入cj1,成績應在0-100*/
    while(stu->cj1<0||stu->cj1>100)
  {getchar();
  printf("輸入錯誤,請重新輸入cj1");
    scanf("%f",&stu->cj1);
}   /*輸入錯誤,重新輸入cj1直到正確為止*/
    printf("請輸入cj2(0~100):");
      scanf("%f",&stu->cj2);/*輸入cj2,成績應在0-100*/
    while(stu->cj2<0||stu->cj2>100)
{
getchar();
  printf("輸入錯誤,請重新輸入cj2");
      scanf("%f",&stu->cj2);}/*輸入錯誤,重新輸入cj2直到正確為止*/
    printf("請輸入cj3(0~100):");
      scanf("%f",&stu->cj3);/*輸入cj3,成績應在0-100*/
    while(stu->cj3<0||stu->cj3>100)
  {
   getchar();
  printf("輸入錯誤,請重新輸入cj3");
      scanf("%f",&stu->cj3);}/*輸入錯誤,重新輸入cj3直到正確為止*/
p1=head;
p0=stu;
if(head==NULL)
{head=p0;p0->next=NULL;}/*當原來鏈表為空時,從首結點開始存放資料*/
else/*原來鏈表不為空*/
{
if(p1->next==NULL)/*找到原來鏈表的末尾*/
{
  p1->next=p0;
    p0->next=NULL;/*將它與新開單元相連接*/
}
  else
{
  while(p1->next!=NULL)/*還沒找到末尾,繼續找*/
  {
  p2=p1;p1=p1->next;
  }
    p1->next=p0;
    p0->next=NULL;
}
}
n=n+1;
p1=head;
p0=stu;
for(i=1;i<n;i++)
          {
        for(j=i+1;j<=n;j++)
          {
    max=p1;
    p1=p1->next;
     if(max->number>p1->number)
    {
    k=max->number;
    max->number=p1->number;
    p1->number=k;
      /*交換前後結點中的學號值,使得學號大者移到後面的結點中*/
     strcpy(t,max->name);
    strcpy(max->name,p1->name);
    strcpy(p1->name,t);
  /*交換前後結點中的姓名,使之與學號相匹配*/
    fen=max->cj1;
    max->cj1=p1->cj1;
    p1->cj1=fen;
          /*交換前後結點中的cj1,使之與學號相匹配*/
     fen=max->cj2;
    max->cj2=p1->cj2;
    p1->cj2=fen;
  /*交換前後結點中的cj2績,使之與學號相匹配*/
     fen=max->cj3;
    max->cj3=p1->cj3;
    p1->cj3=fen;
          /*交換前後結點中的cj3,使之與學號相匹配*/
    }
         }
  max=head;p1=head;/*重新使max,p指向鏈表頭*/
} end2:
printf("現在的學生數為:%d個!\n",n);
return(head);
}
/*========================================================
======================================*/
score *search(score *head)
/*函數search,功能:查詢學生成績*/
{int number;
score *p1,*p2;
printf("輸入要查詢的學生的學號,");
scanf("%d",&number);
while(number!=0)
{
  if(head==NULL)
{printf("\n沒有任何學生資料!\n");return(head);}
  printf("-----------------------------------------\n");
  printf("|學號\t|姓名\t|cj1\t|cj2\t|cj3\t|\n");
  printf("-----------------------------------------\n");/*列印表格域*/
  p1=head;
  while(number!=p1->number&&p1->next!=NULL)
{p2=p1;p1=p1->next;} 
      if(number==p1->number) 
  {printf("|%d\t|%s\t|%.1f\t|%.1f\t|%.1f\t|\n",p1->number,p1->name,p1->cj1,p1->cj2,p1->cj3);
      printf("-----------------------------------------\n");}/*列印表格域*/
      else 
      printf("%d不存在此學生!\n",number);
      printf("輸入要查詢的學生的學號,");
      scanf("%d",&number);
}
printf("已經退出了!\n");
return(head);
}/*=============================================
=================================================*/
score *del(score *head)/*函數del,功能:刪除學生資料*/
{
score *p1,*p2;
int number;
printf("輸入要刪除的學生的學號(輸入0時退出):");
scanf("%d",&number);
getchar();
while(number!=0)/*輸入學號為0時退出*/
{
if(head==NULL)
{
  printf("\n沒有任何學生資料!\n");
  return(head);
}
p1=head;
while(number!=p1->number&&p1->next!=NULL)
  /*p1指向的不是所要找的首結點,並且後面還有結點*/
{
  p2=p1;p1=p1->next;
} /*p1後移一個結點*/
  
if(number==p1->number) 
  /*找到了*/ 
{
  if(p1==head)
  head=p1->next;
  /*若p1指向的是首結點,把地二個結點地址賦予head*/
  else 
    p2->next=p1->next;
  /*否則將下一個結點地址 賦給前一結點地址*/
  printf("已經刪除:%d\n",number);n=n-1;
}
else
  printf("%d不存在此學生!\n",number);
/*找不到該結點*/
printf("輸入要刪除的學生的學號:");
scanf("%d",&number);
getchar();
}
#ifdef DEBUG 
printf("已經退出了!\n");
#endif
printf("現在的學生數為:%d個!\n",n);
return(head);
} /*==================================================
============================================*/
score *statistics(score *head)
/*函數statistics,功能:統計學生成績*/
{
float sum1=0,sum2=0,sum3=0,ave1=0,ave2=0,ave3=0,max=0,min;
score *p;
int x,y=0,i=0;
    p=head;
    printf("1個人總分和平均分\t2單科平均分\t3總分最高分\t4總分最低分\n");
      scanf("%d",&x);
    getchar();
switch(x)
/*用switch語句實現功能選擇*/
{
case 1: if(head==NULL)
  {printf("\n沒有任何學生資料!\n");return(head);}/*鏈表為空*/
    else
{
  printf("---------------------------------------------------------\n");
    printf("|學號\t|姓名\t|cj1\t|cj2\t|cj3\t|總分\t|平均分\t|\n");
    printf("---------------------------------------------------------\n");/*列印表格域*/
  while(p!=NULL)
  {
    sum1=p->cj1+p->cj2+p->cj3; /*計算個人總分*/                   
          ave1=sum1/3;/*計算個人平均分*/
      
          printf("|%d\t|%s\t|%.1f\t|%.1f\t|%.1f\t|%.1f\t|%.1f\t|\n",p->number,p->name,p->cj1,p->cj2,p->cj3,sum1,ave1);
    /*列印結果*/
          printf("---------------------------------------------------------\n");/*列印表格域*/
      p=p->next;}
  }
return(head);   break;
case 2: if(head==NULL)
        {printf("\n沒有任何學生資料!\n");return(head);}/*鏈表為空*/
    while(p!=NULL)
      { 
  sum1=sum1+p->cj1;
  sum2=sum2+p->cj2;
  sum3=sum3+p->cj3;/*計算總分*/
  y=y+1;
          ave1=sum1/y;
          ave2=sum2/y;
          ave3=sum3/y;/*計算平均分*/
  p=p->next;/*使p指向下一個結點*/
      }
  printf("cj1平均分是%.1f\n",ave1);
  printf("cj2平均分是%.1f\n",ave2);
  printf("cj3平均分是%.1f\n",ave3);/*列印結果*/
        return(head); break;
case 3: 
  if(head==NULL)
        {printf("\n沒有任何學生資料!\n");return(head);}/*鏈表為空*/
    max=p->cj1+p->cj2+p->cj3;
  while(i<n)
{   
  i=i+1;
  sum1=p->cj1+p->cj2+p->cj3; /*計算個人總分*/
    if(max<sum1)
max=sum1;
p=p->next;
}
  printf("總分最高分:%.1f",max);
  printf("\n");
  return(head); break;
case 4: if(head==NULL)
  {printf("\n沒有任何學生資料!\n");return(head);}/*鏈表為空*/
    while(p!=NULL)
  {
    min=p->cj1+p->cj2+p->cj3;
  while(p!=NULL)
  {sum2=p->cj1+p->cj2+p->cj3; 
  
  if(min>sum2)
  min=sum2;
  p=p->next;
  }
  }
    printf("總分最低分:%.1f",min);
    printf("\n");
    return(head); break;
default :printf("輸入錯誤,請重試!\n");
}
return(head);
}
/*===========================================================
===================================*/
int save(score *p1) 
/*函數save,功能:保存學生的資料*/
{ 
FILE *fp;
char filepn[20];/*用來存放文件保存路徑以及文件名*/
printf("請輸入文件路徑及文件名:");
scanf("%s",filepn);
if((fp=fopen(filepn,"w+"))==NULL)
{
printf("不能打開文件!\n");
return 0;
}
  fprintf(fp,"    學生成績管理系統         \n");
  fprintf(fp,"-------------------------------------------------------\n");
fprintf(fp,"|  學號\t|  姓名\t| cj1\t|  cj2\t|  cj3\t|\n");
  fprintf(fp,"-------------------------------------------------------\n");
/*列印表格域*/
while(p1!=NULL)
{
fprintf(fp,"%d\t%s\t%.1f\t%.1f\t%.1f\t\n",p1->number,p1->name,p1->cj1,p1->cj2,p1->cj3);
p1=p1->next;/*下移一個結點*/
}
fclose(fp);
printf("文件已經保存!\n");
return 0;
}
int menu()/*函數menu,功能:菜單選擇界面*/
{
int i,k;
printf("\t\t\t\t學生成績管理系統\n");
  for(i=0;i<80;i++)
      printf("*");
printf("\t\t1創建資料\t\t\t2查詢成績\t\t\n");
printf("\t\t3刪除資料\t\t\t4追加資料\t\t\n"); 
printf("\t\t5統計成績\t\t\t6保存資料\t\t\n");
/*菜單選擇界面*/ 
for(i=0;i<80;i++)
  printf("*");
printf("請選擇您所要的操作(選擇(0)退出):");
scanf("%d",&k);/*選擇操作*/
  getchar();
return (k);}
/*==============================================================================================*/
main() /*主函數main,功能:通過調用creat,search,del,add,print,ststistics,save,taxis等函數,實現學生成績查詢系統功能*/
{ 
score *head=0,*stu=0;
while(1)
{
k=menu();
switch(k)/*用switch語句實現功能選擇*/
{
case 1: head=creat();break;/*調用創建鏈表函數*/
case 2: head=search(head);break;/*調用查詢函數*/
case 3: head=del(head); break;/*調用刪除函數*/
case 4: head=add(head,stu);break;/*調用追加函數*/
case 5: statistics(head); break;/*調用統計函數*/
case 6: save(head);break;/*調用保存函數*/
case 0: exit(0);/*退出系統,返回主界面*/
default: printf("輸入錯誤,請重試!\n");
 }
}
}
❸ 學生成績管理系統的編程中調試過程怎麼寫
/*------------------1------------------*/ 
#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 mingci;
char xuehao[8];
char mingzi[20];
float score[6];
char banji[10];
char xueqi[10]; 
}data,info[100]; 
int i,j,k=0; 
char temp[20],ch; 
FILE *fp,*fp1; 
/*-------------------2----------------------*/ 
void shuru() 
{
if((fp=fopen("s_score.txt","ab+"))==NULL)
{
printf("cannot open this file.\n");
getch();exit(0);
}
for(i=0;i<=100;i++)
{
printf("\n請輸入學號:");
gets(data.xuehao);
printf("請輸入名字:");
gets(data.mingzi);
printf("請輸入班級:");
gets(data.banji);
printf("請輸入學期:");
gets(data.xueqi);
printf("請輸入語文成績:");
gets(temp);data.score[0]=atof(temp);
printf("請輸入數學成績:");
gets(temp);data.score[1]=atof(temp);
printf("請輸入英語成績:");
gets(temp);data.score[2]=atof(temp);
printf("請輸入物理成績:");
gets(temp);data.score[3]=atof(temp);
printf("請輸入化學成績:");
gets(temp);data.score[4]=atof(temp);
data.score[5]=data.score[0]+data.score[1]+data.score[2]+data.score[3]+data.score[4];
fwrite(&data,sizeof(data),1,fp);
printf("再增加一條新紀錄?y/n");
ch=getch();
if(ch=='n'||ch=='N')
break;
} fclose(fp); 
} 
/*---------------------3---------------------*/ 
void xianshi() 
{
float s;int n;
if((fp=fopen("s_score.txt","rb+"))==NULL)
{
printf("Cannot reading this file.\n");
exit(0);
}
for(i=0;i<=1000;i++)
{
if((fread(&info[i],sizeof(info[i]),1,fp))!=1)
break;
}
printf("\nxuehao  mingzi   yuwen  shuxue   yingyu  wuli  huauxue zhongfen\n");
for(j=0,k=1;j<i;j++,k++)
{
info[j].mingci=k;
printf("%6s %8s %10s %10s %3.1f   %3.1f    %3.1f    %3.1f    %3.1f   %3.1f \n",info[j].xuehao,info[j].mingzi,info[j].banji,info[j].xueqi,info[j].score[0],info[j].score[1],info[j].score[2],info[j].score[3],info[j].score[4],
info[j].score[5]);
}
getch();
fclose(fp); 
} 
/*-----------------------4------------------------*/ 
void xiugai() 
{
if((fp=fopen("s_score.txt","rb+"))==NULL||(fp1=fopen("temp.txt","wb+"))==NULL)
{
printf("文件無法打開.\n");
exit(0);
}
printf("\n請輸入修改的學號:");
scanf("%d",&i); getchar();
while((fread(&data,sizeof(data),1,fp))==1)
{
j=atoi(data.xuehao);
if(j==i)
{
printf("xuehao:%s\nmingzi:%s\n",data.xuehao,data.mingzi);
printf("請輸入學號");
printf("請輸入名字:");
gets(data.mingzi);
printf("請輸入班級:");
gets(data.banji);
printf("請輸入學期:");
gets(data.xueqi);
printf("請輸入語文成績:")
gets(temp);data.score[0]=atof(temp);
printf("請輸入數學成績:"); 
gets(temp);data.score[1]=atof(temp);
printf("請輸入英語成績:");
gets(temp);data.score[2]=atof(temp);
printf("請輸入物理成績:");
gets(temp);data.score[3]=atof(temp);
printf("請輸入化學成績:");
gets(temp);data.score[4]=atof(temp);
data.score[5]=data.score[0]+data.score[1]+data.score[2]+data.score[3]+data.score[4]; 
} fwrite(&data,sizeof(data),1,fp1);
}
fseek(fp,0L,0);
fseek(fp1,0L,0);
while((fread(&data,sizeof(data),1,fp1))==1)
{
fwrite(&data,sizeof(data),1,fp);
} 
fclose(fp);
fclose(fp1); 
} 
/*-----------------------5---------------------*/ 
void chazhao() 
{
if((fp=fopen("s_score.txt","rb"))==NULL)
{
printf("\n文件無法打開.\n");
exit(0);
}
printf("\nPLease shuru xuehao chakan:");
scanf("%d",&i);
while(fread(&data,sizeof(data),1,fp)==1)
{
j=atoi(data.xuehao);
if(i==j)
{
printf("xuehao:%s   mingzi:%s\nbanji:%s\n xueqi:%s\n yuwen:%f\n shuxue:%f\n yingyu:%f\n wuli:%f\n huaxue:%f\n ",data.xuehao,data.mingzi,data.banji,data.xueqi,data.score[0],data.score[1],data.score[2],data.score[3],data.score[4],data.score[5]);
}getch();
} 
} 
/*--------------------6-------------------*/ 
void shanchu() 
{ 
if((fp=fopen("s_score.txt","rb+"))==NULL||(fp1=fopen("temp.txt","wb+"))==NULL)
{
printf("\nopen score.txt was failed!");
getch();
exit(0);
}
printf("\n請輸入要刪除的ID:");
scanf("%d",&i);getchar();
while((fread(&data,sizeof(data),1,fp))==1)
{
j=atoi(data.xuehao);
if(j==i)
{ 
printf("Anykey will delet it.\n");
getch();
continue;
}
fwrite(&data,sizeof(data),1,fp1);
}
fclose(fp);
fclose(fp1);
remove("s_score.txt");
rename("temp.txt","s_score.txt");
printf("刪除成功!\n");
printf("Anykey will return to main.");
getch(); 
} 
/*-----------------------7-----------------*/ 
void() 
{ int key,d;
getdate(&d);      /*讀取系統日期並把它放到結構體d中*/
clrscr();      /*清除屏幕*/
printf("\n\n\n\n\n");
printf("\t\t\t****************************\n"); /*版本信息*/
printf("\t\t\t    廣東交通職業技術學院---學生成績管理系統   \n");
printf("\t\t\t****************************\n");
printf("\t\t\t    製作組:  101工作室   \n");
printf("\t\t\t    指導老師:李月     \n");
printf("\t\t\t    製作時間:2006年7月     \n");
printf("\t\t\t****************************\n");
printf("\t\t\t請按任意鍵繼續..."); 
}  
/*-------------------------8-------------------*/ 
void HelpMessage()   
{ clrscr();
printf("\n\n\n\n\n     此系統是應老師所布置的作業編制而成,該系統具有存貯學生數據,按學號、姓名查詢,列出學生成績和統計功能。\n    \n     使用方法:系統輸入數據後,將在當前目錄中建立一個名為stu.dat文件,用於保存輸入的數據。學號輸入只能用數字輸入,並且學號是小於8位。      此程序在Turbo C2.0下運行通過\n\n     由於是初學者,水平有限此系統還有許多不夠完整和嚴密性,敬請指正!");
getch(); 
} 
/*-------------------9---------------------*/ 
main() 
{ 
while(1) 
{
clrscr();                     /*清屏幕*/
gotoxy(1,1);             /*移動游標*/
textcolor(YELLOW);   /*設置文本顯示顏色為黃色*/
textbackground(BLUE);   /*設置背景顏色為藍色*/
window(1,1,99,99);       /* 製作顯示菜單的窗口,大小根據菜單條數設計*/
clrscr();
printf("*****************歡迎使用學生成績管理系統*********************\n");
printf("*************************菜單********************************\n");
printf("* ========================================================= *   \n");
printf("*               1>輸入         2>修改                        *   \n");
printf("*               3>刪除         4>查找                        *   \n");
printf("*               5>顯示         6>退出                        *   \n");
printf("*                                                           *   \n");
printf("* --------------------------------------------------------- *  \n");
printf("     請出入您的選擇(1-6):");
ch=getch();
switch(ch)
{
case '1':shuru();break;
case '2':xiugai(); break;
case '3':shanchu();  break;
case '4':chazhao(); break;
case '5':xianshi();   break;
case '6':exit(0);
default: continue;
} 
} 
}
❹ C語言程序設計 請用C語言設計成績統計程序(10人)
/*  HELLO.C -- Hello, world */
#include "stdio.h"
#include "conio.h"
main()
{
    int i=0;
    int score=0;
    int data[101]={0};
    printf("input the scores of the students:\n");
    for(i=0;i<10;i++)
    {
     scanf("%d",&score);
     data[score]++;
    }
    for(i=0;i<101;i++)
    {
    if(data[i]!=0) printf("%d students get a score of %d\n",data[i],i);
    }
    getch();
}
wintc 測試可以運行,實現功能為:輸入十個學生的成績,輸出版學生成績貨的情況權