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

📄 赵彦斌.cpp

📁 vc学生成绩管理系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
#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 + -