📄 赵彦斌.cpp
字号:
#include <iostream.h>
#include <fstream.h>
#include <string.h>
#include <stdlib.h>
#include <iomanip.h>
#include <stdio.h>
void menu();
void bulid();
void add();
void del();
void save();
void load();
void print();
void print(int l,int *p);
void print1(int l,int *p);
void mend();
void score();
void all();
int findnum(int *r);
int findname(int *r);
void countout();
void countin();
struct student
{
int number;
char name[20];
double math,e,c,avg,all;
};
student people[100];
static int n;
char file[30],ch;
void main()
{menu();}
void menu()
{
cout<<endl<<endl;
cout<<"\t\t\t┌──────────┐"<<endl;
cout<<"\t\t\t│ 学生成绩管理系统 │"<<endl;
cout<<"\t\t\t├──────────┤"<<endl;
cout<<"\t\t\t│1、新建学生名单 │"<<endl;
cout<<"\t\t\t│2、读取学生成绩 │"<<endl;
cout<<"\t\t\t│3、添加学生 │"<<endl;
cout<<"\t\t\t│4、删除学生 │"<<endl;
cout<<"\t\t\t│5、修改学生资料 │"<<endl;
cout<<"\t\t\t│6、成绩统计 │"<<endl;
cout<<"\t\t\t│7、总成绩统计 │"<<endl;
cout<<"\t\t\t│8、储存学生成绩 │"<<endl;
cout<<"\t\t\t│9、退出程序 │"<<endl;
cout<<"\t\t\t│0、查看列表 │"<<endl;
cout<<"\t\t\t└──────────┘"<<endl;
cout<<endl;
int a;
cout<<endl<<"\t\t\t 请输入选项:";
cin>>a;
cout<<endl;
switch(a)
{
case 1:bulid();break;
case 2:load();break;
case 3:add();break;
case 4:del();break;
case 5:mend();break;
case 6:score();break;
case 7:all();break;
case 8:save();break;
case 9:cout<<"退出程序"<<endl;break;
case 0:
{
print();
cout<<"任意键返回。"<<endl;
cin.get(ch);
menu();
};break;
default:cout<<"输入错误"<<endl;menu();
}
}
void bulid() //新建
{
fstream outf;
cout<<"输入文件名(包括扩展名):";cin>>file;cout<<endl;
cout<<"请问所要输入学生的个数:";cin>>n;cout<<endl;
for(int i=0;i<n;i++)
{
cout<<"学号:"; cin>>people[i].number; cout<<endl;
cout<<"姓名:"; cin>>people[i].name; cout<<endl;
cout<<"数学:"; cin>>people[i].math; cout<<endl;
cout<<"英语:"; cin>>people[i].e; cout<<endl;
cout<<"C++ :"; cin>>people[i].c; cout<<endl;
}
cout<<n<<endl;
save();
}
void save() //保存
{
fstream outf;
outf.open(file,ios::out|ios::binary);
if(!outf)
{
cout<<"File NO save;"<<endl;
abort();
}
for(int i=0;i<n;i++)
outf.write((char *)&people[i],sizeof(people[i]));
outf.close();
cout<<"保存完毕"<<endl;
menu();
}
void load() //读取文件
{
n=0;
char ch;
loop:
cout<<"输入文件名(包括扩展名):";cin>>file;cout<<endl;
fstream inf;
inf.open(file,ios::in|ios::binary|ios::nocreate);
if (!inf)
{
cout<<"Load File error"<<endl;
goto loop;
}
else cout<<"File load Successful!"<<endl;
while(!inf.eof())
{inf.read((char *)&people[n],sizeof(people[n]));n=n+1;}
cout<<n-2<<endl;
cout<<"学生成绩汇总表:"<<endl;
inf.close();
cout<<"按任意键返回主菜单。";
cin.get(ch);
menu();
}
void add() //添加
{
char ch;
int i=n;
cout<<n<<endl;
loop:
cout<<"学号:"; cin>>people[n].number; cout<<endl;
cout<<"姓名:"; cin>>people[n].name; cout<<endl;
cout<<"数学:"; cin>>people[n].math; cout<<endl;
cout<<"英语:"; cin>>people[n].e; cout<<endl;
cout<<"C++ :"; cin>>people[n].c; cout<<endl;
n=n+1;cout<<n<<endl;
cout<<endl<<"\t"<<"继续添加?(y/n):";cin>>ch;
if(ch=='y') goto loop;
cout<<"文件尚未保存,保存吗?(y/n)";cin>>ch;
if(ch=='y')
{
fstream outf;
outf.open(file,ios::out|ios::binary|ios::ate);
if(!outf)
{
cout<<"File NO save;"<<endl;
abort();
}
for(i;i<n;i++)
outf.write((char *)&people[i],sizeof(people[i]));
outf.close();
cout<<"保存完毕"<<endl;
}
cin.get(ch);
menu();
}
void del() //删除
{
if(n==0)
cout<<"NO student file"<<n<<endl;
else
{
int findnum(int *p);
int findname(int *p);
int a,k,remember[20];
char ch;
loop:
cout<<"\t"<<"1.以学号查询"<<endl;
cout<<"\t"<<"2.以姓名查询"<<endl<<endl;
cout<<"\t"<<"3.返回"<<endl;
cout<<"输入选项:";cin>>a;
if(a==1)
{
k=findnum(remember);
if (k==0) cout<<"无此人"<<endl; else print1(k,remember);
}
else if(a==2)
{
k=findname(remember);
if (k==0) cout<<"无此人"<<endl; else print1(k,remember);
}
else if(a==3) menu();
else {cout<<"错误选项!";goto loop;}
cout<<endl<<"是否删除?(y/n)";
cin>>ch;
if(ch=='y')
{
for(int j=0;j<k;j++) //print(n,remember);
{
for(int t=remember[j];t<n;t++)
{ if(remember[j]==n-1) break;
else
people[t]=people[t+1]; //经典
}
n--;cout<<k<<" "<<n<<" "<<remember[0]<<endl; //
}
fstream outf;
outf.open(file,ios::out|ios::binary);
if(!outf)
{
cout<<"File NO save;"<<endl;
abort();
}
for(int i=0;i<n-k;i++)
outf.write((char *)&people[i],sizeof(people[i]));
outf.close();
cout<<"删除完毕,文件已保存。"<<endl;
cin.get(ch);
menu();
}
else menu();
}
}
void mend() //修改
{
if(n==0)
cout<<"NO student file"<<n<<endl;
else
{
int findnum(int *p);
int findname(int *p);
int a,k,remember[20];
loop:
cout<<"\t"<<"1.以学号查询"<<endl;
cout<<"\t"<<"2.以姓名查询"<<endl<<endl;
cout<<"\t"<<"3.返回"<<endl;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -