?? 趙彥斌.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 + -