赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 13367 |
最后登录 | 2017-9-22 |
在线时间 | 9 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 9 小时
- 注册时间
- 2007-8-22
- 帖子
- 95
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
[i=s] 本帖最后由 后知后觉 于 2009-8-18 00:57 编辑 [/i]
我想大家可能都忘了我把,就像我对大家没什么印象了那样...
就记得以前大家的头像了...
一个多月了-----------~~~~~~~~~~~~~~~~~~~~~
当天由于我的技术太烂了想去买本ruby的编辑程序的书看看了解了解..
可是(我在深圳..)到了我最常到的新华书城后,
到了专门放技术类书籍的4楼(通常是高中以上的人士逗留的地方),
发现没有ruby的书籍,就只有c++/c/c#这些语言的书..
啊!!!!!!!我在那时很失望,为什么没有我想要的,
由于那时又有2个大人来了(我是小孩(初2那种毛头))不好意识呆了,
就走开在一边,
那里有很多书,我狂翻.
又让我发现了,原来c++的书在这也有不只是刚刚那个专柜.
我有看了一下发现c++语言太有趣了,
比ruby有规格多了,
如有特定的数据种类不像ruby没有种类,
还有语句结束什么的都有严格的规定,
我决定买了一本c++程序设计(潭浩强教授出的,青华大学出版社)
就是这样用了离开大家的那段时间的课余时间.
看完了那本书...
得出了下列结果...
以下是一个学生管理系统,dev c++4.9.9.2实现的,
源代码.................可执行程序在最下面发....
#include<iostream>
#include<string>
#include<fstream>
using namespace std;
int main(){}
void _()
{system("cls");
cout<<"-------------------------------------------------------------------------"<<endl;
cout<<" 学生管理程序"<<endl;
cout<<"-------------------------------------------------------------------------"<<endl;
cout<<" 输入0退出程序"<<endl;
cout<<" 输入1增加挡案"<<endl;
cout<<" 输入2删除质料"<<endl;
cout<<" 输入3查询"<<endl;
cout<<" 输入4简略全输出"<<endl;
cout<<" 输入5修改质料"<<endl;
cout<<"-------------------------------------------------------------------------"<<endl;
}
class student
{private:
char name[50];
char sex[50];
int age;
double yu;
double su;
double yin;
double ke;
double li;
double pjf;
int kk;
int qd;
public:
double zf;
void in_put(char *n){strcpy(name,n);}
void zf_(){cout <<name<<"总分->"<<zf<<endl;}
student(char* n="??",char* s="?",int a=0,double y=0,double s_=0,double yi=0,
double k=0,double l=0,int ku=0,int q=0):
yu(y),su(s_),yin(yi),ke(k),li(l),age(a),zf(y+s_+yi+k+l),
pjf((y+s_+yi+k+l)/5),kk(ku),qd(q)
{strcpy(name,n);strcpy(sex,s);}
string get_name(){return name;}
void s(){zf=-10000;}
friend ostream& operator << (ostream &a,student &b)
{a<<"学生基本资料:\n";
a <<"名字:"<<b.name<<" 性别:"<<b.sex<<" 年龄:"<<b.age<<endl;
a <<"成绩:\n语:"<<b.yu<<" 数:"<<b.su<<" 英:"<<b.yin<<" 科:"<<b.ke<<" 历:"<<b.li<<endl;
a <<"总分:"<<b.zf<<" 平均分:"<<b.pjf<<endl;
a <<"旷课:"<<b.kk<<" 迟到:"<<b.qd;
if(b.kk>=5)
a <<"\n这小子旷课那么多次!(那么拽!!)";
if(b.qd>=5)
a <<"\n这小子迟到那么多次!(那么拽!!)";
return a;}
friend istream& operator >>(istream &a,student &b)
{cout <<"输入学生基本资料:"<<endl;
char v[50],c[50];
cout <<"名字:";a>>v;cout <<" 性别:";a>>c;cout <<" 年龄:";a>>b.age;
cout <<endl;
cout <<"成绩:\n 语:";a>>b.yu;cout<<" 数:";a>>b.su;cout<<" 英:";a>>b.yin;cout<<" 科:";
a>>b.ke;
cout<<" 历:";a>>b.li;cout<<endl;
strcpy(b.name,v);strcpy(b.sex,c);
if(b.yu>100)b.yu=100;
if(b.su>100)b.su=100;
if(b.yin>100)b.yin=100;
if(b.ke>100)b.ke=100;
if(b.li>100)b.li=100;
if(b.yu<0)b.yu=0;
if(b.su<0)b.su=0;
if(b.yin<0)b.yin=0;
if(b.ke<0)b.ke=0;
if(b.li<0)b.li=0;
if(strcmp(b.sex,"男")!=0&&strcmp(b.sex,"女")!=0&&strcmp(b.sex,"m")!=0&&strcmp(b.sex,"g")!=0&&
strcmp(b.sex,"nv")!=0&&strcmp(b.sex,"nan")!=0&&strcmp(b.sex,"mm")!=0&&strcmp(b.sex,"gg")!=0)
strcpy(b.sex,"男");
b.zf=b.yu+b.su+b.yin+b.ke+b.li;
b.pjf=(b.yu+b.su+b.yin+b.ke+b.li)/5;
cout <<"总分:"<<b.zf<<" 平均分:"<<b.pjf<<endl;
cout <<" 旷课(次):";a>>b.kk;cout<<" 迟到(次):";a>>b.qd;
return a;}
};
class guanli
{private:
void san()
{
string n;
ifstream a("rx.dat",ios::in|ios::binary);
ifstream v("stud.dat",ios::in|ios::binary);
if(a&&v)
{int k;
a.read((char*)&k,sizeof(k));
student s[k];
v.read((char*)&s[0],sizeof(s));
cout <<"你要删除谁的挡案:(名字)(输入0结束)";
while(cin >>n&&n!="0")
{string sg;
for(int i=0;i<k;i++)
if(n==s[i].get_name())
{cout <<"这是你指定的挡案:"<<endl<<s[i]<<endl;
cout <<"是否删除:(是的话输入0)(否则其他)"<<endl;
cin>>sg;
if(sg=="0")
{s[i].s();
student ss;
for(int i=0;i<k-1;i++)
for(int j=i+1;j<k;j++)
if((s+i)->zf<(s+j)->zf)ss=*(s+i),*(s+i)=*(s+j),*(s+j)=ss;
student s2[k];
int o=0;
for(int i=0;i<k;i++)
if((s+i)->zf>=0){*(s2+i)=*(s+i);o++;}
ofstream out("rx.dat",ios::out|ios::binary);
k-=1;
out.write((char*)&k,sizeof(k));
ofstream out2("stud.dat",ios::out|ios::ate|ios::binary);
out2.write((char*)&s2[0],sizeof(student)*o);
out.close();
out2.close();
cout <<"已删除."<<endl;
}
}
cout <<"你要删除谁的挡案:(名字)(输入0结束)";
}
}
else cout <<"打开文件失败."<<endl;
a.close();
v.close();
}
void zx()
{
ifstream a("rx.dat",ios::in|ios::binary);
ifstream v("stud.dat",ios::in|ios::binary);
if(a&&v)
{int k;
a.read((char*)&k,sizeof(k));
student s[k];
v.read((char*)&s[0],sizeof(s));
student a;
for(int i=0;i<k-1;i++)
for(int j=i+1;j<k;j++)
if((s+i)->zf<(s+j)->zf)a=*(s+i),*(s+i)=*(s+j),*(s+j)=a;
for(int i=0;i<k;i++){cout <<"No."<<i+1<<"->";s[i].zf_();}
cout <<"输入任意字符结束;";
char h[100];
cin>>h;
}
a.close();
v.close();
}
void xg()
{string n;
ifstream a("rx.dat",ios::in|ios::binary);
ifstream v("stud.dat",ios::in|ios::binary);
if(a&&v)
{int k;
a.read((char*)&k,sizeof(k));
student s[k];
v.read((char*)&s[0],sizeof(s));
cout <<"你要修改谁的挡案:(名字)(输入0结束)";
for(cin >>n;n!="0";)
{
for(int i=0;i<k;i++)
if(n==s[i].get_name())
{cout <<"这是你指定的挡案:"<<endl<<s[i]<<endl;
cin>>s[i];
ofstream d("stud.dat",ios::out|ios::ate|ios::binary);
if(d)
{
d.seekp(0,ios::beg);
d.write((char*)&s[0],sizeof(s));
d.close();
}
else cout <<"修改保存失败.";
}
cout <<"这次行动结束(无反应则无此人)"<<endl;
cout <<"你要修改谁的挡案:(名字)(输入0结束)";
cin >>n;
}
}
else cout <<"打开文件失败."<<endl;
a.close();
v.close();
}
void suru()
{
ifstream v("rx.dat",ios::in|ios::binary);
int k;
v.read((char*)&k,sizeof(k));
student a[k+1];
cin>>a[k];
v.close();
ifstream o("stud.dat",ios::in|ios::binary);
o.read((char *)&a[0],sizeof(student)*k);
ofstream i("stud.dat",ios::ate|ios::out|ios::binary);
if(i)
{
k++;
ofstream v2("rx.dat",ios::out|ios::binary);
v2.seekp(0,ios::beg);
v2.write((char*)&k,sizeof(k));
v2.close();
i.seekp(0,ios::beg);
i.write((char*)&a[0],sizeof(a));
i.close();
}
else cout<<"保存不成功:"<<endl;
}
void cx()
{
string n;
ifstream a("rx.dat",ios::in|ios::binary);
ifstream v("stud.dat",ios::in|ios::binary);
if(a&&v)
{int k;
student s[k];
v.read((char*)&s[0],sizeof(s));
k=sizeof(s)/sizeof(student);
if(k>0)
{cout <<"你要查询?(名字)(输入0结束)";
while(cin >>n&&n!="0")
{for(int j=0;j<k;j++)
if(n==s[j].get_name())cout <<"No."<<j+1<<s[j]<<endl;
cout <<"查询结束如果无显示则无这学生的记录."<<endl;
cout <<"你要查询谁?(名字)(输入0结束)";
}
}
}
else cout<<"查询失败!!";
a.close();
v.close();
}
public:
guanli()
{
int k=0;
ifstream a("rx.dat",ios::in|ios::binary);
ifstream d("stud.dat",ios::in|ios::binary);
if(a)
{a.read((char*)&k,sizeof(k));
a.close();
}
if(!d)
{student s[1];
ofstream v("stud.dat",ios::out|ios::binary);
v.write((char*)&s[0],sizeof(s));
v.close();
}
ofstream i("rx.dat",ios::out|ios::binary);
i.write((char*)&k,sizeof(k));
i.close();
_();
string g;
for(cin>>g;g!="0";cin>>g)
{
if(g=="1")suru();
if(g=="2")san();
if(g=="3"){if(k>0)cx();
else cout <<"没有记录"<<endl;}
if(g=="4")zx();
if(g=="5")xg();
ifstream h("rx.dat",ios::in|ios::binary);
h.read((char*)&k,sizeof(k));
h.close();
_();
}
}
}a;
下面是可执行程序的附件:
[url]http://rpg.blue/upload_program/files/xueshenguanli_80083631.rar[/url]
大家也可以到百度c++吧来我会在那出现的...
也告诉大家我在寒假就回来和大家一起讨论了... |
|