设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 1982|回复: 8
打印 上一主题 下一主题

[原创]学生管理系统框架

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-3 04:04:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
网线刚刚段了1个小时,不能上网.就写了个学生管理系统的框架,大家给些意见,我发现我越来越喜欢写框架了,呵呵~!
[code]
//课程类
class Course
{
int courseNo; //课程编号
string cName;//课程名字
int credit; //学分
int score; //成绩
public:
void set_cName(string na){cName=na;} //设置课程名
string get_cName(){return cName;} //获取课程名
int get_credit(){return credit;} //获取学分
int get_score(){return score;} //获取成绩
void change(); //修改课程信息
};
//学生类
class Student
{
string ID; //学号
string name; //姓名
string address; //住址
int age; //年龄
int courseNo; //选修课程数
vector<Course>c; //课程信息
public:
void set_courseNo(int num){courseNo=num;} //设置课程数
int get_courseNo(){return courseNo;} //获取课程数
void add_Course(); //增加一门课程
void sub_Course(); //减少一门课程
void change(); //修改一个学生的信息
friend void CClass::change(string id); //修改班级信息<==>修改学生信息的总和
};
//班级类
class CClass
{
vector<Student>s; //班上学生信息
int cNo; //班号
string cFname; //班级信息存储路径
public:
void set_cNo(int n){cNo=n;}//设置班号
void setFname()
//设置存储路径
{
cout<<"输入存储的路径:";
string f;cin>>f;
cFname=f;
}
string getFname()const{return cFname;} //获取存储路径
void setAllStudent(ifstream &is); //加载全班学生信息
void saveAllStudent(ofstream &os); //保存全班学生信息
void change(string id); //修改一个学生的信息(根据学号)
void addInform(); //增加一个学生
void delInform(); //删除一个学生
void checkClass(); //查看班级信息
friend void newClass(); //新建班级信息
friend void delClass(int cnum); //删除班级信息(根据班号)=>根据cnum=CClass.cNo;
};
//新建班级信息
void newClass();
//删除班级信息
void delClass(int cnum);
2#
发表于 2009-11-3 04:04:15 | 只看该作者
来坐客
回复 支持 反对

使用道具 举报

3#
发表于 2009-11-3 04:04:16 | 只看该作者
路过,看看
回复 支持 反对

使用道具 举报

4#
发表于 2009-11-3 04:04:17 | 只看该作者
已楼主学C++时间之短写出这么清晰的设计已经十分不易了,在论坛里我还没见过有谁进步这么快。
提一点小小意见:就是课程类Course不应该是完全属于学生类Student的,因为大家很可能上同样的课,把int courseNo; string cName; int credit;重复了很多次,一是没有必要,二是浪费了内存,三是单门课的成绩排名很难搞。可能再建一个CourceInfo的类比较好,学生那只留下课程ID和成绩,或者干脆什么都不留只剩一个对那门课的指针。
这类问题怎么写都不能说最好,标准办法就是挂上数据库,所有这些乱七八糟的关系都轻易举的搞定了。
回复 支持 反对

使用道具 举报

5#
发表于 2009-11-3 04:04:18 | 只看该作者
谢谢抬举,我也只是一知半解,偶还没开始学数据库,慢慢来吧,还需要兄弟你多多帮助哦
回复 支持 反对

使用道具 举报

6#
发表于 2009-11-3 04:04:19 | 只看该作者
提一点小小意见:就是课程类Course不应该是完全属于学生类Student的,因为大家很可能上同样的课,把int courseNo; string cName; int credit;重复了很多次,一是没有必要,二是浪费了内存,三是单门课的成绩排名很难搞。可能再建一个CourceInfo的类比较好,学生那只留下课程ID和成绩,或者干脆什么都不留只剩一个对那门课的指针。
我一开始也想过做排名,但是想到大学都没有排名,而且没个学生的信息都是独立的,所以就这样写了.至于course类,我觉得不管怎么样都没有浪费内存,因为我是作为大学里的学生成绩模式写的,你是说按照高中那样,一门课程的名字下面写下所以的学生成绩,那个比较古老了,所以我才这样用的
回复 支持 反对

使用道具 举报

7#
发表于 2009-11-3 04:04:20 | 只看该作者
想问问SQL要什么做铺垫,想多学点宝贝
回复 支持 反对

使用道具 举报

8#
发表于 2009-11-3 04:04:22 | 只看该作者
什么叫SQL用什么做铺垫呀?装个Microsoft Access或者MySQL之类的,在VC上用ODBC连接,对于这种程序个以很方面的实现各种功能。
回复 支持 反对

使用道具 举报

9#
发表于 2009-11-3 04:04:24 | 只看该作者
可以直接学SQL,而不用掌握其他的知识?
回复 支持 反对

使用道具 举报

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

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-18 12:43 , Processed in 0.116497 second(s), 9 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

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