求一份C++的课程设计(学籍管理系统) 20

课程设计内容、要求1.利用面向对象的方法对业务进行系统分析,形成功能规格说明书;2.对各个功能模块分析设计抽象并实现对象类;3.所有数据用文件存储,并通过流类与程序交换4... 课程设计内容、要求
1.利用面向对象的方法对业务进行系统分析,形成功能规格说明书;
2.对各个功能模块分析设计抽象并实现对象类;
3.所有数据用文件存储,并通过流类与程序交换
4.用户界面用基于MFC的设计,最后完成一个可运行的程序;

包括的功能:

学生资料;
成绩登记;
综合排名;
管理成绩查询

请各位高手给出代码,如需要涉及用SQL或者ACCESS的东西请详细教导

追加全部分都可。。。
展开
 我来答
ysh2009cg
2008-12-13 · 超过16用户采纳过TA的回答
知道答主
回答量:158
采纳率:0%
帮助的人:0
展开全部
一下是我大一的时候的作业!
#include<iostream>
#include<fstream>
#include <windows.h>
#include<string>
#include <time.h>
#include<cstdlib>
#include<iomanip>
using namespace std;
int n=0;
#define M cout<<
#define N ;Sleep(80);
#define Y N M
#define NN cout<<"╭—————————————————————————————————————————————╮"<<endl;cout<<"∣ num ∣ name∣ age ∣ hig ∣ 语文 ∣ 数学 ∣ 英语 ∣ 平均 ∣ 总分 ∣ 评语 ∣ "<<endl;cout<<"├———-┼———-┼———┼———┼———-┼———-┼———-┼—————┼————┼———-┤"<<endl;cout<<"∣"<<setw(6)<<p1->num<<setw(3)<<"∣"<<setw(7)<<p1->name<<setw(2)<<"∣"<<setw(4)<<p1->age<<setw(4)<<"∣"<<setw(4)<<p1->hig<<setw(4)<<"∣"<<setw(5)<<p1->score[0]<<setw(4)<<"∣"<<setw(5)<<p1->score[1]<<setw(4)<<"∣"<<setw(5)<<p1->score[2]<<setw(4)<<"∣"<<setw(8)<<setprecision(3)<<p1->ave<<setw(4)<<"∣"<<setw(6)<<p1->sum<<setw(4)<<"∣"<<setw(7)<<p1->p_y<<setw(2)<<"∣"<<endl;cout<<"  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ "<<endl;
////////////////////////////////////////////////////////////////////////////////////////////
////
////////////////////////////////////////////////////////////////////////////////////////////
class ji_ke_1_class
{
int num;
char name[20];
int age;
float hig;
int score[3];
float ave;
float sum;
char p_y[10];
public:
void set_date();
void display();
void creat();
void print();
void insert();
void exchange(ji_ke_1_class *p1,ji_ke_1_class *p2);
void sort(int j);
void index(int q,char aa[20]);
void del(int num);
void save();
void tongji();
void load();
class ji_ke_1_class *next;
};
ji_ke_1_class *head,*p1,*p2,*p;

void ji_ke_1_class::set_date ()
{
cout<<"学号_姓名_年龄_身高_"<<endl;
cin>>num>>name>>age>>hig;
cout<<"-----分数::语文_数学_英语_"<<endl<<" ";
for(int i=0;i<3;i++)
cin>>score[i] ;
}
void ji_ke_1_class::display()
{
ji_ke_1_class *p;
int i;
for( p=head , i=0 ; i<n ; i++ , p=p->next )
cout<<"∣"
<<setw(6)<<p->num
<<setw(3)<<"∣"
<<setw(7)<<p->name
<<setw(2)<<"∣"
<<setw(4)<<p->age
<<setw(4)<<"∣"
<<setw(4)<<p->hig
<<setw(4)<<"∣"
<<setw(5)<<p->score[0]
<<setw(4)<<"∣"
<<setw(5)<<p->score[1]
<<setw(4)<<"∣"
<<setw(5)<<p->score[2]
<<setw(4)<<"∣"
<<setw(8)<<setprecision(3)<<p->ave
<<setw(4)<<"∣"
<<setw(6)<<p->sum
<<setw(4)<<"∣"
<<setw(7)<<p->p_y
<<setw(2)<<"∣"
<<endl;
}
void ji_ke_1_class::print()
{
ji_ke_1_class *p0=head;
cout<<"╭—————————————————————————————————————————————╮"<<endl;
cout<<"∣ num ∣ name∣ age ∣ hig ∣ 语文 ∣ 数学 ∣ 英语 ∣ 平均 ∣ 总分 ∣ 评语 ∣ "<<endl;
cout<<"├———-┼———-┼———┼———┼———-┼———-┼———-┼—————┼————┼———-┤"<<endl;
p0->display();
cout<<"  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ "<<endl;
}
void ji_ke_1_class::creat()
{
int m=0;
float total=0;
head=p2=p1=new ji_ke_1_class;
p1->set_date();
while(p1->num!=0)
{
n=n+1;
if(n==1)
head=p1;
else
p2->next=p1;
p2=p1;
p1=new ji_ke_1_class;
p1->set_date ();
}
p2->next=0;
ji_ke_1_class *p=new ji_ke_1_class;
for(p=head ; m<n ; p=p->next )
{

total=total+p->score[0]+p->score[1]+p->score[2];
p->sum=total;
p->ave=total/3;
cout<<p->sum<<"--------__"<<p->ave<<endl;
if(p->ave>85) strcpy( p->p_y , "优秀" );
else if(p->ave>75) strcpy( p->p_y , "中等" );
else if(p->ave>60) strcpy( p->p_y , "及格" );
else strcpy( p->p_y , "不及格" );
total=0;
m+=1;
}
}
template<typename T1>
void exchang1(T1 &a,T1 &b)
{
int t;
t=a;
a=b;
b=t;
}
template<typename T2>
void exchang2(T2 &a,T2 &b)
{
float t;
t=a;
a=b;
b=t;
}
void ji_ke_1_class::exchange(ji_ke_1_class *p1,ji_ke_1_class *p2)
{
char t2[30],t1[10];
exchang1(p1->num,p2->num);
exchang1(p1->score[1],p2->score[1]);
exchang1(p1->score[0],p2->score[0]);
exchang1(p1->score[2],p2->score[2]);
exchang2(p1->hig,p2->hig);
exchang2(p1->ave,p2->ave);
exchang2(p1->sum,p2->sum);
strcpy(t2,p1->name);
strcpy(p1->name,p2->name);
strcpy(p2->name,t2);
strcpy(t1,p1->p_y );
strcpy(p1->p_y ,p2->p_y );
strcpy(p2->p_y ,t1);
}
void ji_ke_1_class::sort(int j)
{
ji_ke_1_class *p1,*p2;
int m,t;
cout<<endl;
for(p1=head , m=0 ; m<n-1 ; m++ , p1=p1->next)
for(p2=p1->next,t=m+1 ; t<n ; t++ , p2=p2->next)
{
if( (p1->num) > (p2->num) && j==1 ) exchange(p1,p2);
if( (p1->sum) < (p2->sum) && j==2 ) exchange(p1,p2);
}
print();
cout<<endl;
}
void ji_ke_1_class::del(int num)
{
ji_ke_1_class *p1,*p2;
if(head==0)
{
cout<<"\nlist null!\n";
goto end1;
}
p1=head;
while(num!=p1->num && p1->next!=0)
{
p2=p1;
p1=p1->next;
}
if(num==p1->num)
{
if(p1==head) head=p1->next;
else p2->next=p1->next;
cout<<"\n"<<"恭喜你--deleted the:"<<num<<endl<<endl;
n=n-1;
}
else cout<<num<<"抱歉--好像没有这个数吧!!\n"<<"\n\n";
end1: ;
}
void ji_ke_1_class::insert()
{
float total;
ji_ke_1_class *pt=new ji_ke_1_class;
ji_ke_1_class *p0,*p1,*p2;
pt=new ji_ke_1_class;
pt->set_date();
total=0;
int i;
for(i=0;i<3;i++)
total+=pt->score[i];
pt->sum=total;
pt->ave=total/3;
if(pt->ave>85) strcpy( pt->p_y , "优秀" );
else if(pt->ave>75) strcpy( pt->p_y , "中等" );
else if(pt->ave>60) strcpy( pt->p_y , "及格" );
else strcpy( pt->p_y , "不及格" );
p1=head;
p0=pt;
if(head==0)
{
head=p0;
p0->next=0;
}
else
{
while( (p0->num>p1->num)&&(p1->next!=0))

{
p2=p1;
p1=p1->next;
}

if(p0->num<=p1->num)
{
if(head==p1) head=p0;
else p2->next=p0;
p0->next=p1;
}

else
{
p1->next=p0;
p0->next=0;
}
}
n=n+1;
}
void ji_ke_1_class::index(int q,char aa[20])
{
ji_ke_1_class *p1=head;
int m=0,j=0;
int len,flag=1;
int a[4];
for( m=0 ; m<n ; p1=p1->next , m++ )
{
a[0]=0;a[1]=0;a[2]=0;a[3]=0;
flag=1;
a[0]=(int)( (p1->num)/1000 ); a[1]=(int)( (p1->num-a[0]*1000 )/100 );
a[2]=(int)( (p1->num-a[1]*100-a[0]*1000 )/10 ); a[3]=(int)( p1->num-a[1]*100-a[0]*1000-a[2]*10 );
for(int i=19 ; i>=0 ; i--)
{
if(aa[i]!=0)
len=i+1;
}
int m[4],k=0,y=0,x=0,d=0;
for(k=0;k<4;k++)
{
d=0;
y=(int)aa[k];
for(x=48;x<=57;x++)
{
d++;
if(x==y) m[k]=(d-1);
}
}
for(j=0 ; j<4 ; j++ )
{
if( a[j]!=m[j] )
flag=0;
}
if( flag==1 && q==1 )
{
NN
break;
}
if( p1->name[0]==aa[0] && p1->name[1]==aa[1] && p1->name[2]==aa[2] && q==2 )
{
NN
break;
}
}
if( m==n ) cout<<"no the student"<<endl;
}
int x[20];
string filename;
void ji_ke_1_class::save()
{
int d,d1=0;
int ii;
cout<<endl<<"请输入存储路径(建议存入当前文件中的data_save中)(例 ---绝对路径:C:\\\\文件名\\\\文件名\\\\数据名.dat \n "
<<" ---相对路径:save\\\\数据名.dat; )"
<<endl
<<"路径为:";
string cc;
cin>>cc;
cout<<" ╭——————————————╮"<<endl<<"正在保存 ";
for(ii=0;ii<15;ii++)
{
cout<<'\20';
Sleep(15);
}
ifstream file1("程序必用1.dat",ios::binary);
file1.read( (char *)&d , sizeof(d) );
d1=(int)d+1;
file1.close();
string filename0,name_file;
filename0=cc;
name_file=filename0.c_str();
ofstream file2("程序必用1.dat",ios::binary);
file2.write( (char *)&d1 , sizeof(d1) );
file2.close();
ofstream file3("程序必用2.dat", ios::app|ios::out );
file3<<name_file.c_str ()<<" ";
file3.close();
ofstream outfile(cc.c_str(),ios::binary);
if(!outfile)
{
cerr<<"!!!!!"<<endl;
abort();
}
outfile.write( (char *)&n , sizeof(n) );
ji_ke_1_class *p=head;
for(int i=0;i<n;i++,p=p->next)
outfile.write( (char *)p,sizeof(ji_ke_1_class));
outfile.close();
for(ii=0;ii<15;ii++)
{
cout<<'\20';
Sleep(15);
}
cout<<endl<<endl;
cout<<"-----已成功保存!!!!!!"<<endl<<endl;
}
void ji_ke_1_class::load()
{
int h1,h2;
string qq,name[20],name0[20];
ifstream file("程序必用1.dat",ios::binary);
if(!file)
{
cerr<<"open error!!"<<endl;
abort();
}
file.read( (char *)&h1, sizeof(h1) );
h2=int(h1);
cout<<"共有以下 "<<h2<<" 个文件"<<endl;

ifstream file0("程序必用2.dat",ios::in);
if(!file0)
{
cerr<<"open error!!"<<endl;
abort();
}
for(int e=0;e<h2;e++)
{
if(e%2==0) cout<<endl;
file0>>name[e];
name0[e]=name[e];
cout<<"第"<<e+1<<"个文件:"<<setw(16)<<(string)name0[e]<<" ; ";
}
file0.close();
cout<<endl;
loop3:
cout<<endl<<"请输入路径(例 ---绝对路径:C:\\\\文件名\\\\文件名\\\\数据名.dat ---相对路径:save\\\\数据名.dat;)"<<endl ;
cout<<"路径为:";
string ccc;
cin>>ccc;
cout<<" ╭——————————————╮"<<endl<<"正在读取 ";
int ii;
for(ii=0;ii<15;ii++)
{
cout<<'\20';
Sleep(15);
}
ifstream infile(ccc.c_str(),ios::binary);
int c;
ji_ke_1_class t[60],*pp[60];
if(!infile)
{
cout<<endl<<"无此文件; 1---重输 ; other---放弃";
cin>>c;
if(c==1) goto loop3;
else goto loop4;
}
int nn,nnn;

int i;
infile.read( (char *)&nn , sizeof(nn) );
nnn=(int)nn;
n=nnn;
infile.read( (char *)&t[0] , sizeof(ji_ke_1_class) );
head=(ji_ke_1_class *)&t[0];
for(i=1; i<nnn; i++)
{
深圳市校管家教育科技有限公司_
2024-02-23 广告
选择培训学校管理系统,需要考虑多方面因素,如系统功能。培训学校管理系统实现了动态的网络化管理,提高了各职能部门的协同办公效能。培训学校管理系统是针对培训学校的管理和教学特点而设计的高效协同工作平台和优秀的综合管理系统。具体费用不是一定的,和... 点击进入详情页
本回答由深圳市校管家教育科技有限公司_提供
xtaydx
2008-12-08
知道答主
回答量:10
采纳率:0%
帮助的人:0
展开全部
直接用SQL就可以了 不用C++的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
riserui
2008-12-09 · TA获得超过107个赞
知道小有建树答主
回答量:289
采纳率:0%
帮助的人:232万
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Really__Boy
2012-06-19
知道答主
回答量:6
采纳率:0%
帮助的人:3.5万
展开全部
我也是要做这个,╮(╯▽╰)╭
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式