?? 學生成績管理系統.cpp
字號:
#include "stdio.h"
#include"stdlib.h"
#include"string.h"
#include"process.h"
#define N 3
#include"top.c"
void main_1();
struct students{
int n;
char name[20];
float cj[3];
}st[3];
int i=0; //計數器;
void init(struct students st[],int num){
int j,c,xz,m;
FILE *fp1,*fp2;//fp1中存i值;fp2為讀入文件;
printf("按1從文件導入數據,按2重新輸入數據;");
scanf("%d",&xz);
if(xz==1){
fp1=fopen("d:\\c\\i.txt","r");
if(fp1==NULL){
printf("文件中尚無記錄!");
exit(1);
}
fscanf(fp1,"%d",&i);//讀出i的值;
fp2=fopen("d:\\c\\SSMS.txt","r");
if(fp2==NULL){
printf("文件不存在,請檢查(d:\c\學生成績管理.txt)是否存在。");
exit(1);
}
printf("\t\n編號\t姓名\t語文\t數學\t英語\n");
for(m=0;m<i;m++){
fscanf(fp2,"%d%s%d%d%d",&st[m].n,st[m].name,&st[m].cj[0],&st[m].cj[1],&st[m].cj[2]);
printf("%3d\t%3s\t%3d\t%3d\t%3d\n",st[m].n,st[m].name,st[m].cj[0],st[m].cj[1],st[m].cj[2]);
}
printf("文件導入成功!按ENTER返回主界面。");getchar();getchar();
system("cls");
main_1();
}
else{
do{
st[i].n=i;
printf("請輸入編號%d的姓名:",st[i].n+1);
fflush(stdin);
gets(st[i].name);
for(j=0;j<num;j++){
printf("第%d門成績:",j+1);
scanf("%f",&st[i].cj[j]);
if(st[i].cj[j]<0||st[i].cj[j]>100) {
fflush(stdin);printf("輸入失敗,成績范圍在0-100之間!\n");j--;
}
}
i++;
printf("還要輸入嗎?(y/n)");fflush(stdin);
c=getchar();
}while(c=='y'||c=='Y');
system("cls");
main_1();
}
}
void paixu(){
int m,j,n,c;
struct students p;
do{
if(i==0) {
printf("尚未找到成績,請按回車回主頁面添加;"); fflush(stdin);
getchar();system("cls");main_1();
}
else{
printf("請選擇按哪一門成績進行排序(1-3):");
scanf("%d",&n);
printf("您選擇了按第%d門成績排序:",n);
for(m=0;m<i-1;m++){
for(j=m+1;j<i;j++)
if(st[m].cj[n-1]<st[j].cj[n-1]){
p=st[m];
st[m]=st[j];
st[j]=p;
}
}
printf("\t\n編號\t姓名\t語文\t數學\t英語\n");
for(m=0;m<i;m++)
printf("\t\n%d\t%s\t%d\t%d\t%d\n",st[m].n,st[m].name,st[m].cj[0],st[m].cj[1],st[m].cj[2]);
}
printf("還要輸入嗎?(y/n)");fflush(stdin);
c=getchar();
}while(c=='y'||c=='Y');
fflush(stdin);
getchar();
system("cls");
main_1();
}
void chaxun(){
int n,xh,m,c,flag=0;
char name[20];
do{
if(i==0) {
printf("尚未找到成績,請按回車回主頁面添加;"); fflush(stdin);
getchar();system("cls");main_1();
}
else{
printf("請選擇按什么方式進行查詢\n按1以學號查詢,按2以姓名查詢:");
scanf("%d",&n);
if(n==1){
printf("您選擇了按學號查詢:\n");
printf("請輸入您要查詢的學號:");
scanf("%d",&xh);
for(m=0;m<i;m++)
if(xh==st[m].n)
flag=1;
if(flag==1){
printf("\t\n編號\t姓名\t語文\t數學\t英語\n");
printf("%d\t%s\t%d\t%d\t%d\n",st[xh].n,st[xh].name,st[xh].cj[0],st[xh].cj[1],st[xh].cj[2]);
}else
printf("暫無該學員數據。\n");
}
else{
printf("您選擇了按姓名查詢:\n");
printf("請輸入您要查詢的姓名:");
scanf("%s",name);
for(m=0,flag=0;m<i;m++){
if(strstr(st[m].name,name)!=NULL)
printf("%d\t%s\t%d\t%d\t%d\n",st[m].n,st[m].name,st[m].cj[0],st[m].cj[1],st[m].cj[2]);
else
flag++;
}if(flag==m)
printf("暫無該學員數據。\n");
}
}
printf("還想查詢嗎?(y/n)");
fflush(stdin);
c=getchar();
}while(c=='y'||c=='Y');
system("cls");
main_1();
}
void xiugai(){
int m,k,j;
char c;
do{
if(i==0) {
printf("尚未找到成績,請按回車回主頁面添加;"); fflush(stdin);
getchar();system("cls");main_1();
}
else{
printf("\n編號\t姓名\t語文\t數學\t英語\n");
for(k=0;k<i;k++)
printf("%d\t%s\t%d\t%d\t%d\n",st[k].n,st[k].name,st[k].cj[0],st[k].cj[1],st[k].cj[2]);
printf("請輸入您想要修改的信息編號:");
loop: scanf("%d",&m);
if(m>i){
printf("沒有該數據\n請重新輸入:");
goto loop;
}
else
j=m-1;
printf("姓名:");
scanf("%s",st[j].name);
printf("語文:");
scanf("%d",&st[j].cj[0]);
printf("數學:");
scanf("%d",&st[j].cj[1]);
printf("英語:");
scanf("%d",&st[j].cj[2]);
printf("數據已保存\n");
}
printf("還想修改嗎?(y/n)");
fflush(stdin);
c=getchar();
}while(c=='y'||c=='Y');
system("cls");
main_1();
}
void shuchu(){
FILE *fp1,*fp2;
int m;
fp1=fopen("d:\\c\\SSMS.txt","w");
fp2=fopen("d:\\c\\i.txt","w");
fprintf(fp2,"%d",i);
for(m=0;m<i;m++){
fprintf(fp1,"%d\t",st[m].n);
fprintf(fp1,"%s\t",st[m].name);
fprintf(fp1,"%d\t",st[m].cj[0]);
fprintf(fp1,"%d\t",st[m].cj[1]);
fprintf(fp1,"%d\n",st[m].cj[2]);
}
fclose(fp1);
fclose(fp2);
printf("成功儲存,按ENTER回主界面!");
fflush(stdin);
getchar();
system("cls");
main_1();
}
void tongji(){
int sum[N],avg[N],m;
char c,name[20];
FILE *fp;
printf("\n編號\t姓名\t語文\t數學\t英語\t平均分\t總分\n");
for(m=0;m<i;m++){
sum[m]=st[m].cj[0]+st[m].cj[1]+st[m].cj[2];
avg[m]=sum[m]/3;
printf("%d\t%3s\t%3d\t%3d\t%3d\t %3d\t %3d\n",st[m].n,st[m].name,st[m].cj[0],st[m].cj[1],st[m].cj[2],avg[m],sum[m]);
}printf("是否輸出列表信息(y/n)");
fflush(stdin);c=getchar();
if(c=='y'||c=='Y'){
printf("請填寫報表名字:");
scanf("%s",name);
fp=fopen(name,"w");
fprintf(fp,"\t學生成績報表 SSMS3.0\n");
fprintf(fp,"\n編號\t姓名\t語文\t數學\t英語\t平均分\t總分\n");
for(m=0;m<i;m++){
fprintf(fp,"%d\t",st[m].n);
fprintf(fp,"%s\t",st[m].name);
fprintf(fp,"%d\t",st[m].cj[0]);
fprintf(fp,"%d\t",st[m].cj[1]);
fprintf(fp,"%d\t",st[m].cj[2]);
fprintf(fp,"%d\t",avg[m]);
fprintf(fp,"%d\n",sum[m]);
}fclose(fp);
printf("文件成功保存!");
fflush(stdin);getchar();
system("cls");
main_1();
}else{
system("cls");
main_1();
}
}
void main_1(){
int n,count=0;
top();//頭文件;
printf("請選擇:");
for(;;){
scanf("%d",&n);
if(n==1)
{system("cls");tian_jia();init(st,3);}
else if(n==2)
{system("cls");cha_xun();chaxun();}
else if(n==3)
{system("cls");pai_xu();paixu();}
else if(n==4)
{system("cls");xiu_gai();xiugai();}
else if(n==5)
{system("cls");shu_chu();shuchu();}
else if(n==6)
{system("cls");tong_ji();tongji();}
else if(n==7)
{system("cls");about();printf("按ENTER返回主界面!");fflush(stdin);getchar();system("cls");main_1();}
else if(n==8){
exit(0);
break;
}
else{
fflush(stdin);
printf("您選擇出錯!\n請重新選擇:");
}
}
}
void main(){
main_1();
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -