一时半会也不能写出一模一样的程序了,给个程序让你参考吧!希望对你有帮助!
#include
#include
void menu();//函数声明******主菜单函数
void help();
void build();
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()
{
system("color 1A");
cout<<"\t\t\t欢迎使用学生成绩管理系统"<
void menu()
{
cout<
cout<<"┃**************** ☆ 学 生 成 绩 管 理 系 统 ☆ ****************** ┃";
cout<<"┃********** ★★★★★ ★★★★★★★ ★★★★★ *********** ┃";
cout<<"┣━━━━━━━━━━━━━━━━━━━━━━━世亏━━━━━━━━━━━━━━━┫";
cout<<"┃****************★ ☆ 1.帮助 ☆ ★***************┃";
cout<<"┃****************★ ☆ 2.输入数据并存档 ☆ ★***************┃";
cout<<"┃****************★ ☆ 3.添加学生碰返旁 ☆ ★***************┃";
cout<<"┃****************★ ☆笑橡 4.删除学生 ☆ ★***************┃";
cout<<"┃****************★ ☆ 5.修改学生资料 ☆ ★***************┃";
cout<<"┃****************★ ☆ 6.成绩统计 ☆ ★***************┃";
cout<<"┃****************★ ☆ 7.总成绩统计 ☆ ★***************┃";
cout<<"┃****************★ ☆ 8.储存学生成绩 ☆ ★***************┃";
cout<<"┃****************★ ☆ 9.安全退出系统 ☆ ★***************┃";
cout<<"┃****************★ ☆ 0.查看全部 ☆ ★***************┃";
cout<<"┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛"
<<"****************作者: 09计本三班 赵天武 QQ:469536761************************"<
cout<
cout<
{
case '1':help();break;
case '2':build();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<<"退出程序"<
print();
cout<<"任意键返回。"<
system("cls");
menu();
};break;
default:cout<<"输入错误"<
system("cls");
menu();
}
}
void help()
{
system("cls");
cout<<" 此系统是应老师所布置的作业编制而成,该系统具有存贮学生数据,\n";
cout<<" 学号、姓名查询,列出学生成绩和统计功能。使用方法:系统输\n";
cout<<" 入数据后,将在当前目录中建立一个名为 stu.dat文件,用于保存\n";
cout<<" 输入的数据。学号输入只能用数字输入,并且学号只能是10位。姓\n";
cout<<" 名输入符合中国人的姓名,只能用中文,且最长为5个汉字。"<
system("cls");
menu();
}
void build() //新建
{
fstream outf;
cout<<"输入文件名(包括扩展名):";cin>>file;cout<
cout<<"\t\t\t学号:"; cin>>people[i].number; cout<
cout<
}
void save() //保存
{
system("cls");
fstream outf;
outf.open(file,ios::out|ios::binary);
if(!outf)
{
cout<<"文件存储失败;"<
}
for(int i=0;i
outf.close();
cout<<"保存完毕"<
cin.get();
system("cls");
menu();
}
void load() //读取文件
{
n=0;
loop:
cout<<"输入文件名(包括扩展名):";cin>>file;cout<
inf.open(file,ios::in|ios::binary|ios::nocreate);
if (!inf)
{
cout<<"载入文件失败"<
}
else cout<<"成功读取文件!"<
{inf.read((char *)&people[n],sizeof(people[n]));n=n+1;}
cout<
cout<<"确定返回主菜单。";
getchar();
system("cls");
menu();
}
void add() //添加
{
char ch;
int i=n;
cout<
system("cls");
cout<<"学号:"; cin>>people[n].number; cout<
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<<"文件存储失败;"<
}
for(i;i
outf.close();
cout<<"保存完毕"<
getchar();
system("cls");
menu();
}
void del() //删除
{
if(n==0)
cout<<"无学生档案"<
{
int findnum(int *p);
int findname(int *p);
int a,k,remember[20];
char ch;
loop:
cout<<"\t\t"<<"输入1.学号查询"<
if(a==1)
{
k=findnum(remember);
if (k==0) {cout<<"无此人"<
}
else if(a==2)
{
k=findname(remember);
if (k==0){ cout<<"无此人"<
}
else if(a==3) {system("cls");menu(); }
else {cout<<"错误选项!";goto loop;}
cout<
if(ch=='y')
{
for(int j=0;j
for(int t=remember[j];t
else
people[t]=people[t+1]; //经典
}
n--;cout<
fstream outf;
outf.open(file,ios::out|ios::binary);
if(!outf)
{
cout<<"文件存储失败;"<
}
for(int i=0;i
outf.close();
cout<<"删除完毕,文件已保存。"<
system("cls");
menu();
}
else {cout<<"删除完毕,文件已保存。"<
getchar();
system("cls");menu();}
}
}
void mend() //修改****************************************************************************
{
if(n==0)
cout<<"无学生资料"<
{
int findnum(int *p);
int findname(int *p);
int a,k,remember[20];
loop:
cout<<"\t"<<"1.以学号查询"<
if(a==1)
{
k=findnum(remember);
if (k==0) cout<<"无此人"<
else if(a==2)
{
k=findname(remember);
if (k==0) cout<<"无此人"<
else if(a==3){system("cls"); menu();}
else {cout<<"错误选项!";goto loop;}
cout<<"学生资料修改输入:===>>"<
cout<<"\t\t\t学号:"; cin>>people[remember[i]].number; cout<
fstream outf;
outf.open(file,ios::out|ios::binary);
if(!outf)
{
cout<<"文件未存储;"<
}
for(i=0;i
if(i==k) continue;
else outf.write((char *)&people[i],sizeof(people[i]));
}
outf.close();
cout<<"学生信息修改完成。"<
cout<<"\t\t\t\t\t\t\t\t\t\t确定。"<
system("cls");
menu();
}
void score() //成绩统计****************************************************************************
{
double savg[3];
int pnum[3][5],good,lgood,so,ok,notok; //3 科 1~5 优秀,良好,中,及格,不及格 的人数
double sum[3]={0,0,0};
for(int j=0;j
for(i=0;i<5;i++)
{
good=0;lgood=0;so=0;ok=0;notok=0;
for(int j=0;j
if (people[j].math>=90) good++;else if(people[j].math>=80) lgood++;else if(people[j].math>=70) so++;else
if (people[j].math>=60) ok++;else notok++;
}
pnum[0][0]=good;pnum[0][1]=lgood;pnum[0][2]=so;pnum[0][3]=ok;pnum[0][4]=notok;
good=0;lgood=0;so=0;ok=0;notok=0;
for(j=0;j
if (people[j].e>=90) good++;else if(people[j].e>=80) lgood++;else if(people[j].e>=70) so++;else
if (people[j].e>=60) ok++;else notok++;
}
pnum[1][0]=good;pnum[1][1]=lgood;pnum[1][2]=so;pnum[1][3]=ok;pnum[1][4]=notok;
good=0;lgood=0;so=0;ok=0;notok=0;
for(j=0;j
if (people[j].c>=90) good++;else if(people[j].c>=80) lgood++;else if(people[j].c>=70) so++;else
if (people[j].c>=60) ok++;else notok++;
}
pnum[2][0]=good;pnum[2][1]=lgood;pnum[2][2]=so;pnum[2][3]=ok;pnum[2][4]=notok;
}
cout<<"┌————┬—————┬————┬————┬————┬————┬————┐"<
system("cls");
menu();
}
void all() //总成绩统计****************************************************************************
{
int a[100],flag;
if (n>=1)
{
for(int j=0;j
people[j].all=people[j].math+people[j].e+people[j].c;
people[j].avg=people[j].all/3;
}
for(j=0;j
flag=0;
for(int s=0;s
if (people[j].all
a[j]=flag;
}
system("cls");
cout<<"┌—————┬—————┬——————┬——————┬—————┐"<
cout<<"│ "<
cout<<"├—————┼—————┼——————┼——————┼—————┤"<
cout<<"└—————┴—————┴——————┴——————┴—————┘"<
else cout<<"错误,或无学生资料."<
system("cls");
menu();
}
void countout()//个数记录**********************************************************************************************************************
{
fstream out;
out.open("F:\\count.dat",ios::out);
if(!out){cout<<"count error"<
}
void countin()//个数读取****************************************************************************
{
fstream in;
in.open("F:\\count.dat",ios::in);
if(!in){cout<<"in error"<
in.close();
}
void print(int l,int *p) //输出删除后所剩学生的信息****************************************************************************
{
if(l==0) cout<<"无学生资料."<
cout<<"┌—————┬—————┬——————┬——————┬—————┐"<
if(i==*(p+m)) {m++;continue;}
cout<<"│ "<
cout<<"├—————┼—————┼——————┼——————┼—————┤"<
cout<<"└—————┴—————┴——————┴——————┴—————┘"<
void print() //通用查看学生信息
{
if (n==0) cout<<"无学生资料."<
cout<<"│"<
cout<<"├—————┼—————┼——————┼——————┼—————┤"<
cout<<"└—————┴—————┴——————┴——————┴—————┘"<
}
void print1(int l,int *p) // 输出要删除的学生的信息
{
if (l==0) cout<<"无学生资料."<
cout<<"┌—————┬—————┬——————┬——————┬—————┐"<
cout<<"│ "<
cout<<"├—————┼—————┼——————┼——————┼—————┤"<
cout<<"└—————┴—————┴——————┴——————┴—————┘"<
这个东西还是自己写比较好,对你入门很有帮助的,可以稍微理解下数据的存储,以后学习数据库可以对比下。
过几天我考完专业课再帮你解答,如果你还没有答案的话
这个,
还真得自己写。