你需要將數據存儲到文件當中呀,如果你只是將數據存儲到數組中,那么每一次運行都會重置的
這是我之前課設寫的代碼寫的不好你可以看一下
#include<stdio.h>
#defineN100
typedefstruct{
charCallid[N];//電話號
charName[N];//姓名
charGender[N];//性別
charAddress[N];//家庭住址
intId;//學號
intRank;//考試名次
intTotalRank;//綜合成績名次
doubleMath;//數學成績
doubleEnglish;//外語成績
doubleChinese;//語文成績
doubleAverage;//平均成績
doubleTotalScore;//綜合測評成績
doublePeerGrading;//同學互評
doubleFlightTracker;//老師評分
doubleCharacterGrades;//品德成績
}datatype;
voidPrintf(datatypestu[N],intj){
intc;
printf("瀏覽數據前請先插入數據");
printf("1.輸出學生信息");
printf("2.輸出學生考試成績");
printf("3.輸出學生綜測成績");
printf("4.輸出學生全部信息");
scanf("%d",&c);
switch(c){
case1:for(inti=0;i<j;i++){
printf("姓名:%s性別:%s聯系號碼:%s家庭住址:%s學號:%d\n",stu[i].Name,stu[i].Gender,stu[i].Callid,stu[i].Address,stu[i].Id);
printf("***************************************************************************");
}
break;
case2:for(inti=0;i<j;i++){
printf("姓名:%s學號:%d\n",stu[i].Name,stu[i].Id);
printf("數學成績:%f語文成績:%f英語成績:%f平均成績:%f排名%d\n",stu[i].Math,stu[i].Chinese,stu[i].English,stu[i].Average,stu[i].Rank);
printf("***************************************************************************");
}
break;
case3:for(inti=0;i<j;i++){
printf("姓名:%s學號:%d\n",stu[i].Name,stu[i].Id);
printf("綜合測評成績:%f同學互評:%f老師評分:%f品德成績:%f綜合成績名次:%d\n",stu[i].TotalScore,stu[i].PeerGrading,stu[i].FlightTracker,stu[i].CharacterGrades,stu[i].TotalRank);
printf("***************************************************************************");
}
case4:for(inti=0;i<j;i++){
printf("姓名:%s性別:%s聯系號碼:%s家庭住址:%s學號:%d\n",stu[i].Name,stu[i].Gender,stu[i].Callid,stu[i].Address,stu[i].Id);
printf("數學成績:%f語文成績:%f英語成績:%f平均成績:%f排名%d\n",stu[i].Math,stu[i].Chinese,stu[i].English,stu[i].Average,stu[i].Rank);
printf("綜合測評成績:%f同學互評:%f老師評分:%f品德成績:%f綜合成績名次:%d\n",stu[i].TotalScore,stu[i].PeerGrading,stu[i].FlightTracker,stu[i].CharacterGrades,stu[i].TotalRank);
printf("***************************************************************************");
}
}
}
voidfind(datatypestu[N],intj,inti){
intc=0;
intb;
for(intk=0;k<j;k++){
if(stu[k].Id==i){
printf("姓名:%s性別:%s聯系號碼:%s家庭住址:%s學號:%d\n",stu[k].Name,stu[k].Gender,stu[k].Callid,stu[k].Address,stu[k].Id);
printf("數學成績:%f語文成績:%f英語成績:%f平均成績:%f排名%d\n",stu[k].Math,stu[k].Chinese,stu[k].English,stu[k].Average,stu[k].Rank);
printf("綜合測評成績:%f同學互評:%f老師評分:%f品德成績:%f綜合成績名次:%d\n",stu[k].TotalScore,stu[k].PeerGrading,stu[k].FlightTracker,stu[k].CharacterGrades,stu[i].TotalRank);
printf("***************************************************************************");
j++;
_getch();
}
}
if(c=0){
printf("沒有查找到此同學");
}
}
voidSave(datatypestu[],intj){
FILE*File;
File=fopen(".\\stu.txt","wb");
rewind(File);
for(inti=0;i<=j;i++){
fprintf(File,"姓名:%s性別:%s聯系號碼:%s家庭住址:%s學號:%d\n",stu[i].Name,stu[i].Gender,stu[i].Callid,stu[i].Address,stu[i].Id);
fprintf(File,"****************************************************\n");
}
fclose(File);
printf("\n數據保存成功。\n");
}
voidMenu(){
printf("**********************************\n");
printf("**********************************\n");
printf("********歡迎使用學生綜合測評系統******\n");
printf("**********************************\n");
printf("********1.輸入學生信息****************\n");
printf("**********************************\n");
printf("********2.插入同學信息****************\n");
printf("**********************************\n");
printf("********3.刪除同學信息****************\n");
printf("**********************************\n");
printf("********4.瀏覽學生信息****************\n");
printf("**********************************\n");
printf("********5.輸入考試成績****************\n");
printf("**********************************\n");
printf("********6.輸入綜測成績****************\n");
printf("**********************************\n");
printf("********7.更改學生成績****************\n");
printf("**********************************\n");
printf("********8.查找同學信息****************\n");
printf("**********************************\n");
printf("********9.退出**********************\n");
printf("**********************************\n");
}
voidSort(datatypestu[N],intj){
intk;
datatypetemp;
for(inti=0;i<j+1;i++){
k=i;
for(into=i+1;o<=j;o++){
if(stu[k].Id>stu[o].Id){
k=o;
}
}
if(stu[i].Id>stu[k].Id){
temp=stu[i];
stu[i]=stu[k];
stu[k]=temp;
}
}
}
intSaveStudent(datatypestu[N]){//錄入學生基本信息
datatypetemp;
intk;
charc;
intj;
for(j=0;j<N;j++){
printf("請輸入第%d號學生姓名:",j+1);
scanf_s("%s",stu[j].Name,sizeof(stu[j].Name));
printf("請輸入第%d號學生學號:",j+1);
scanf_s("%d",&stu[j].Id,sizeof(stu[j].Id));
printf("請輸入第%d號學生性別:",j+1);
scanf_s("%s",stu[j].Gender,sizeof(stu[j].Gender));
printf("請輸入第%d號學生家庭住址:",j+1);
scanf_s("%s",stu[j].Address,sizeof(stu[j].Address));
printf("請輸入第%d號學生聯系號碼:",j+1);
scanf_s("%s",stu[j].Callid,sizeof(stu[j].Callid));
printf("如果輸入完成請按下‘*’以結束輸入程序,若繼續請按其他任意鍵\n");
c=_getch();
if(c=='*'){
break;
}
}
Sort(stu,j);
Save(stu,j);
returnj+1;
}
intInput(datatypestu[N],intj){
printf("請輸入學生姓名:");
scanf_s("%s",stu[j].Name,sizeof(stu[j].Name));
printf("請輸入學生學號:");
scanf_s("%d",&stu[j].Id,sizeof(stu[j].Id));
printf("請輸入學生性別:");
scanf_s("%s",stu[j].Gender,sizeof(stu[j].Gender));
printf("請輸入學生家庭住址:");
scanf_s("%s",stu[j].Address,sizeof(stu[j].Address));
printf("請輸入學生聯系號碼:");
scanf_s("%s",stu[j].Callid,sizeof(stu[j].Callid));
Sort(stu,j);
Save(stu,j);
returnj+1;
}
intDelete(datatypestu[N],intj){
inti;
charc;
printf("請輸入要刪除的學生學號:");
scanf("%d",&i);
for(intk=0;k<j;k++){
if(stu[k].Id==i){
printf("姓名:%s學號:%d聯系電話:%s性別:%s家庭住址:%s",stu[k].Name,stu[k].Id,stu[k].Callid,stu[k].Gender,stu[k].Address);
printf("是否刪除此同學信息,若是按下‘y’");
c=_getch();
if(c=='y'){
for(inti=k;k<j;k++){
stu[k]=stu[k+1];
}
printf("刪除成功");
returnj-1;
}
}
}
printf("沒有查找到此同學");
returnj;
}
voidSorce(datatypestu[N],intj){
for(inti=0;i<j;i++){
printf("請輸入%s學號%d的成績\n",stu[i].Name,stu[i].Id);
printf("請輸入語文成績:");
scanf("%lf",&stu[i].Chinese);
printf("請輸入數學成績:");
scanf("%lf",&stu[i].Math);
printf("請輸入外語成績:");
scanf("%lf",&stu[i].English);
stu[i].Average=(stu[i].Chinese+stu[i].Math+stu[i].English)/3;
printf("%f",stu[i].Average);
}
intk;
datatypetemp;
for(inti=0;i<j;i++){
k=i;
for(into=i+1;o<=j-1;o++){
if(stu[k].Average>stu[o].Average){
k=o;
}
}
if(stu[i].Average>stu[k].Average){
temp=stu[i];
stu[i]=stu[k];
stu[k]=temp;
}
}
for(inti=0;i<j;i++){
stu[i].Rank=j-i;
}
Sort(stu,j-1);
FILE*File;
File=fopen(".\\stu1.txt","wb");
rewind(File);
for(inti=0;i<j;i++){
fprintf(File,"姓名:%s性別:%s聯系號碼:%s家庭住址:%s學號:%d\n",stu[i].Name,stu[i].Gender,stu[i].Callid,stu[i].Address,stu[i].Id);
fprintf(File,"語文成績:%f數學成績:%f外語成績:%f平均成績:%f考試名次:%d\n",stu[i].Chinese,stu[i].Math,stu[i].English,stu[i].Average,stu[i].Rank);
fprintf(File,"****************************************************\n");
}
fclose(File);
printf("\n數據保存成功。\n");
}
voidTotalSorce(datatypestu[N],intj){
for(inti=0;i<j;i++){
printf("請輸入%s學號%d的綜測成績\n",stu[i].Name,stu[i].Id);
printf("請輸入同學互評分:");
scanf("%lf",&stu[i].PeerGrading);
printf("請輸入品德成績:");
scanf("%lf",&stu[i].CharacterGrades);
printf("請輸入老師評分:");
scanf("%lf",&stu[i].FlightTracker);
stu[i].TotalScore=stu[i].Average*0.6+stu[i].PeerGrading*0.1+stu[i].CharacterGrades*0.1+stu[i].FlightTracker*0.2;
}
intk;
datatypetemp;
for(inti=0;i<j;i++){
k=i;
for(into=i+1;o<=j-1;o++){
if(stu[k].TotalScore>stu[o].TotalScore){
k=o;
}
}
if(stu[i].TotalScore>stu[k].TotalScore){
temp=stu[i];
stu[i]=stu[k];
stu[k]=temp;
}
}
for(inti=0;i<j;i++){
stu[i].TotalRank=j-i;
}
Sort(stu,j-1);
FILE*File;
File=fopen(".\\stu2.txt","wb");
rewind(File);
for(inti=0;i<j;i++){
fprintf(File,"姓名:%s性別:%s聯系號碼:%s家庭住址:%s學號:%d\n",stu[i].Name,stu[i].Gender,stu[i].Callid,stu[i].Address,stu[i].Id);
fprintf(File,"語文成績:%f數學成績:%f外語成績:%f平均成績:%f考試名次:%d\n",stu[i].Chinese,stu[i].Math,stu[i].English,stu[i].Average,stu[i].Rank);
fprintf(File,"同學互評分:%f品德成績:%f老師評分:%f綜測總分:%f綜測排名:%d\n",stu[i].PeerGrading,stu[i].CharacterGrades,stu[i].FlightTracker,stu[i].TotalScore,stu[i].TotalRank);
fprintf(File,"****************************************************\n");
}
fclose(File);
printf("\n數據保存成功。\n");
}
voidESorce(datatypestu[N],intj){
inti;
inta;
printf("請輸入要修改同學的學號");
scanf("%d",&a);
find(stu,j,a);
for(i=0;i<j;i++){
if(stu[i].Id==a){
printf("請輸入%s學號%d的成績\n",stu[i].Name,stu[i].Id);
printf("請輸入語文成績:");
scanf("%lf",&stu[i].Chinese);
printf("請輸入數學成績:");
scanf("%lf",&stu[i].Math);
printf("請輸入外語成績:");
scanf("%lf",&stu[i].English);
stu[i].Average=(stu[i].Chinese+stu[i].Math+stu[i].English)/3;
rintf("請輸入%s學號%d的綜測成績\n",stu[i].Name,stu[i].Id);
printf("請輸入同學互評分:");
scanf("%lf",&stu[i].PeerGrading);
printf("請輸入品德成績:");
scanf("%lf",&stu[i].CharacterGrades);
printf("請輸入老師評分:");
scanf("%lf",&stu[i].FlightTracker);
stu[i].TotalScore=stu[i].Average*0.6+stu[i].PeerGrading*0.1+stu[i].CharacterGrades*0.1+stu[i].FlightTracker*0.2;
}
}
Sort(stu,j);
Save(stu,j);
}
voidFind1(datatypestu[N],intj){
charf[N];
intd;
inta;
intk=0;
printf("1.按學號查找");
printf("2.按姓名查找");
printf("3.按聯系方式查找");
scanf("%d",&d);
switch(d){
case1:
{
printf("請輸入學號:");
scanf("%d",&a);
find(stu,j,a);
break;
}
case2:{
printf("請輸入姓名:");
scanf("%s",f);
for(inti=0;i<j;i++){
if(f==stu[i].Name){
a=stu[i].Id;
find(stu,j,a);
k++;
}
}
if(k=0){
printf("沒有找到此學生");
}
break;
}
case3:
printf("請輸入聯系方式:");
scanf("%s",f);
for(inti=0;i<j;i++){
if(f==stu[i].Callid){
a=stu[i].Id;
find(stu,j,a);
k++;
}
}
if(k=0){
printf("沒有找到此同學");
}
}
}
intmain(){
intcount;
intc;
datatypestu[N];
while(1){
Menu();
scanf("%d",&c);
switch(c){
case1:
count=SaveStudent(stu);
system("cls");
break;
case2:
count=Input(stu,count);
system("cls");
break;
case3:
count=Delete(stu,count);
system("cls");
break;
case4:
Printf(stu,count);
system("cls");
break;
case5:
Sorce(stu,count);
system("cls");
break;
case6:
TotalSorce(stu,count);
system("cls");
break;
case7:
ESorce(stu,count);
system("cls");
break;
case8:
Find1(stu,count);
system("cls");
break;
case9:
return0;
}
}
}