设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3627|回复: 4
打印 上一主题 下一主题

[原创发布] 学生管理系统

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
9 小时
注册时间
2007-8-22
帖子
95
跳转到指定楼层
1
发表于 2009-6-12 08:00:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

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++吧来我会在那出现的...
也告诉大家我在寒假就回来和大家一起讨论了...
不要麻仁.

Lv1.梦旅人

梦石
0
星屑
50
在线时间
9 小时
注册时间
2007-8-22
帖子
95
2
 楼主| 发表于 2009-6-12 08:00:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 后知后觉 于 2009-8-18 00:53 编辑

重复内容编辑掉
不要麻仁.

Lv2.观梦者

傻♂逼

梦石
0
星屑
374
在线时间
1606 小时
注册时间
2007-3-13
帖子
6562

烫烫烫开拓者

3
发表于 2008-1-7 20:31:36 | 只看该作者
规律?
建议你用VB
语法可读性在好的就是他
哎呀,蛋疼什么的最有爱了
回复 支持 反对

使用道具 举报

Lv5.捕梦者

御灵的宠物

梦石
12
星屑
8438
在线时间
88 小时
注册时间
2006-12-11
帖子
3148

第2届TG大赛亚军

4
发表于 2008-1-8 05:16:07 | 只看该作者
去年学了C++
今年选了数据结构,今天第一节课教授就跟我说
“C++是一门很垃圾的语言,如果你学了赶快忘记它”
我的Lofter:http://nightoye.lofter.com/

回复 支持 反对

使用道具 举报

Lv2.观梦者

天仙

梦石
0
星屑
620
在线时间
184 小时
注册时间
2008-4-15
帖子
5023

贵宾

5
发表于 2008-1-8 05:35:45 | 只看该作者
LZ的码可以整理一下{/gg}{/pz}

看的眼睛好痛…

我在学校也是修C++的(我们学校也就只有C++)

{/qiang}支持一下
VA脚本开工中...
偷窃脚本1.0 - 已完成
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-24 20:58

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表