當前位置:編程學習大全網 - 編程語言 - c語言編寫查詢學生成績管理程序。

c語言編寫查詢學生成績管理程序。

#include<stdio.h>

#include<stdlib.h>

#include<string.h>struct record

{

char xuehao[10];//學號

char name[20]; //姓名

char sex[3];//性別

int ke1;//數學

int ke2 ;//語文

int ke3;//英語

int pin;

}stu[50];

int k=1,n,m;void readfile();

void seek();

void insert();

void del();

void save();

void menu();

void seek()

{int i,j,item,flag;<br>char s1[20];<br>printf("------------------\n");<br>printf("1.按學號查詢\n");<br>printf("2.退出本菜單\n");<br>printf("------------------\n");<br>while(1)<br>{ printf("請選擇子菜單編號:");<br>scanf("%d",&item);<br>flag=0;<br>switch(item)<br>{<br>case 1:<br>printf("請輸入要查詢的學生的學號:\n");<br>scanf("%s",s1);<br>for(i=0;i<n;i++)<br>if(strcmp(stu[i].xuehao,s1)==0)<br>{ flag=1;<br>printf("該學生學號,姓名,性別,數學,語文,英語 分別為:\n");<br>printf(" %s %s %s %d %d %d",stu[i].xuehao,stu[i].name,<br>stu[i].sex,stu[i].ke1,stu[i].ke2,stu[i].ke3);<br>}

if(flag==0)

printf("該學號不存在!\n"); break;

case 2:return;

default:printf("請在1-2之間選擇\n");

}

}

}

void insert()

{ int i=n,j,flag;

printf("請輸入待增加的學生數:\n");

scanf("%d",&m);

do

{ flag=1;

while(flag)

{ flag=0;

printf("請輸入第 %d 個學生的學號:\n",i+1);

scanf("%s",stu[i].xuehao);

for(j=0;j<i;j++)

if(strcmp(stu[i].xuehao,stu[j].xuehao)==0)

{ printf("已有該學號,請檢查後重新錄入!\n");

flag=1;

break;

}

}

printf("請輸入第 %d 個學生的姓名:",i+1);

scanf("%s",stu[i].name);

printf("\n請輸入第 %d 個學生的性別:",i+1);

scanf("%s",stu[i].sex);

printf("\n請輸入第 %d 個學生的數學成績:",i+1);

scanf("%d",&stu[i].ke1);

printf("\n請輸入第 %d 個學生的語文成績:",i+1);

scanf("%d",&stu[i].ke2);

printf("\n請輸入第 %d 個學生的英語成績:",i+1);

scanf("%d",&stu[i].ke3);if(flag==0)

{ i=i;

i++;

}

}while(i<n+m);

n+=m;

printf("錄入完畢!\n\n");

}void del()

{ int i,j,flag=0;

char s1[20];

printf("請輸入要刪除學生的學號:\n");

scanf("%s",s1);

for(i=0;i<n;i++)

if(strcmp(stu[i].xuehao,s1)==0)

{ flag=1;

for(j=i;j<n-1;j++)

stu[j]=stu[j+1];

}

if(flag==0)

printf("該學號不存在!\n");

if(flag==1)

{ printf("刪除成功,顯示結果請選擇菜單6\n");

n--;

}

}

void readfile()

{

char buf[80],*p="student.dat";

FILE *fp;

int i=0;

if ((fp=fopen("student.dat","r"))==NULL)

{ printf("Open file %s error! Strike any key to exit!",p);

system("pause");

exit(0);

}

while(fscanf(fp,"%s%s%s%d%d%d",stu[i].xuehao,stu[i].name,

stu[i].sex,&stu[i].ke1,&stu[i].ke2,&stu[i].ke3)==6)

{ i++;

i=i;

}

fclose(fp);

n=i;

printf("錄入完畢!\n");

}void save()

{ int i,j,k,flag=0;

FILE *fp;

fp=fopen("student.dat","w");

for(i=0;i<m;i++)

{

fprintf(fp,"%s%s%d%d%d",stu[i].xuehao,stu[i].name,stu[i].sex,&stu[i].ke1,

&stu[i].ke2,&stu[i].ke3);

fclose(fp);

printf("已儲存");

}

}

void paixu()

{

int i,j,k,t;

for(i=0;i<m;i++)

{

stu[i].pin=(stu[i].ke1+stu[i].ke2+stu[i].ke3)/3;

}

for(i=0;i<=m-2;i++)

{

k=i;

for(j=i+1;j<=m-1;j++)

if(stu[j].pin<stu[k].pin)

k=j;

if(k!=i)

{

t=stu[k].pin;

stu[k].pin=stu[i].pin;

stu[i].pin=t;

}

}

for(i=0;i<m;i++)

{printf("第 %d 個學生的姓名%s:",i+1,stu[i].name);<br> printf("\n第 %d 個學生的性別:%s",i+1,stu[i].sex);<br> printf("\n第 %d 個學生的數學成績:%d",i+1,stu[i].ke1);<br> printf("\n第 %d 個學生的語文成績:%d",i+1,stu[i].ke2);<br> printf("\n第 %d 個學生的英語成績:%d",i+1,stu[i].ke3);<br> printf("\n第 %d 個學生的平均成績:%d",i+1,stu[i].pin);<br> }

}

void menu()

{ int nub;

printf(" \n\n學生成績管理系統\n\n");

printf("*****系統功能菜單*****\n");

printf("----------------------\n");

printf("1.輸入學生信息\n");

printf("2.查詢學生信息\n");

printf("3.按學號刪除信息\n");

printf("4.讀入學生信息\n");

printf("5.保存信息(要把修改保存到文件,退出程序前必須執行本項)\n");

printf("6.查詢學生平均成績信息\n");

printf("0.退出系統\n");

printf("----------------------\n");

printf("請選擇菜單編號:");

scanf("%d",&nub);

switch(nub)

{

case 1:insert();break;

case 2:seek();break;

case 3:del();break;

case 4:readfile();break;

case 5:save();break;

case 6:paixu();break;

case 0:k=0;break;

default:printf("請在0-6之間選擇\n");

}}

void main()

{

while(k)

menu();

}

//平均數是排序後,輸出的,如果妳不想直接輸入,那就不要對每個學生進行選擇排序了

  • 上一篇:計算機考試好過嗎?
  • 下一篇:國內嚴重飽和的六大專業
  • copyright 2024編程學習大全網