當前位置:首頁 » 考試成績 » 學生成績程序流程圖

學生成績程序流程圖

發布時間: 2020-12-11 05:33:27

㈠ 急求學生成績統計程序的流程圖,代碼如下

save和display的沒有看。

不知道是不是這樣。

㈡ 跪求面向對象程序設計c++大作業:完成一個學生成績管理系統。內容包括1問題描述2類體系設計和程序流程圖3

這是我電腦里的一個程序
可能跟你的不是完全符合,但是畢竟很相似了,因為解決問題的方法是一致的
你自己修改一下,如果還有任何問題,m我

#include<iostream>
#include<string> //控制字元串的頭文件

using namespace std;
class tong //建立同學錄的一個類
{
public:
tong(); //構造函數
tong(char n[20],char se,int ag,int te,int qq);
~tong();
void Set();//添加
void Delete();//刪除
void Alter();//修改
void List();//顯示
void RearchN();
void RearchT();
void RearchQ();
private:
char name[20];
int age,telphone,QQ;
char sex;
};
tong::tong()//構造函數
{
strcpy(name, "");
sex='M';
age=0;
telphone=0;
QQ=0;
}
tong::tong(char n[20],char se,int ag,int te,int qq)
{
strcpy(name, n);
sex=se;
age=ag;
telphone=te;
QQ=qq;
}
tong::~tong(){}
tong*s[50];int i=0;int j=0;
char name[20];int age,telphone,QQ;char sex;
void tong::Set()
{
cout<<"請輸入姓名:"<<endl;
cin>>name;
cout<<"請輸入性別:"<<endl;
cin>>sex;
cout<<"請輸入年齡:"<<endl;
cin>>age;
cout<<"電話號碼:"<<endl;
cin>>telphone;
cout<<"QQ號碼:"<<endl;
cin>>QQ;
j++;
s[i]=new tong(name,sex,age,telphone,QQ);
i++;
}
void tong:: Delete() //(2)刪除人員(Delete)
{
cout<<"請輸入您要刪除的學生姓名:"<<endl;
cin>>name;
for(int h=0;h<i;h++)
{
if(strcmp(name,s[h]->name)==0)
{
i--;
s[h]=s[h+1];
h++;
}
else cout<<"您要求刪除的對象本來就不存在!請檢查輸入的正確性!";
}
}
void tong::Alter() //(3)修改數據(Alter)
{
cout<<"請輸入您要修改的學生的姓名:"<<endl;
cin>>name;
for(int h=0;h<i;h++)
{
if(strcmp(name,s[h]->name)==0)
{
char se;int ag,qq,te;
cout<<"請輸入性別:"<<endl;
cin>>se;
cout<<"請輸入年齡:"<<endl;
cin>>ag;
cout<<"電話號碼:"<<endl;
cin>>te;
cout<<"QQ號碼:"<<endl;
cin>>qq;
s[h]->sex=se;
s[h]->age=ag;
s[h]->telphone=te;
s[h]->QQ=qq;
cout<<"數據修改成功!";
break;
}
if (i == j)
{
cout<<"對不起!您要查詢的學生不存在!"<<endl;
}
//else cout<<"您要修改的學生本來就不存在!請檢查重新輸入!"<<endl;
}
}
void tong::List() //(4)顯示記錄(List)
{
cout<<"本系統所有通訊錄的數據如下:"<<endl;
if(i==0)
cout<<"管理系統中沒有錄入數據或者數據已經被刪除!"<<endl;
for(int k=0;k<i;k++)
{
cout<<"姓名:"<<s[k]->name<<" "<<
"性別:"<<s[k]->sex<<" "<<"年齡:"<<s[k]->age
<<" "<<"電話號碼:"<<s[k]->telphone<<" "<<"QQ號碼:"
<<s[k]->QQ<<endl;
}
}

void tong::RearchN()
{
if(i==0)
cout<<"管理系統中沒有錄入數據或者數據已經被刪除!"<<endl;
cout<<"請輸入你要查詢的學生姓名"<<endl;
cin>>name;
for(int j=0;j<i;j++)
{
if(strcmp(name,s[j]->name)==0)
{
cout<<"您要查詢的學生是:"<<s[j]->name<<endl;
cout<<"性別: "<<s[j]->sex<<" "<<"年齡: "<<s[j]->age<<" "<<"電話號碼:"<<s[j]->telphone
<<" "<<"QQ號碼:"<<s[j]->QQ<<endl;
break;
}

// else
// cout<<"對不起!您要查詢的學生不存在!"<<endl;
if (i == j)
{
cout<<"對不起!您要查詢的學生不存在!"<<endl;
}
}
}
void tong::RearchT()
{
int n;
if(i==0)
cout<<"管理系統中沒有輸入數據!"<<endl;
cout<<"請輸入你要查詢的學生的電話"<<endl;
cin>>n;
for(int j=0;j<i;j++)
{
if(s[j]->telphone==n)
{
cout<<"您要查詢的學生是:"<<s[j]->name<<endl;
cout<<" 性別: "<<s[j]->sex<<" "<<"年齡: "<<s[j]->age<<" "<<"電話號碼:"<<s[j]->telphone
<<" "<<"QQ號碼:"<<s[j]->QQ<<endl;
break;
}

//else cout<<"對不起!您要查詢的學生不存在!"<<endl;
}
if (i == j)
{
cout<<"對不起!您要查詢的學生不存在!"<<endl;
}
}
void tong::RearchQ()
{
int n;
if(i==0)
cout<<"管理系統中沒有輸入數據!"<<endl;
cout<<"請輸入你要查詢的學生的QQ"<<endl;
cin>>n;
for(int j=0;j<i;j++)
{
if(s[j]->QQ==n)
{
cout<<"您要查詢的學生是:"<<s[j]->name<<endl;
cout<<" 性別: "<<s[j]->sex<<" "<<"年齡: "<<s[j]->age<<" "<<"電話號碼:"<<s[j]->telphone<<" "<<"QQ號碼:"<<s[j]->QQ<<endl;
break;
}
// else
// cout<<"對不起!您要查詢的學生不存在!"<<endl;
}
if (i == j)
{
cout<<"對不起!您要查詢的學生不存在!"<<endl;
}
}
void caozuo(int p)
{
tong t;
switch(p)
{
case 0:t.Set();break;
case 1:t.Set();break;
case 2:t.Delete();break;
case 3:t.Alter();break;
case 4:t.List();break;
case 5:t.RearchN();break;
case 6:t.RearchT();break;
case 7:t.RearchQ();break;
case 8:exit(0);break;
}
}
int main()
{
char w;
do
{
cout<<"請輸入操作代碼(0 通訊錄錄入/1 增加人員/2 刪除人員/3 修改數據/4 顯示記錄/ 5 按姓名查詢/6 按電話查詢/7 按QQ查詢/8 退出)"<<endl;
int a;
cin>>a;
caozuo(a);
cout<<"您想繼續進行其他操作嗎?(y/n)"<<endl;
cin>>w;
}while(w=='y');
return 0;
} //利用while語句又回到了前面的循環

㈢ C++編程學生成績管理程序最重要的是流程圖

我大一的課程設計是C語言的 學生學籍管理系統 顯示格式不太好 #include<stdio.h>
#include<stdlib.h>
#include<string.h>
int i,j,k,h,N;
char id,password;
FILE *fp;
struct student
{
char name[6];
int number;
char institute[10];
int birthday;
char classes[10];
int tel;
char sex[5];
char address[10];
float score0;
float score1;
float score2;
}student[30],temp,temp1;
void readin();//初始化
void pass();//身份驗證
void newpass();
void delwork();//刪除
void putin();//添加
void rework();//修改
void compositor();//排序
void compositor0();
void compositor1();
void compositor2();
void average();//平均值
//void star();//分數統計
void sortbycmark();
void sortbygmark();
void sortbyymark();
void read();//列印數據
void search();//數據查詢
void search1();//按學號查詢
void search2();//按姓名查詢
void main()
{
pass();
int a;
do
{
printf(" **************************************************************\n");
printf(" * 學生學籍管理系統 *\n");
printf(" * *\n");
printf(" * 1-----------數據初始化 2-----------數據修改 *\n");
printf(" * *\n");
printf(" * 3-----------數據刪除 4-----------添加數據 *\n");
printf(" * *\n");
printf(" * 5-----------計算平均值 6-----------列印數據 *\n");
printf(" * *\n");
printf(" * 7-----------數據排序 8-----------數據查詢 *\n");
printf(" * *\n");
printf(" * ☆★☆★☆★☆★☆★ 0-----------保存退出 *\n");
printf(" * *\n");
printf(" * *\n");
printf(" * 按數字鍵選擇相應程序 *\n");
printf(" **************************************************************\n");
printf("Choose a number please:\n");
scanf("%d",&a);
switch(a)
{
case 1:readin();break;
case 2:rework();break;
case 3:delwork();break;
case 4:putin();break;
case 5:average();break;
case 6:read();break;
case 7:compositor();break;
case 8:search();break;
case 0:printf("您可以安全的退出了!\n");exit(0);break;
};
}while(1);
}
void pass()
{
int a,b;
id=123,password=123;
printf("Input your id please:\n");
scanf("%d",&a);
if(a==id)
{
printf("Input your password please:\n");
scanf("%d",&b);
if(b==password)
printf("Welcome!\n");
else
{
printf("You have input a wrong password!\n");
printf("Input your password please:\n");
scanf("%d",&b);
if(b==password)printf("Welcome\n");
else exit(0);
}
}
else
{
printf("You have input a wrong id!\n");
printf("Input your id please:\n");
scanf("%d",&a);
if(a==id)
{
printf("Input your password please:\n");
scanf("%d",&b);
if(b==password)printf("Welcome!\n");
else
{
printf("You have input a wrong password!\n");
printf("Input your password please:\n");
scanf("%d",&b);
if(b==password)printf("Welcome\n");
else exit(0);
}
}
else exit(0);
}
}
void readin()
{
FILE *fp;
char a;
printf("初始化將會使您丟失原有數據,是(y)否(n)繼續?");
scanf("%s",&a);
while(a!='n')
{
if((fp=fopen("c://work.txt","w"))==NULL)
{
printf("Can't open this fill!");
exit(0);
}
printf("請輸入您要初始化的學生總數:\n");
scanf("%d",&h);
fprintf(fp,"%d",h);
fprintf(fp,"\n");
printf("請輸入姓名 學號 學院 班級 生日 性別 電話 住址 c語言成績 高數成績 英語成績:\n");
for(i=0;i<h;i++)
{
fscanf(stdin,"%s%d%s%s%d%s%d%s%f%f%f",student[i].name,&student[i].number,student[i].institute,student[i].classes,&student[i].birthday,student[i].sex,&student[i].tel,student[i].address,&student[i].score0,&student[i].score1,&student[i].score2);
fprintf(fp,"%s%7d%7s%8s%8d%7s%8d%7s%7.1f%7.1f%7.1f\n",student[i].name,student[i].number,student[i].institute,student[i].classes,student[i].birthday,student[i].sex,student[i].tel,student[i].address,student[i].score0,student[i].score1,student[i].score2);
}
fclose(fp);
break;
}
}
void search()
{
int a;
printf("1----按學號查詢 2----按姓名查詢\n");
scanf("%d",&a);
switch(a)
{
case 1:search1();break;
case 2:search2();break;
}
}
void search1()//按學號查詢
{
int a,b=0;
printf("請輸入學生學號:\n");
scanf("%d",&a);
if((fp=fopen("c://work.txt","r"))==NULL)
{
printf("Can't open this fill!");
exit(0);
}
fscanf(fp,"%d",&N);
for(i=0;i<N;i++)
fscanf(fp,"%s%d%s%s%d%s%d%s%f%f%f",student[i].name,&student[i].number,student[i].institute,student[i].classes,&student[i].birthday,student[i].sex,&student[i].tel,student[i].address,&student[i].score0,&student[i].score1,&student[i].score2);
for(i=0;i<N;i++)
if(a==student[i].number)
{
b=1;
fprintf(stdout,"%s%7d%7s%8s%8d%7s%8d%7s%7.1f%7.1f%7.1f\n",student[i].name,student[i].number,student[i].institute,student[i].classes,student[i].birthday,student[i].sex,student[i].tel,student[i].address,student[i].score0,student[i].score1,student[i].score2);
fclose(fp);
break;
}
if(b=0)
{
printf("輸入學號錯誤,請重新輸入。");
printf("請輸入學生學號:");
scanf("%d",&a);
for(i=0;i<N;i++)
if(a==student[i].number)
{
fprintf(stdout,"%s%7d%7s%8s%8d%7s%8d%7s%7.1f%7.1f%7.1f\n",student[i].name,student[i].number,student[i].institute,student[i].classes,student[i].birthday,student[i].sex,student[i].tel,student[i].address,student[i].score0,student[i].score1,student[i].score2);
fclose(fp);
}
}
}
void search2()//按姓名查詢
{
int b=0;
char a[4];
printf("請輸入學生姓名:\n");
scanf("%s",&a);
if((fp=fopen("c://work.txt","r"))==NULL)
{
printf("Can't open this fill!");
exit(0);
}
fscanf(fp,"%d",&N);
for(i=0;i<N;i++)
fscanf(fp,"%s%d%s%s%d%s%d%s%f%f%f",student[i].name,&student[i].number,student[i].institute,student[i].classes,&student[i].birthday,student[i].sex,&student[i].tel,student[i].address,&student[i].score0,&student[i].score1,&student[i].score2);
for(i=0;i<N;i++)
if(strcmp(a,student[i].name)==0)
{
fprintf(stdout,"%s%7d%7s%8s%8d%7s%8d%7s%7.1f%7.1f%7.1f\n",student[i].name,student[i].number,student[i].institute,student[i].classes,student[i].birthday,student[i].sex,student[i].tel,student[i].address,student[i].score0,student[i].score1,student[i].score2);
fclose(fp);
b=1;
break;
}
if(b=0)
{
printf("查無此人,請重新輸入。");
printf("請輸入學生姓名:");
scanf("%d",&a);
for(i=0;i<N;i++)
if(strcmp(a,student[i].name)==0)
{
fprintf(stdout,"%s%7d%7s%8s%8d%7s%8d%7s%7.1f%7.1f%7.1f\n",student[i].name,student[i].number,student[i].institute,student[i].classes,student[i].birthday,student[i].sex,student[i].tel,student[i].address,student[i].score0,student[i].score1,student[i].score2);
fclose(fp);
}
}
}
void read()
{
char ch;
if((fp=fopen("c://work.txt","r"))==NULL)
{
printf("Can't open this file!\n");
exit(0);
}
fscanf(fp,"%d",&N);
printf("學生總數為%d\n",N);
while((ch=fgetc(fp))!=EOF)
{
fputc(ch,stdout);
}
putchar('\n');
fclose(fp);
}
void putin()
{
FILE *fp;
if((fp=fopen("c://work.txt","r+"))==NULL)
{
printf("Can't open this fill!");
exit(0);
}
fscanf(fp,"%d",&N);
printf("請輸入您要添加的學生總數:\n");
scanf("%d",&k);
N+=k;
rewind(fp);
fprintf(fp,"%d",N);
fclose(fp);
if((fp=fopen("c://work.txt","a"))==NULL)
{
printf("Can't open this fill!");
exit(0);
}
printf("請輸入姓名 學號 學院 班級 生日 性別 電話 住址 英語成績 高數成績 c語言成績:\n");
for(i=0;i<k;i++)
{
fscanf(stdin,"%s%d%s%s%d%s%d%s%f%f%f",student[i].name,&student[i].number,student[i].institute,student[i].classes,&student[i].birthday,student[i].sex,&student[i].tel,student[i].address,&student[i].score0,&student[i].score1,&student[i].score2);
fprintf(fp,"%s%7d%7s%8s%8d%7s%8d%7s%7.1f%7.1f%7.1f\n",student[i].name,student[i].number,student[i].institute,student[i].classes,student[i].birthday,student[i].sex,student[i].tel,student[i].address,student[i].score0,student[i].score1,student[i].score2);
}
fclose(fp);
}
void rework()
{
int a;
printf("請輸入您要修改的學生學號:\n");
scanf("%d",&a);
if((fp=fopen("c://work.txt","r"))==NULL)
{
printf("Can't open this fill!");
exit(0);
}
fscanf(fp,"%d",&N);
for(i=0;i<N;i++)
fscanf(fp,"%s%d%s%s%d%s%d%s%f%f%f",student[i].name,&student[i].number,student[i].institute,student[i].classes,&student[i].birthday,student[i].sex,&student[i].tel,student[i].address,&student[i].score0,&student[i].score1,&student[i].score2);
fclose(fp);
for(i=0;i<N;i++)
{
if(a==student[i].number)
{
j=i;
printf("該生的信息為:\n");
fprintf(stdout,"%s%7d%7s%8s%8d%7s%8d%7s%7.1f%7.1f%7.1f\n",student[i].name,student[i].number,student[i].institute,student[i].classes,student[i].birthday,student[i].sex,student[i].tel,student[i].address,student[i].score0,student[i].score1,student[i].score2);
printf("輸入新的姓名 學號 學院 班級 生日 性別 電話 住址 c語言成績 高數成績 英語成績:\n");
fscanf(stdin,"%s%d%s%s%d%s%d%s%f%f%f",temp.name,&temp.number,temp.institute,temp.classes,&temp.birthday,temp.sex,&temp.tel,temp.address,&temp.score0,&temp.score1,&temp.score2);
break;
}
}
student[j]=temp;
fp=fopen("c://work.txt","w");
fprintf(fp,"%d",N);
fprintf(fp,"\n");
for(i=0;i<N;i++)

fprintf(fp,"%s%7d%7s%8s%8d%7s%8d%7s%7.1f%7.1f%7.1f\n",student[i].name,student[i].number,student[i].institute,student[i].classes,student[i].birthday,student[i].sex,student[i].tel,student[i].address,student[i].score0,student[i].score1,student[i].score2);
fclose(fp);
}
void delwork()
{
int a;
char b;
printf("請輸入您要刪除的學生學號:\n");
scanf("%d",&a);
if((fp=fopen("c://work.txt","r"))==NULL)
{
printf("Can't open this fill!");
exit(0);
}
fscanf(fp,"%d",&N);
for(i=0;i<N;i++)
fscanf(fp,"%s%d%s%s%d%s%d%s%f%f%f",student[i].name,&student[i].number,student[i].institute,student[i].classes,&student[i].birthday,student[i].sex,&student[i].tel,student[i].address,&student[i].score0,&student[i].score1,&student[i].score2);
fclose(fp);
for(i=0;i<N;i++)
{
if(a==student[i].number)
{
j=i;
printf("該生的信息為:\n");
fprintf(stdout,"%s%7d%7s%8s%8d%7s%8d%7s%7.1f%7.1f%7.1f\n",student[i].name,student[i].number,student[i].institute,student[i].classes,student[i].birthday,student[i].sex,student[i].tel,student[i].address,student[i].score0,student[i].score1,student[i].score2);
printf("刪除數據將無法找回,是(y)否(n)繼續?");
scanf("%s",&b);
while(b!='n')
{
for(;j<N;j++)
student[j]=student[j+1];
N--;
fp=fopen("c://work.txt","w");
fprintf(fp,"%d",N);
fprintf(fp,"\n");
for(i=0;i<N;i++)
fprintf(fp,"%s%7d%7s%8s%8d%7s%8d%7s%7.1f%7.1f%7.1f\n",student[i].name,student[i].number,student[i].institute,student[i].classes,student[i].birthday,student[i].sex,student[i].tel,student[i].address,student[i].score0,student[i].score1,student[i].score2);
fclose(fp);
printf("刪除成功!\n");
break;
}
}
}
}
void average()
{
float s;
printf("請輸入要計算平均值的學生學號:");
scanf("%d",&j);
if((fp=fopen("c://work.txt","r"))==NULL)
{
printf("Can't open this fill!");
exit(0);
}
fscanf(fp,"%d",&N);
for(i=0;i<N;i++)
fscanf(fp,"%s%d%s%s%d%s%d%s%f%f%f",student[i].name,&student[i].number,student[i].institute,student[i].classes,&student[i].birthday,student[i].sex,&student[i].tel,student[i].address,&student[i].score0,&student[i].score1,&student[i].score2);
for(i=0;i<N;i++)
{
if(j==student[i].number)
s=student[i].score0+student[i].score1+student[i].score2;
s/=3;
printf("%s同學三科的平均成績為%3.1f\n",student[i].name,s);
break;
}
}
void compositor0()
{
for(i=0;i<N;i++)
for(j=i+1;j<N;j++)
{
if(student[i].score0<student[j].score0)
{
temp=student[i];
student[i]=student[j];
student[j]=temp;
}
for(i=0;i<N;i++)
fprintf(stdout,"%s%7d%7s%8s%8d%7s%8d%7s%7.1f%7.1f%7.1f\n",student[i].name,student[i].number,student[i].institute,student[i].classes,student[i].birthday,student[i].sex,student[i].tel,student[i].address,student[i].score0,student[i].score1,student[i].score2);
break;

}

}
void compositor1()
{
for(i=0;i<N;i++)
for(j=i+1;j<N;j++)
{
if(student[i].score1<student[j].score1)
{
temp=student[i];
student[i]=student[j];
student[j]=temp;
}
for(i=0;i<N;i++)
fprintf(stdout,"%s%7d%7s%8s%8d%7s%8d%7s%7.1f%7.1f%7.1f\n",student[i].name,student[i].number,student[i].institute,student[i].classes,student[i].birthday,student[i].sex,student[i].tel,student[i].address,student[i].score0,student[i].score1,student[i].score2);
break;

}

}
void compositor2()
{
for(i=0;i<N;i++)
for(j=i+1;j<N;j++)
{
if(student[i].score2<student[j].score2)
{
temp=student[i];
student[i]=student[j];
student[j]=temp;
}
for(i=0;i<N;i++)
printf("%s%7d%7s%8s%8d%7s%8d%7s%7.1f%7.1f%7.1f\n",student[i].name,student[i].number,student[i].institute,student[i].classes,student[i].birthday,student[i].sex,student[i].tel,student[i].address,student[i].score0,student[i].score1,student[i].score2);
break;

}
}
void compositor()
{
int b;
printf("請輸入---1按C成績排序;---2按數學成績排序---3按英語成績排序");
scanf("%d",&b);
if((fp=fopen("c://work.txt","r+"))==NULL)
{
printf("Can't open this fill!");
exit(0);
}
fscanf(fp,"%d",&N);
for(i=0;i<N;i++)
fscanf(fp,"%s%d%s%s%d%s%d%s%f%f%f",student[i].name,&student[i].number,student[i].institute,student[i].classes,&student[i].birthday,student[i].sex,&student[i].tel,student[i].address,&student[i].score0,&student[i].score1,&student[i].score2);
switch(b)
{
case 1:compositor0();break;
case 2:compositor1();break;
case 3:compositor2();break;
}
fclose(fp);
}

㈣ 急求C語言 學生成績管理系統 程序及流程圖(要簡單的)

要最簡抄單,學生成績襲定義一個int數組,姓名或學號定義一個char數組。定義一個變數n記錄當前數組保存的學生個數,初值0。
添加學生信息就給這兩個數組賦值就好了。同時n++。
要刪除那你循環遍歷數組,通過學生名或學號找到數組對應下標。然後把之後的數組元素往前移動一位。同時n--。
修改信息就更簡單,循環遍歷到對應下標直接重新賦值。
如果想復雜點,可以用結構定義學生相關信息,然後寫鏈表創建刪除和修改。這方面我之前給別人寫過好幾個,你可以去我回答記錄里先。

㈤ 學生成績統計程序的流程圖

圖顯IP:
用visio畫就行了

㈥ c語言學生成績系統流程圖 救命 ~~

用軟體幫你分析的

你的代碼咋沒有頭文件哦

我幫你加的哈

#include<stdio.h>

㈦ 求大神解答,急。添加程序「將學生成績分段輸出」,畫出程序流程圖

你這個軟體已經寫好了呀,還有什麼需要做的呢?

㈧ C語言程序設計(學生成績管理系統)包括流程圖,

我有一個教學收費系統·和你要求的差不多·改一下就可以用了·開源的`我可以傳給你·但你要先加分給分我
`

㈨ c語言幫幫忙 學生成績管理 要用流程圖描述實現演算法,根據演算法進行代碼的編寫

//biaobiao.cpp:.

//

#include"stdafx.h"

#include<stdio.h>

#include<math.h>

#include<string.h>

#defineMaxSize100

typedefstructstud

{

charname[10];

intnum;

floatc;

floatmath;

floatenglish;

floatzf;

intpnum;

intpzf;

}Stud;

voidReadFile(Studstud[],int&n)

{

FILE*fp;

longlength;

inti;

if((fp=fopen("stud.dat","rb"))==NULL){

n=0;

return;

}

fseek(fp,0,2);

length=ftell(fp);

rewind(fp);

n=length/sizeof(Stud);

if(n!=0)

n--;

else

stud[0].pnum=stud[0].pzf=-1;

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

fread(&stud[i],sizeof(Stud),1,fp);

fclose(fp);

}

voidClearup(Studstud[],int&n)

{

FILE*fp;

if((fp=fopen("stud.dat","wb"))==NULL){

printf(">>文件不能打開 ");

return;

}

stud[0].pnum=stud[0].pzf=-1;

n=0;

fclose(fp);

printf("============================================================================ ");

}

voidSaveFile(Studstud[],int&n)

{

inti;

FILE*fp;

if((fp=fopen("stud.dat","wb"))==NULL){

printf(">>文件不能打開 ");

return;

}

if(n>1)

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

fwrite(&stud[i],sizeof(Stud),1,fp);

fclose(fp);

printf("============================================================================ ");

}

voidInput(Studstud[],int&n)

{

inti;

intflag=0;

printf(">>請輸入登記學生姓名學號C語言成績數學成績英語成績: ");

n++;

scanf("%s%d%f%f%f",&stud[n].name,&stud[n].num,&stud[n].c,&stud[n].math,&stud[n].english);

stud[n].zf=stud[n].c+stud[n].math+stud[n].english;

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

{

if(stud[i].num==stud[n].num)

{

flag=flag+1;

}

}

if(flag!=0)

printf("學號輸入重復,請檢查!! ");

stud[n].pnum=stud[n].pzf=0;

printf("============================================================================ ");

}

voidOutputFile(Studstud[],intn)

{

inti;

if(n<1)

{

printf(">>沒任何記錄 ");

return;

}

printf("----------------------------------------------------------------- ");

printf("|姓名|學號|C語言成績|數學成績|英語成績|總分| ");

printf("----------------------------------------------------------------- ");

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

{

printf("|%10s|%3d|%6.2f|%6.2f|%6.2f|%6.2f| ",stud[i].name,stud[i].num,stud[i].c,stud[i].math,stud[i].english,stud[i].zf);

printf("----------------------------------------------------------------- ");

}

}

voidDispnum(Studstud[],intn)

{ inti=2,j;

intk=stud[0].pnum;

if(n<1)

{

printf(">>沒有這種記錄,不能進行排序 ");

return;

}

stud[0].pnum=1;stud[1].pnum=-1;

while(i<=n)

{

j=0;

while(stud[j].pnum!=-1&&stud[stud[j].pnum].num<stud[i].num)

j=stud[j].pnum;

stud[i].pnum=stud[j].pnum;

stud[j].pnum=i;

i++;

}

printf("----------------------------------------------------------------- ");

printf("|姓名|學號|C語言成績|數學成績|英語成績|總分| ");

printf("----------------------------------------------------------------- ");

while(k!=-1)

{

printf("|%10s|%3d|%6.2f|%6.2f|%6.2f|%6.2f| ",stud[k].name,stud[k].num,stud[k].c,stud[k].math,stud[k].english,stud[k].zf);

printf("----------------------------------------------------------------- ");

k=stud[k].pnum;

}

printf("============================================================================ ");

}

voidDispzf(Studstud[],intn)

{ inti=2,j;

intk=stud[0].pzf;

if(n<1)

{

printf(">>沒有記錄,不能進行排序 ");

return;

}

stud[0].pzf=1;stud[1].pzf=-1;

while(i<=n)

{

j=0;

while(stud[j].pzf!=-1&&stud[stud[j].pzf].zf<stud[i].zf)

j=stud[j].pzf;

stud[i].pzf=stud[j].pzf;

stud[j].pzf=i;

i++;

}

printf("----------------------------------------------------------------- ");

printf("|姓名|學號|C語言成績|數學成績|英語成績|總分| ");

printf("----------------------------------------------------------------- ");

while(k!=-1)

{

printf("|%10s|%3d|%6.2f|%6.2f|%6.2f|%6.2f| ",stud[k].name,stud[k].num,stud[k].c,stud[k].math,stud[k].english,stud[k].zf);

printf("----------------------------------------------------------------- ");

k=stud[k].pzf;

}

printf("============================================================================ ");

}

voidxuehao(Studstud[],intn)

{

intnum,i,flag=0;

printf("請輸入你要查詢學生的學號: ");

scanf("%d",&num);

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

{

if(stud[i].num==num)

{

printf("----------------------------------------------------------------- ");

printf("|姓名|學號|C語言成績|數學成績|英語成績|總分| ");

printf("----------------------------------------------------------------- ");

printf("|%10s|%3d|%6.2f|%6.2f|%6.2f|%6.2f| ",stud[i].name,stud[i].num,stud[i].c,stud[i].math,stud[i].english,stud[i].zf);

printf("----------------------------------------------------------------- ");

flag++;

}

}

if(flag==0)printf("查詢操作失敗,沒有你要查詢的學生!!! ");

elseprintf("查詢操作成功!!! ");

printf("============================================================================ ");

}

voidxingming(Studstud[],intn)

{

charname[10];

inti,flag=0;

printf("請輸入你要查詢的學生的姓名: ");

scanf("%s",&name);

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

{

if(strcmp(stud[i].name,name)==0)

{

printf("----------------------------------------------------------------- ");

printf("|姓名|學號|C語言成績|數學成績|英語成績|總分| ");

printf("----------------------------------------------------------------- ");

printf("|%10s|%3d|%6.2f|%6.2f|%6.2f|%6.2f| ",stud[i].name,stud[i].num,stud[i].c,stud[i].math,stud[i].english,stud[i].zf);

printf("----------------------------------------------------------------- ");

flag++;

}

}

if(flag==0)printf("查詢操作失敗,沒有你要查詢的學生!!! ");

elseprintf("查詢操作成功!!! ");

printf("============================================================================ ");

}

voidModify(Studstud[],intn)

{

intNO,j;

intflag=0;

floatc,math,english;

printf("請輸入你要修改學生的學號: ");

scanf("%d",&NO);

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

{

if(stud[j].num==NO)

{

printf("請輸入你要修改的學生的C語言成績數學成績英語成績: ");

scanf("%f%f%f",&c,&math,&english);

stud[j].c=c;stud[j].math=math;stud[j].english=english;

stud[j].zf=stud[j].c+stud[j].math+stud[j].english;

flag++;

}

}

if(flag==0)printf("修改操作失敗,該學號不存在!!! ");

elseprintf("修改操作成功!!! ");

printf("============================================================================ ");

}

voidDelete(Studstud[],int&n)

{

intNO,i,j;

intflag=0;

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

scanf("%d",&NO);

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

{

if(stud[i].num==NO)

{

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

stud[j]=stud[j+1];

flag++;

}

}

if(flag==0)printf("刪除操作失敗,該學號不存在!!! ");

else{n--;

printf("刪除操作成功!!! ");

}

printf("============================================================================ ");

}

voidmain()

{ doublemmy=sin(0.0);

Studstud[MaxSize];

intk,n;

printf("歡迎使用學生成績管理系統!!! ");

printf("============================================================================ ");

ReadFile(stud,n);

do{

printf("1:學生登記2:顯示學生信息 ");

printf("3:清空記錄4:刪除記錄 ");

printf("5:按學號排序輸出6:按總分排序輸出 ");

printf("7:學號查詢8:姓名查詢 ");

printf("9:修改0:儲存退出 ");

printf("請選擇相應的功能:");

scanf("%d",&k);

if(k>9&&k<0)printf("操作不當,請重新輸入: ");

switch(k)

{

case1:Input(stud,n);

break;

case2:OutputFile(stud,n);

break;

case3:Clearup(stud,n);

break;

case4:Delete(stud,n);

break;

case5:Dispnum(stud,n);

break;

case6:Dispzf(stud,n);

break;

case7:xuehao(stud,n);

break;

case8:xingming(stud,n);

break;

case9:Modify(stud,n);

break;

case0:SaveFile(stud,n);

break;

}

}while(k!=0);

}

效果圖:

熱點內容
武漢大學學生會輔導員寄語 發布:2021-03-16 21:44:16 瀏覽:612
七年級學生作文輔導學案 發布:2021-03-16 21:42:09 瀏覽:1
不屑弟高考成績 發布:2021-03-16 21:40:59 瀏覽:754
大學畢業證會有成績單 發布:2021-03-16 21:40:07 瀏覽:756
2017信陽學院輔導員招聘名單 發布:2021-03-16 21:40:02 瀏覽:800
查詢重慶2018中考成績查詢 發布:2021-03-16 21:39:58 瀏覽:21
結業考試成績怎麼查詢 發布:2021-03-16 21:28:40 瀏覽:679
14中醫醫師資格筆試考試成績查分 發布:2021-03-16 21:28:39 瀏覽:655
名著賞析課程標准 發布:2021-03-16 21:27:57 瀏覽:881
北京大學商業領袖高端培訓課程 發布:2021-03-16 21:27:41 瀏覽:919