c学籍管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2、基本管理功能:
(1)添加:增加一个同学的记录到管理系统中。
(2)查询:可以根据姓名或学号查找某人的相关信息,若找到则显示其信息。
(3)修改:在管理系统中修改一个同学的记录。
(4)保存:将所有学生学籍信息保存在一个文件中(数据库文件或普通的文本文件)。
(5)读取:从文件中读取已保存了数据。
(6)删除:从管理系统中删除一条记录。
(7)恢复:能恢复被删除的记录。
(8)统计:(A)计算各门课程全班平均成绩及总成绩;(B)统计其课程全班得:100分、90?99分、80?89分、70?79分、60?69分、59分以下学生人数及全班总人数的百分比;(C)以表格形式打印全部学生的平均成绩(•包括各课总的平均成绩)。
(9)其他:可以根据自己的思路设计其他功能。
PS:我们报告是手写的,所以报告没有弄上来,不过源程序大家可以看一下,下面是运行的界面
剩下的功能大家自己试吧,这里就不截图了。
源程序:(头文件#include ""和主函数int main(int argc, char* argv[])是建工程时自带的,把之前的清掉后直接复制即可)
#include ""
#include<iostream>
#include<fstream>
#include<cmath>
#include<string>
#include<>
#include<>
#include<iomanip>
using namespace std;
int n=0,u=0;
int
number[5][6]={{0},{0},{0},{0},{0}};ame>>j[i].num>>j[i].sex>>j[i].shuxue>>j[i].wuli>>j[i]. huaxue>>j[i].yingyu>>j[i].wangluo;
cout<<'\n';
system("cls");
}}
void add_massage(int m,Student
j[])ame>>j[i].num>>j[i].sex>>j[i].shuxue>>j[i].wuli>>j[i].huaxue>>j[i].yingyu>>j[i].wan gluo;
system("cls");
}
n=n+m;}
void change_data(int m,Student j[])ame>>j[m-1].num>>j[m-1].sex>>j[m-
1].shuxue>>j[m-1].wuli>>j[m-1].huaxue>>j[m-1].yingyu>>j[m-1].wangluo;
system("cls");
cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl <<"修改成功^_^,按任意键返回主菜单。
"<<endl;getch();}
}
void put_massage(int m,Student j[])
{int i;
cout<<"
________________________________________________________________"<<en dl;
cout<<"|序号|姓名|学号|性别|数学|物理|化学|英语|网络|"<<endl;
cout<<"|----|--------|----------|----|----|----|----|----|----|"<<endl;
for(i=0;i<m;i++)
{
cout<<"|
";cout<<""<<setfill('\0')<<setw(3)<<setiosflags(ios::left)<<setiosflags(ios::fixed)<<setp recision(0)<<i+1;cout<<"|";
cout<<"
"<<setfill('\0')<<setw(7)<<setiosflags(ios::left)<<setiosflags(ios::fixed)<<setprecis ion(0)<<j[i].name;cout<<"|";
cout<<setfill('\0')<<setw(10)<<setiosflags(ios::left)<<setiosflags(ios::fixed)<<setp recision(0)<<j[i].num;cout<<"|";
cout<<"
"<<setfill('\0')<<setw(3)<<setiosflags(ios::left)<<setiosflags(ios::fixed)<<setprecis ion(0)<<j[i].sex;cout<<"|";
cout<<"
"<<setfill('\0')<<setw(3)<<setiosflags(ios::left)<<setiosflags(ios::fixed)<<setprecis ion(0)<<j[i].shuxue;cout<<"|";
cout<<"
"<<setfill('\0')<<setw(3)<<setiosflags(ios::left)<<setiosflags(ios::fixed)<<setprecis ion(0)<<j[i].wuli;cout<<"|";
cout<<"
"<<setfill('\0')<<setw(3)<<setiosflags(ios::left)<<setiosflags(ios::fixed)<<setprecis ion(0)<<j[i].huaxue;cout<<"|";
cout<<"
"<<setfill('\0')<<setw(3)<<setiosflags(ios::left)<<setiosflags(ios::fixed)<<setprecis ion(0)<<j[i].yingyu;cout<<"|";
cout<<"
"<<setfill('\0')<<setw(3)<<setiosflags(ios::left)<<setiosflags(ios::fixed)<<setprecis ion(0)<<j[i].wangluo;cout<<"|";
cout<<'\n';}
cout<<"|____|________|__________|____|____|____|____|
____|____|"<<endl;
}
void search_data()姓名查找"<<endl<<"2.按学号查找"<<endl<<"3.输出所有学生信息"<<endl<<"4.返回主菜单"<<endl;
cin>>a;
system("cls");
switch(a)
{case '1':cout<<"输入您需要查找的学生姓名:
";cin>>find_name;search_name(find_name);break;
case '2':cout<<"输入您需要查找的学号:
";cin>>find_num;search_num(find_num);break;
case '3':cout<<endl;
cout<<"学生学籍信息"<<endl;
put_massage(n,stud);getch();break;
case '4':break;
default:cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl <<endl<<"错误指令!按任意键返回。
"<<endl;getch();break;}}
}
void search_name(string name)ame==name)
{cout<<"
________________________________________________________________"< <endl;cout<<"|序号|姓名|学号|性别|数学|物理|化学|英语|网络|"<<endl;
cout<<"|----|--------|----------|----|----|----|----|----|----|"<<endl;
cout<<"|
";cout<<""<<setfill('\0')<<setw(3)<<setiosflags(ios::left)<<i+1;cout<<"|";
cout<<"
"<<setfill('\0')<<setw(7)<<setiosflags(ios::left)<<stud[i].name;cout<<"|
";cout<<setfill('\0')<<setw(10)<<setiosflags(ios::left)<<stud[i].num;cout<<"|";
cout<<"
"<<setfill('\0')<<setw(3)<<setiosflags(ios::left)<<stud[i].sex;cout<<"|";cout<<"
"<<setfill('\0')<<setw(3)<<setiosflags(ios::left)<<stud[i].shuxue;cout<<"|
";cout<<"
"<<setfill('\0')<<setw(3)<<setiosflags(ios::left)<<stud[i].wuli;cout<<"|";cout<<"
"<<setfill('\0')<<setw(3)<<setiosflags(ios::left)<<stud[i].huaxue;cout<<"|
";cout<<"
"<<setfill('\0')<<setw(3)<<setiosflags(ios::left)<<stud[i].yingyu;cout<<"|
";cout<<"
"<<setfill('\0')<<setw(3)<<setiosflags(ios::left)<<stud[i].wangluo;cout<<"|";cout<<'\n';
cout<<"|____|________|__________|____|____|____|____|
____|____|"<<endl;
flag=true;
break;
}
if(flag==false)
cout<<"对不起,暂无此学生信息";
getch();}
void search_num(string num)um==num)
{cout<<"__________________________________________________________ ______"<<endl;cout<<"|序号|姓名|学号|性别|数学|物理|化学|英语|网络|"<<endl;
cout<<"|----|--------|----------|----|----|----|----|----|----|"<<endl;
cout<<"|
";cout<<""<<setfill('\0')<<setw(3)<<setiosflags(ios::left)<<i+1;cout<<"|";
cout<<"
"<<setfill('\0')<<setw(7)<<setiosflags(ios::left)<<stud[i].name;cout<<"|
";cout<<setfill('\0')<<setw(10)<<setiosflags(ios::left)<<stud[i].num;cout<<"|";
cout<<"
"<<setfill('\0')<<setw(3)<<setiosflags(ios::left)<<stud[i].sex;cout<<"|";cout<<"
"<<setfill('\0')<<setw(3)<<setiosflags(ios::left)<<stud[i].shuxue;cout<<"|
";cout<<"
"<<setfill('\0')<<setw(3)<<setiosflags(ios::left)<<stud[i].wuli;cout<<"|";cout<<"
"<<setfill('\0')<<setw(3)<<setiosflags(ios::left)<<stud[i].huaxue;cout<<"|
";cout<<"
"<<setfill('\0')<<setw(3)<<setiosflags(ios::left)<<stud[i].yingyu;cout<<"|
";cout<<"
"<<setfill('\0')<<setw(3)<<setiosflags(ios::left)<<stud[i].wangluo;cout<<"|";cout<<'\n';
cout<<"|____|________|__________|____|____|____|____|
____|____|"<<endl;
flag=true;
break;
}
if(flag==false)
cout<<"对不起,暂无此学生信息";
getch();}
void set_number()huxue==100)
t++;
}
number[e][f]=t;
for(e=1,f=0,t=0,i=0;i<n;i++) {if(stud[i].wuli==100)
t++;
}
number[e][f]=t;
for(e=2,f=0,t=0,i=0;i<n;i++) {if(stud[i].huaxue==100) t++;
}
number[e][f]=t;
for(e=3,f=0,t=0,i=0;i<n;i++) {if(stud[i].yingyu==100)
t++;
}
number[e][f]=t;
for(e=4,f=0,t=0,i=0;i<n;i++) {if(stud[i].wangluo==100) t++;
}
number[e][f]=t;
for(e=0,f=1,t=0,i=0;i<n;i++) huxue>=90&&stud[i].shuxue<=99) t++;
}
number[e][f]=t;
for(e=1,f=1,t=0,i=0;i<n;i++) uli>=90&&stud[i].wuli<=99)
t++;
}
number[e][f]=t;
for(e=2,f=1,t=0,i=0;i<n;i++) uaxue>=90&&stud[i].huaxue<=99) t++;
}
number[e][f]=t;
for(e=3,f=1,t=0,i=0;i<n;i++) ingyu>=90&&stud[i].yingyu<=99)
t++;
}
number[e][f]=t;
for(e=4,f=1,t=0,i=0;i<n;i++) angluo>=90&&stud[i].wangluo<=99) t++;
}
number[e][f]=t;
for(e=0,f=2,t=0,i=0;i<n;i++) huxue>=80&&stud[i].shuxue<=89) t++;
}
number[e][f]=t;
for(e=1,f=2,t=0,i=0;i<n;i++) uli>=80&&stud[i].wuli<=89)
t++;
}
number[e][f]=t;
for(e=2,f=2,t=0,i=0;i<n;i++) uaxue>=80&&stud[i].huaxue<=89) t++;
}
number[e][f]=t;
for(e=3,f=2,t=0,i=0;i<n;i++) ingyu>=80&&stud[i].yingyu<=89)
t++;
}
number[e][f]=t;
for(e=4,f=2,t=0,i=0;i<n;i++) angluo>=80&&stud[i].wangluo<=89) t++;
}
number[e][f]=t;
for(e=0,f=3,t=0,i=0;i<n;i++) huxue>=90&&stud[i].shuxue<=99) t++;
}
number[e][f]=t;
for(e=1,f=3,t=0,i=0;i<n;i++) uli>=70&&stud[i].wuli<=79)
t++;
}
number[e][f]=t;
for(e=2,f=3,t=0,i=0;i<n;i++) uaxue>=70&&stud[i].huaxue<=79) t++;
}
number[e][f]=t;
for(e=3,f=3,t=0,i=0;i<n;i++) ingyu>=70&&stud[i].yingyu<=79)
t++;
}
number[e][f]=t;
for(e=4,f=3,t=0,i=0;i<n;i++) angluo>=70&&stud[i].wangluo<=79) t++;
}
number[e][f]=t;
for(e=0,f=4,t=0,i=0;i<n;i++) huxue>=60&&stud[i].shuxue<=69)
t++;
}
number[e][f]=t;
for(e=1,f=4,t=0,i=0;i<n;i++) uli>=60&&stud[i].wuli<=69)
t++;
}
number[e][f]=t;
for(e=2,f=4,t=0,i=0;i<n;i++) uaxue>=60&&stud[i].huaxue<=69) t++;
}
number[e][f]=t;
for(e=3,f=4,t=0,i=0;i<n;i++) ingyu>=60&&stud[i].yingyu<=69)
t++;
}
number[e][f]=t;
for(e=4,f=4,t=0,i=0;i<n;i++) angluo>=60&&stud[i].wangluo<=69) t++;
}
number[e][f]=t;
for(e=0,f=5,t=0,i=0;i<n;i++) huxue>=0&&stud[i].shuxue<=59)
t++;
}
number[e][f]=t;
for(e=1,f=5,t=0,i=0;i<n;i++) uli>=0&&stud[i].wuli<=59)
t++;
}
number[e][f]=t;
for(e=2,f=5,t=0,i=0;i<n;i++) uaxue>=0&&stud[i].huaxue<=59) t++;
}
number[e][f]=t;
for(e=3,f=5,t=0,i=0;i<n;i++) ingyu>=0&&stud[i].yingyu<=59)
t++;
}
number[e][f]=t;
for(e=4,f=5,t=0,i=0;i<n;i++) angluo>=0&&stud[i].wangluo<=59) t++;
}
number[e][f]=t;
}
void set_point() huxue;}
eva[0]=s/(n*;
for(i=0,s=0;i<n;i++)
{s=s+stud[i].wuli;}
eva[1]=s/(n*;
for(i=0,s=0;i<n;i++)
{s=s+stud[i].huaxue;}
eva[2]=s/(n*;
for(i=0,s=0;i<n;i++)
{s=s+stud[i].yingyu;}
eva[3]=s/(n*;
for(i=0,s=0;i<n;i++)
{s=s+stud[i].wangluo;}
eva[4]=s/(n*;
}
void put_result()询每位学生的总平均分"<<endl<<"2.查询各课的成绩分布及平均成绩"<<endl<<"3.查询各段成绩所占的百分比"<<endl<<"4.返回主菜单
"<<endl;
cin>>g;
system("cls");
switch(g)
{case '1':put_result1();getch();break;
case '2':put_result2();getch();break;
case '3':put_result3();getch();break;
case '4':break;
default:cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl <<endl<<"错误指令!按任意键返回。
"<<endl;getch();break;}
}}
void put_result1()ame<<""<<"|
";cout<<setfill('\0')<<setw(6)<<setiosflags(ios::right)<<stud[e].eva<<" "<<"|
"<<endl;
}
cout<<"|_______|________|"<<endl;
}
void put_result2()存文件"<<endl<<"2.读取文件"<<endl<<"3.返回主菜单
"<<endl;cin>>g;
system("cls");
switch(g)
{case '1':save_data();break;
case '2':read_data();break;
case '3':break;
default:cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl <<endl<<"错误指令!按任意键返回。
"<<endl;getch();break;}
}}
void save_data() at");
ofstream outfile("学生学籍信息.dat",ios::out);
if(outfile==0)
{cerr<<"打开失败!"<<endl;
exit(1);
}
else
{
for(i=0;i<n;i++)
{
outfile<<stud[i].name<<" ";
outfile<<stud[i].num<<" ";
outfile<<stud[i].sex<<" ";
outfile<<stud[i].shuxue<<" ";
outfile<<stud[i].wuli<<" ";
outfile<<stud[i].huaxue<<" ";
outfile<<stud[i].yingyu<<" ";
outfile<<stud[i].wangluo<<" ";
}
n=i;
cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl <<"保存成功^_^,按任意键返回主菜单。
"<<endl;}
();
getch();}
void read_data() at",ios::in);
if(!infile)
{cerr<<"打开失败!"<<endl;
exit(1);
}
else
{for(n=0,i=0;i<200;i++)
{infile>>stud[i].name;
infile>>stud[i].num;
infile>>stud[i].sex;
infile>>stud[i].shuxue;
infile>>stud[i].wuli;
infile>>stud[i].huaxue;
infile>>stud[i].yingyu;
infile>>stud[i].wangluo;
n++;
if(stud[i].wangluo==0&&stud[i].wuli==0&&stud[i].huaxue==0)
{i=200;
n--;}
}}
cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl <<"读取成功^_^,按任意键返回主菜单。
"<<endl;
getch();
();
}
void renew_data()
{char h;
for(h='0';h=='0'||h!='3';)
{system("cls");
cout<<"1.删除学籍记录"<<endl<<"2.恢复删除记录"<<endl<<"3.返回主菜单"<<endl;cin>>h;
system("cls");
switch(h)
{case '1':system("cls");
cout<<endl<<endl<<endl;
cout<<"原始学生学籍信息"<<endl;put_massage(n,stud);
cout<<"
________________________________________________________________"< <endl;cout<<"输入您需要删除的学籍的序号:"<<'\t';
cin>>p;
if(p>n)
{cout<<endl<<"错误指令!"<<endl;
getch();
break;}
delete_data(p);getch();break;
case '2':recover_data();break;
case '3':break;
default:cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl <<endl<<"错误指令!按任意键返回。
"<<endl;getch();break;}
}
}
void delete_data(int m) ame=stud[m].name;
stud[m-1].num=stud[m].num;
stud[m-1].sex=stud[m].sex;
stud[m-1].shuxue=stud[m].shuxue;
stud[m-1].wuli=stud[m].wuli;
stud[m-1].huaxue=stud[m].huaxue;
stud[m-1].yingyu=stud[m].yingyu;
stud[m-1].wangluo=stud[m].wangluo;
}
n--;
cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl <<"删除成功^_^,按任意键返回主菜单。
"<<endl;}
else if(o=='N'||o=='n'){}
else
cout<<"错误指令!"<<endl;
}
void recover_data() /*恢复记录*/
{
int k;
system("cls");
cout<<"已被删除的学生学籍信息"<<endl;
put_massage(u,studl);
cout<<"
________________________________________________________________"< <endl;cout<<"输入您想恢复的学籍信息的序号";
cin>>k;
stud[n]=studl[k-1];
n++;
if(k==u)
{u--;}
else
{
studl[k-1].name=studl[k-1].name;
studl[k-1].num=studl[k-1].num;
studl[k-1].sex=studl[k-1].sex;
studl[k-1].shuxue=studl[k-1].shuxue;
studl[k-1].wuli=studl[k-1].wuli;
studl[k-1].huaxue=studl[k-1].huaxue;
studl[k-1].yingyu=studl[k-1].yingyu;
studl[k-1].wangluo=studl[k-1].wangluo;
u--;
}
system("cls");
cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl <<"恢复成功^_^,按任意键返回主菜单。
"<<endl;
getch();}
int main(int argc,char*argv[])入学生的学籍信息*"<<endl;
cout<<"*2.增加学籍记录*"<<endl;
cout<<"*3.删除、恢复学籍信息*"<<endl;
cout<<"*4.查询学生的学籍信息*"<<endl;改学籍记录*"<<endl;计成绩情况*"<<endl;
cout<<"*7.保存与读取文件*"<<endl;于作者*"<<endl;
cout<<"*9.退出*"<<endl;
cout<<"**"<<endl;
cout<<"
***************************************************************** *********"<<endl;
cin>>b;
switch(b)
{case'1':system("cls");cout<<"请输入学生的人数:
"<<endl;cin>>n;system("cls");set_massage(n,stud);system("cls");
cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl <<"输入成功^_^,按任意键返回主菜单。
"<<endl;getch();break;
case '2':cout<<"请输入所要增加的学生个数
"<<endl;cin>>c;system("cls");add_massage(c,stud);cout<<endl<<endl<<endl<<endl<< endl<<endl<<endl<<endl<<endl<<endl<<endl<<"输入成功^_^,按任意键返回主菜单。
"<<endl;getch();break;
case '3':system("cls");renew_data();break;
case '4':system("cls");search_data();break;
case '5':system("cls");
cout<<endl<<endl<<endl;
cout<<"原始学生学籍信息"<<endl;put_massage(n,stud);
cout<<"
________________________________________________________________"< <endl;
cout<<"输入您需要修改的学生的序号:
"<<'\t';cin>>d;system("cls");change_data(d,stud);system("cls");
break;
case '6':system("cls");set_number();set_eva2();set_point();
for(d=0;d<n;d++)stud[d].set_eva();
put_result();break;
case '7':system("cls");cunqu_data();break;
case '8':system("cls");cout<<"作者:***"<<'\n'<<"学校:中南大学"<<'\n'<<"学院:信息科学与工程学院"<<'\n'<<"班级:自动化
****"<<endl<<endl<<endl<<endl<<endl;getch();break;//换页
case '9':break;
default:cout<<"错误信息!"<<endl;b='0';getch();break; }}
return 0;
}。