考勤系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实训报告
学 号:
2
编 号:
B04731017
教 学 院 计算机 课程名称 大型软件项目实训
专 业 网络工程 班 级 二班 姓 名
何娟
2016 年 9 月 20 日
便、能实时记录学生考勤信息的学生考勤管理系统迫在眉睫。
2.2处理流程和数据流程
人工的考勤系统主要包括请假系统,考勤系统,管理中心,主要供学生,辅导员,任课老师,班主任所使用。如下为系统流程图:
在请假系统中,学生想要请假需要向辅导员老师写请假条并说明原因,获得辅导员的同意才能请假成功,否则失败。而学生的请假情况记录在请假条的存根上,在向任课老师请假时也需自己或请同学向老师出示请假条并说明原因,由任课老师在学生名单上记录为“请假”。辅导员、任课老师、学生只有通过查询请假条的存根或考勤表才可知道请假情况。
2.3局限性
该系统会浪费很多的时间而且会很麻烦,当学生需要请假时必须找到辅导员写请假条才行,另外课堂上由于是由任课老师通过点名的方式考勤所以会造成混乱不清更问题。因此,开发一个新的高校学生考勤管理系统迫在眉睫,同时,我们的系统也应运而生。
3.功能需求
这是一个记录学生上课情况的一个考勤系统,方便记录、查询、统计学生考勤信息。学生考勤管理系统用于记录学生的缺课情况,它包括:缺课日期、第几节课、课程名称、学生姓名、学号、缺课类型(迟到、早退、请假及旷课)。
优化界面使学生使用更加便捷,在保证信息共享的同时又注重了信息的安全性而不被篡改。该系统除了用于学生课堂的考勤,还可用于学生出早操情况的考核,开会出勤情况的考核等。而且可以进一步开发,与教务处学生成绩数据库相连接,将考勤结果作为平时成绩或期末成绩及评优的参考。另外该系统还可作为请假系统代替传统写请假条请假的问题。在安全方面,登陆系统时,需验证身份和密码,只有通过验证的身份才能进入系统进行相关的操作。系统间信息的传递也需要进行安全设置,以防止学生的考勤信息被恶意篡改。主要分为6大模块,分为录入学生的缺课记录、修改某个学生的缺课记录、查询某个学
{
year = y; month = m; day = d;
}
~time(){}
protected:
int year, month, day;
};
这是一个基类,用来记录时间信息,记录年份,月份以及时刻点,以供其它类来进行派生。
//信息类
class xinxi :public time
{
public:
xinxi(){ tiaoshu++; }
~xinxi(){ tiaoshu--; }
void setname(char *n){ strcpy_s(name, n); }
void settime(int y, int m, int d){ year = y; month = m; day = d; } void setqklx(char *qk){ strcpy_s(queke, qk); }
void setjieci(char *jc){ strcpy_s(jieci, jc); }
void setkechen(char *kc){ strcpy_s(kechen, kc); }
char *getname(){ char *n; n = name; return n; }
char *getqklx(){ char *qk = queke; return qk; }
char *getjieci(){ char *jc; jc = jieci; return jc; }
char *getkechen(){ char *gk; gk = kechen; return gk; }
int *gettime();
private:
char name[20];//姓名
char jieci[3], kechen[10], queke[10];
int tm[3];
static int tiaoshu;
};
这是一个信息类,用来记录学生的姓名,以及上课课程名,还有缺课课程名和节次,以供后期查询。
//缺课课程类
class qkechen :public xinxi
{
public:
qkechen(){ kcshu++; }
~qkechen(){ kcshu--; }
int getrc(xinxi st1[], int n, int j);
char qkn[20];//公有数据成员
private:
int renci;
static int kcshu;//静态数据成员
};
int qkechen::kcshu = 0;
int qkechen::getrc(xinxi st1[], int n, int j)
{
renci = 0;
renci++;
for (int i = 0; i if (*(st1[i + 1].gettime() + 1) == *(st1[j].gettime() + 1) && *(st1[i + 1].gettime() + 2) == *(st1[j].gettime() + 2)) if (strcmp(qkn, st1[i].getkechen()) == 0) renci++; return renci; } //缺课学生类 class qstu :public xinxi { public: qstu(){ qst++; } ~qstu(){ qst--; } void print(xinxi &st1);