⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cpp1.cpp

📁 VC+++6.0编写的成绩管理系统
💻 CPP
字号:
#include<iostream.h> /*引用库函数*/ 
#include<stdlib.h> 
#include<ctype.h> 
#include<stdio.h> 
#include<string.h> 
typedef struct 
{ 
char class_0[20]; /*班级*/ 
int number; /*学号*/ 
char name[20]; /*姓名*/ 
float electrics; /*电子技术成绩*/ 
float c_program; /*C++语言成绩*/ 
float multimedia; /*多媒体技术成绩*/ 
float english; /*大学英语成绩*/ 
float math; /*高等数学成绩*/ 
float sport; /*体育成绩*/ 
float polity; /*马克思主义政治经济学*/ 
float summary; /*总分*/ 
float average; /*平均分*/ 
}Student; 
Student stu[100]; /*结构体数组变量*/ 

int menu() /*菜单函数*/ 
{ 
char c; 
do 
{ 
system("cls"); /*运行前清屏*/ 
cout<<"********************************学生成绩管理系统********************************"<<endl;/*菜单选择*/ 
cout<<"【1】输入数据"<<endl; 
cout<<"【2】显示所有数据"<<endl; 
cout<<"【3】按平均分降序排列"<<endl; 
cout<<"【4】查找并显示一组数据"<<endl; 
cout<<"【5】插入一组数据"<<endl; 
cout<<"【6】修改一组数据"<<endl; 
cout<<"【7】删除一组数据"<<endl; 
cout<<"【8】从文件中读入数据"<<endl; 
cout<<"【9】将所有记录写入文件"<<endl; 
cout<<"【0】退出本系统\n"<<endl; 
cout<<"**********************作者:07 网络一班 3207001349************************"<<endl; 
cout<<"请你选择操作(0-9):"<<endl; 
c=getchar(); /*读入选择*/ 
} 
while(c<'0'||c>'9'); 
return(c-'0'); /*返回选择*/ 
} 

int Input(Student stud[],int n) /*输入若干条记录*/ 
{ 
int i=0; 
char sign,x[10]; /*x[10]为清除多余的数据所用*/ 
while(sign!='n'&&sign!='N') /*判断*/ 
{ 
cout<<"请输入学生的班别:"; /*交互输入*/ 
cin>>stud[n+i].class_0; 
cout<<"请输入学生的学号:"; 
cin>>stud[n+i].number; 
cout<<"请输入学生的姓名:"; 
cin>>stud[n+i].name; 
cout<<"请输入该学生『电子技术』的成绩:"; 
cin>>stud[n+i].electrics; 
cout<<"请输入该学生『C++程序设计』的成绩:"; 
cin>>stud[n+i].c_program; 
cout<<"请输入该学生『多媒体技术』的成绩:"; 
cin>>stud[n+i].multimedia; 
cout<<"请输入该学生『大学英语』的成绩:"; 
cin>>stud[n+i].english; 
cout<<"请输入该学生『高等数学』的成绩:"; 
cin>>stud[n+i].math; 
cout<<"请输入该学生『大学体育』的成绩:"; 
cin>>stud[n+i].sport; 
cout<<"请输入该学生『马克思主义政治经济学』的成绩:"; 
cin>>stud[n+i].polity; 
stud[n+i].summary=stud[n+i].electrics+stud[n+i].c_program+stud[n+i].multimedia+stud[n+i].english+stud[n+i].math+stud[n+i].sport+stud[n+i].polity; 
stud[n+i].average=stud[n+i].summary/7; 
cout<<"该学生的总分为:"<<stud[n+i].summary<<"平均分为:"<<stud[n+i].average<<endl; 
gets(x); /*清除多余的输入*/ 
cout<<"=====>提示:继续写入成绩?(Y/N)"; 
cin>>sign; /*输入判断*/ 
i++; 
} 
return(n+i); 
} 

void Display(Student stud[],int n) /*显示所有记录*/ 
{ 
int i; 
if(!stud)cout<<"没有记录"; 
else{ 
cout<<"--------------------------------------------------------------------------------"<<endl; /*格式头*/ 
cout<<" 班别 学号 姓名 电子 C++ 多媒体 英语 数学 体育 政治 总分 平均分"<<endl; 
cout<<"--------------------------------------------------------------------------------"<<endl; 
for(i=1;i<n+1;i++) /*循环输入*/ 
{ 
stud[i-1].summary=stud[i-1].electrics+stud[i-1].c_program+stud[i-1].multimedia+stud[i-1].english+ 
stud[i-1].math+stud[i-1].sport+stud[i-1].polity; 
stud[i-1].average=stud[i-1].summary/7; 
cout<<stud[i-1].class_0<<" "<<stud[i-1].number<<" "<<stud[i-1].name<<" "<<stud[i-1].electrics<<" "<<stud[i-1].c_program<<" "<<stud[i-1].multimedia<<" "<<stud[i-1].english<<" "<< 
stud[i-1].math<<" "<<stud[i-1].sport<<" "<<stud[i-1].polity<<" "<<stud[i-1].summary<<" "<<stud[i-1].average<<endl; 
} 
cout<<"\t\t\t"<<endl; } 
system("pause"); 
} 

void Sort(Student stud[],int n) /*按平均分排序*/ 
{ 
int i,j,k; 
float s; 
char t[20]; 
for(i=0;i<n-1;i++) /*冒泡法排序*/ 
for(j=0;j<n-1-i;j++) 
if(stud[j].average<stud[j+1].average) 
{ 
strcpy(t,stud[j+1].class_0); 
strcpy(stud[j+1].class_0,stud[j].class_0); 
strcpy(stud[j].class_0,t); 

k=stud[j+1].number; 
stud[j+1].number=stud[j].number; 
stud[j].number=k; 

strcpy(t,stud[j+1].name); 
strcpy(stud[j+1].name,stud[j].name); 
strcpy(stud[j].name,t); 

s=stud[j+1].electrics; 
stud[j+1].electrics=stud[j].electrics; 
stud[j].electrics=s; 

s=stud[j+1].c_program; 
stud[j+1].c_program=stud[j].c_program; 
stud[j].c_program=s; 

s=stud[j+1].multimedia; 
stud[j+1].multimedia=stud[j].multimedia; 
stud[j].multimedia=s; 

s=stud[j+1].english; 
stud[j+1].english=stud[j].english; 
stud[j].english=s; 

s=stud[j+1].math; 
stud[j+1].math=stud[j].math; 
stud[j].math=s; 

s=stud[j+1].sport; 
stud[j+1].sport=stud[j].sport; 
stud[j].sport=s; 

s=stud[j+1].polity; 
stud[j+1].polity=stud[j].polity; 
stud[j].polity=s; 

s=stud[j+1].summary; 
stud[j+1].summary=stud[j].summary; 
stud[j].summary=s; 

s=stud[j+1].average; 
stud[j+1].average=stud[j].average; 
stud[j].average=s; 
} 
cout<<"--------------------------------------------------------------------------------"<<endl; /*格式头*/ 
cout<<" 班别 学号 姓名 电子 C++ 多媒体 英语 数学 体育 政治 总分 平均分"<<endl; 
cout<<"--------------------------------------------------------------------------------"<<endl; 
for(i=1;i<n+1;i++) /*循环输入*/ 
{ 
stud[i-1].summary=stud[i-1].electrics+stud[i-1].c_program+stud[i-1].multimedia+stud[i-1].english+ 
stud[i-1].math+stud[i-1].sport+stud[i-1].polity; 
stud[i-1].average=stud[i-1].summary/7; 
cout<<stud[i-1].class_0<<stud[i-1].number<<stud[i-1].name<<stud[i-1].electrics<<stud[i-1].c_program<<stud[i-1].multimedia<<stud[i-1].english<< 
stud[i-1].math<<stud[i-1].sport<<stud[i-1].polity<<stud[i-1].summary<<stud[i-1].average<<endl; 
} 
} 

int Insert(Student stud[],int n) /*插入一条记录*/ 
{ 
char x[10]; /*清除多余输入所用*/ 
cout<<"请输入学生的班别:"<<endl; /*交互输入*/ 
cin>>stud[n].class_0; 
cout<<"请输入学生的学号:"; 
cin>>stud[n].number; 
cout<<"请输入学生的姓名:"; 
cin>>stud[n].name; 
cout<<"请输入该学生『电子技术』的成绩:"; 
cin>>stud[n].electrics; 
cout<<"请输入该学生『C++程序设计』的成绩:"; 
cin>>stud[n].c_program; 
cout<<"请输入该学生『多媒体技术』的成绩:"; 
cin>>stud[n].multimedia; 
cout<<"请输入该学生『大学英语』的成绩:"; 
cin>>stud[n].english; 
cout<<"请输入该学生『高等数学』的成绩:"; 
cin>>stud[n].math; 
cout<<"请输入该学生『大学体育』的成绩:"; 
cin>>stud[n].sport; 
cout<<"请输入该学生『马克思主义政治经济学』的成绩:"; 
cin>>stud[n].polity; 
stud[n].summary=stud[n].electrics+stud[n].c_program+stud[n].multimedia+stud[n].english+ 
stud[n].math+stud[n].sport+stud[n].polity; 
stud[n].average=stud[n].summary/7; 
gets(x); 
n++; 
Sort(stu,n); /*调用排序函数*/ 
cout<<"=====>提示:插入成功!"<<endl; /*返回成功信息*/ 
return(n); 
} 

int Delete(Student stud[],int n) /*按学号查找,删除一条记录*/ 
{ 
int s; 
int i=0,j; 
cout<<"输入需要删除学生的学号:"<<endl; /*交互式问寻*/ 
cin>>s; 
while((stud[i].number-s)!=0&&i<n) i++; /*查找判断*/ 
if(i==n) 
{ 
cout<<"=====>提示:对不起,无法找到改学号……"<<endl; /*返回失败信息*/ 
return(n); 
} 
for(j=i;j<n-1;j++) /*删除操作*/ 
{ 
strcpy(stud[j].class_0,stud[j+1].class_0); 
stud[j].number=stud[j+1].number; 
strcpy(stud[j].name,stud[j+1].name); 
stud[j].electrics=stud[j+1].electrics; 
stud[j].c_program=stud[j+1].c_program; 
stud[j].multimedia=stud[j+1].multimedia; 
stud[j].english=stud[j+1].english; 
stud[j].math=stud[j+1].math; 
stud[j].sport=stud[j+1].sport; 
stud[j].polity=stud[j+1].polity; 
} 
cout<<"=====>提示:已成功删除!"<<endl; /*返回成功信息*/ 
return(n-1); 
} 

void Search(Student stud[],int n) /*查找并显示一个记录*/ 
{ 
int s; 
int i=0; 
cout<<"输入需要查找学生的学号:"<<endl; 
cin>>s; 
while((stud[i].number-s)!=0&&i<n) i++; /*查找判断*/ 
if(i==n) 
{ 
cout<<"=====>提示:对不起,无法找到该学生的信息!"<<endl; /*输入失败信息*/ 
return; 

} 
cout<<"---------------------------"<<endl; 
cout<<"班别:"<<stud[i].class_0<<endl; /*输出该学生信息*/ 
cout<<"学号:"<<stud[i].number<<endl; 
cout<<"姓名:"<<stud[i].name<<endl; 
cout<<"电子技术:"<<stud[i].electrics<<endl; 
cout<<"C++程序设计:"<<stud[i].c_program<<endl; 
cout<<"多媒体技术:"<<stud[i].multimedia<<endl; 
cout<<"大学英语:"<<stud[i].english<<endl; 
cout<<"高等数学:"<<stud[i].math<<endl; 
cout<<"大学体育:"<<stud[i].sport<<endl; 
cout<<"马克思主义政治经济学:"<<stud[i].polity<<endl; 
cout<<"总分:"<<stud[i].summary<<endl; 
cout<<"平均分:"<<stud[i].average<<endl; 
} 

void Modify(Student stud[],int n) 
{ 
int s; 
int i=0; 
cout<<"输入需要修改成绩学生的学号:"<<endl; 
cin>>s; 
while((stud[i].number-s)!=0&&i<n) i++; /*查找判断*/ 
if(i==n) 
{ 
cout<<"=====>提示:对不起,无该学生的成绩……"<<endl; /*输入失败信息*/ 
return; 
} 
cout<<"-----------------------------------该学生的信息---------------------------------"<<endl; /*格式头*/ 
cout<<" 班别 学号 姓名 电子 C++ 多媒体 英语 数学 体育 政治 总分 平均分"<<endl; 
cout<<"--------------------------------------------------------------------------------"<<endl; 
stud[i].summary=stud[i].electrics+stud[i].c_program+stud[i].multimedia+stud[i].english+ 
stud[i].math+stud[i].sport+stud[i].polity; 
stud[i].average=stud[i].summary/7; 
cout<<stud[i-1].class_0<<stud[i-1].number<<stud[i-1].name<<stud[i-1].electrics<<stud[i-1].c_program<<stud[i-1].multimedia<<stud[i-1].english<< 
stud[i-1].math<<stud[i-1].sport<<stud[i-1].polity<<stud[i-1].summary<<stud[i-1].average<<endl; 
cout<<"请输入学生的班别:"<<endl; /*交互输入*/ 
cin>>stud[n+i].class_0; 
cout<<"请输入学生的学号:"<<endl; 
cin>>stud[n+i].number; 
cout<<"请输入学生的姓名:"<<endl; 
cin>>stud[n+i].name; 
cout<<"请输入该学生『电子技术』的成绩:"<<endl; 
cin>>stud[n+i].electrics; 
cout<<"请输入该学生『C++程序设计』的成绩:"<<endl; 
cin>>stud[n+i].c_program; 
cout<<"请输入该学生『多媒体技术』的成绩:"<<endl; 
cin>>stud[n+i].multimedia; 
cout<<"请输入该学生『大学英语』的成绩:"<<endl; 
cin>>stud[n+i].english; 
cout<<"请输入该学生『高等数学』的成绩:"<<endl; 
cin>>stud[n+i].math; 
cout<<"请输入该学生『大学体育』的成绩:"<<endl; 
cin>>stud[n+i].sport; 
cout<<"请输入该学生『马克思主义政治经济学』的成绩:"<<endl; 
cin>>stud[n+i].polity; 
stud[i].summary=stud[i].electrics+stud[i].c_program+stud[i].multimedia+stud[i].english+stud[i].math+stud[i].sport+stud[i].polity; 
stud[i].average=stud[i].summary/7; 
cout<<"该学生的总分为:"<<stud[i].summary<<"平均分为:"<<stud[i].average; 
} 



int Read(Student stud[],int n) /*从文件中读入数据*/ 
{ 
int i=0,num; 
FILE *fp; /*定义文件指针*/ 
char filename[20]; /*定义文件名*/ 
cout<<"输入文件名:"<<endl; 
cin>>filename; /*输入文件名*/ 
if((fp=fopen(filename,"rb"))==NULL) /*打开文件*/ 
{ 
cout<<"=====>提示:无法打开这个文件!"<<endl; /*打开失败信息*/ 
cout<<"\t\t\t"; 
system("pause"); 
return(n); 
} 
fscanf(fp,"%d",&num); /*读入总记录量*/ 
while(i<num) /*循环读入数据*/ 
{ 
fscanf(fp,"%s%d%s%f%f%f%f%f%f%f%f%f",stud[n+i].class_0,&stud[n+i].number,stud[n+i].name,&stud[n+i].electrics,&stud[n+i].c_program,&stud[n+i].multimedia,&stud[n+i].english,&stud[n+i].math,&stud[n+i].sport,&stud[n+i].polity,&stud[n+i].summary,&stud[n+i].average); 
i++; 
} 
n+=num; 
fclose(fp); /*关闭文件*/ 
cout<<"=====>提示:读入数据成功,可选择【显示所有成绩】查看"<<endl; 
cout<<"\t\t\t"; 
system("pause"); 
return(n); 
} 

void Save(Student stud[],int n) /*将所有记录写入文件*/ 
{ 
int i=0; 
FILE *fp; /*定义文件指针*/ 
char filename[20]; /*定义文件名*/ 
cout<<"输入文件名:"; /*输入文件名*/ 
cin>>filename; 
if((fp=fopen(filename,"w"))==NULL) /*打开文件*/ 
{ 
cout<<"=====>提示:无法打开这个文件!"<<endl; 
system("pause"); 
return; 
} 
fprintf(fp,"%d\n",n); /*循环写入数据*/ 
while(i<n) 
{ 
fprintf(fp,"%-8s%-8d%-6s%-6.1f%-7.1f%-7.1f%-6.1f%-6.1f%-6.1f%-7.1f%-8.1f%-6.2\n",stud[i].class_0,stud[i].number,stud[i].name,stud[i].electrics,stud[i].c_program,stud[i].multimedia,stud[i].english, 
stud[i].math,stud[i].sport,stud[i].polity,stud[i].summary,stud[i].average); 
i++; 
} 
fclose(fp); /*关闭文件*/ 
cout<<"=====>提示:已成功写入数据!"<<endl; /*返回成功信息*/ 
} 

void main() /*主函数*/ 
{ 
int n=0; 
for(;;) 
{ 
switch(menu()) /*选择判断*/ 
{ 
case 1: 
cout<<endl<<"====>> 输入成绩 <<===="<<endl; /*输入若干条记录*/ 
n=Input(stu,n); 
break; 
case 2: 
cout<<endl<<"====>> 显示所有记录 <<===="<<endl; /*显示所有记录*/ 
Display(stu,n); 
break; 
case 3: 
cout<<endl<<"====>> 按平均分降序排列 <<===="<<endl; 
Sort(stu,n); /*按学号排序*/ 
cout<<"排序成功!"<<endl; 
cout<<"\t\t\t"; 
system("pause"); 
break; 
case 4: 
cout<<endl<<"====>> 查找并显示一组成绩 <<===="<<endl; 
Search(stu,n); /*插入一条记录*/ 
cout<<"\t\t\t"; 
system("pause"); 
break; 
case 5: 
cout<<endl<<"====>> 插入一组成绩 <<===="<<endl; 
n=Insert(stu,n); /*按姓名查找,删除一条记录*/ 
cout<<"\t\t\t"; 
system("pause"); 
break; 
case 6: 
cout<<endl<<"====>> 修改一组成绩 <<===="<<endl; 
Modify(stu,n); /*查找并显示一个记录*/ 
cout<<"\t\t\t"; 
system("pause"); 
break; 
case 7: 
cout<<endl<<"====>> 删除一组成绩 <<===="<<endl; 
n=Delete(stu,n); /*查找并显示一个记录*/ 
cout<<"\t\t\t"; 
system("pause"); 
break; 
case 8: 
cout<<endl<<"====>> 从文件中读入数据 <<===="<<endl; 
n=Read(stu,n); /*循环读出数据*/ 
break; 
case 9: 
cout<<endl<<"====>> 将所有记录写入文件 <<===="<<endl; 
Save(stu,n); /*循环写入数据*/ 
cout<<"\t\t\t"; 
system("pause"); 
break; 
case 0: 
cout<<endl<<"====>> 谢谢您的使用! <<===="<<endl; /*结束程序*/ 
cout<<"\t\t\t"; 
system("pause"); 
exit(0); 
} 
} 
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -