考勤专业系统设计.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 考勤 专业 系统 设计
- 资源描述:
-
学 号: 编 号: B04731017 实训报告 教 学 院 计算机 课程名称 大型软件项目实训 专 业 网络工程 班 级 二班 姓 名 何娟 年 9 月 20 日 一.实训内容 1.实训目与规定 1.1、目: (1)规定学生达到纯熟掌握C++语言基本知识和技能; (2)基本掌握面向对象程序设计基本思路和办法; (3)可以运用所学基本知识和技能,解决简朴面向对象程序设计问题。 1.2、基本规定: (1)规定运用面向对象办法以及C++编程思想来完毕系统设计; (2)规定在设计过程中,建立清晰类层次; (3)在系统中至少要定义四个类,每个类中要有各自属性和办法; (4)在系统设计中,至少要用到面向对象一种机制。 1.3、创新规定: 在基本规定达到后,可进行创新设计,如依照查找成果进行修改功能。 2项目背景 2.1对既有系统分析 当前高校学生上课考勤管理都是以任课教师上课点名,记录学生上课状况。对于请假需要通过向辅导员递交请假条并获得批准方能生效。这种模式在当前高校管理中暴露了不可避免弊端: a) 学生对自己整个学期上课出勤状况没有整体记录信息 b) 班主任及辅导员对本班学生整个学期上课出勤状况不易查看; c) 学生请假不以便,如:学生生病或有其她急事需请假,必要找辅导员批假条,而辅导员事情比较多不也许经常坐在办公室里等着; d) 在这种方式下,由于学生考勤信息需要多次登记、重复输入,因而出错率较高,效率也低下。 e) 各学院与学生考勤管理中心各自记录所有学生考勤状况,对于各考勤表,考勤管理员要重复执行登记、核对、记录,稍不注意就出错,对于错误改正,更是麻烦。挥霍人力并且效率低。 f) 数据不能共享,无法互相运用,互相参照,导致大量数据冗余。 g) 难避免考勤中弄虚作假现象。 在这种状况下,学生考勤管理中心只能一次又一次地扩大员工队伍,盼望借此提高效率。但是事实上,工作效率不但没有改进,工资支出却年年增高,增长了学校经济支出。 在此状况下,开发一种新、高效、更加灵活以便、能实时记录学生考勤信息学生考勤管理系统迫在眉睫。 2.2解决流程和数据流程 人工考勤系统重要涉及请假系统,考勤系统,管理中心,重要供学生,辅导员,任课教师,班主任所使用。如下为系统流程图: 在请假系统中,学生想要请假需要向辅导员教师写请假条并阐明因素,获得辅导员批准才干请假成功,否则失败。而学生请假状况记录在请假条存根上,在向任课教师请假时也需自己或请同窗向教师出示请假条并阐明因素,由任课教师在学生名单上记录为“请假”。辅导员、任课教师、学生只有通过查询请假条存根或考勤表才可懂得请假状况。 2.3局限性 该系统会挥霍诸多时间并且会很麻烦,当学生需要请假时必要找到辅导员写请假条才行,此外课堂上由于是由任课教师通过点名方式考勤因此会导致混乱不清更问题。因而,开发一种新高校学生考勤管理系统迫在眉睫,同步,咱们系统也应运而生。 3.功能需求 这是一种记录学生上课状况一种考勤系统,以便记录、查询、记录学生考勤信息。学生考勤管理系统用于记录学生缺课状况,它涉及:缺课日期、第几节课、课程名称、学生姓名、学号、缺课类型(迟到、早退、请假及旷课)。优化界面使学生使用更加便捷,在保证信息共享同步又注重了信息安全性而不被篡改。该系统除了用于学生课堂考勤,还可用于学生出早操状况考核,开会出勤状况考核等。并且可以进一步开发,与教务处学生成绩数据库相连接,将考勤成果作为平时成绩或期末成绩及评优参照。此外该系统还可作为请假系统代替老式写请假条请假问题。在安全面,登陆系统时,需验证身份和密码,只有通过验证身份才干进入系统进行有关操作。系统间信息传递也需要进行安全设立,以防止学生考勤信息被恶意篡改。重要分为6大模块,分为录入学生缺课记录、修改某个学生缺课记录、查询某个学生缺课状况、记录旷课学生姓名及旷课节数、记录旷课课程及旷课人次和系统以菜单方式工作。 详细需求如下: 考勤信息记录了学生缺课状况,它涉及:缺课日期、第几节课(持续用begin-end形式表达)、课程名称(课程名称中不会浮现空格)、学生姓名、缺课类型(迟到、早退、请假及旷课)。试设计考勤管理系统,使之能提供如下功能: 1).录入学生缺课记录:从键盘输入数据(提示:为避免重复从键盘输入数据,测试时可将数据存储在文献中,运用输入重定向功能读入),输入格式为:缺课日期 第几节课 课程名称学生姓名 缺课类型 每行一条纪录。 例如: -04-29 2-4 C++面向对象程序设计 李强 迟到 -04-28 2-4 高数 马志 旷课 2).修改某个学生缺课记录:可以对缺课纪录任意某些进行修改,然后显示一下修改后纪录。 3).查询某个学生缺课状况:查询成果按照日期升序排序,同一天内按照所缺课程时间升序排序。 4).记录某段时间内(以天为单位),旷课学生姓名及旷课节数,查询成果先按旷课节数降序排序,旷课节数相似窗生按姓名升序排序; 5).记录某段时间内,有学生旷课课程及旷课人次,按旷课人次由多到少排序,旷课人次相似课程按课程名称升序排序; 6).系统以菜单方式工作。(所谓菜单指顾客可以自由选取所要执行功能) 学生可以通过以上功能录入信息、修改信息、查询信息、整顿记录出所要理解信息,除了要实现上述基本功能之外,本系统还应当在细节上下工夫,使顾客使用以便,在使用过程中保持一种高兴心情。学生考勤管理系统有广大顾客群,这其中有教师、有教务处主任、有公司管理人员,也可以供应普通顾客使用。总之该系统可以满足顾客需求,实现对其管理人员考勤工作。 4、总体设计 学生考勤管理系统包括五个大功能,分别是:录入学生缺课信息、修改学生缺课信息、查询某个学生缺课状况、记录某段时间内(以天为单位),旷课学生姓名及旷课节数和记录某段时间内,有学生旷课课程及旷课人次。学生缺课信息重要包括缺课日期,第几节课、课程名称,学生姓名,缺课类型。 在录入学生缺课信息时依照系统提示逐个输入。每输入完一条信息,系统会提示与否继续输入,顾客可以选取继续或返回主菜单。 在修改学生缺课信息时,顾客一方面输入要修改学生姓名,系统会检索如果系统中有该学生有关信息则系统一方面会提示顾客修改该学生那一某些信息,顾客可自行选取。如果系统中没有该学生有关信息,则系统会给有关提示,顾客可以选取继续输入要修改学生姓名或选取退出返回主菜单。 在查询学生缺课信息时,顾客先输入要查询学生姓名,系统检索判断与否存在该 学生信息然后做出相应提示。总之,顾客可以以便在系统提示下进行使用。 学生考勤管理系统中功能模块图: 修改某学生缺课信息 查询某学生缺课信息 记录某段时间内旷课学生姓名及旷课节数 记录某段时间内,有学生旷课课程及旷课人次 录入学生缺课信息 学生考勤管理系统 录入缺课学生姓名、缺课日期、缺课节次、缺课课程名称、缺课类型 修改某学生缺课日期、缺课节次、缺课课程名称、缺课类型 查询某学生缺课日期、缺课节次、缺课课程名称、缺课类型 准时间升序显示旷课学生姓名及旷课节数 准时间升序显示有学生旷课课程及旷课人次 5、详细设计 我在咱们小组中负责是修改某学生缺课信息功能和记录学生旷课课程及旷课人次等这两大功能模块。 1、 修改某学生缺课信息功能模块图 修改某学生缺课信息功能 修改某学生缺课节次 修改某学生缺课日期 修改某学生缺课课程 修改某学生缺课类型 图1 学生考勤管理系统修改学生缺课信息功能图 2、记录某段时间内,有学生旷课课程及旷课人次功能模块 记录某段时间内,有学生旷课课程及旷课人次 记录某段时间内,有学生旷课课程及旷课人次功能 显示某段时间内,有学生旷课课程及旷课人次 返回菜单 图2 记录学生旷课课程及旷课人次功能图 此系统不但可以直接记录某段时间内旷课课程及旷课人次,除此之外,还可以查看学生旷课课程及旷课人次。 下面是某些代码分析 //时间类 class time { public: time(int y = 0,int m = 0,int d = 0) { 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<n;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); int getjs(xinxi st1[],int n,int j); int setjs(int js = 0) { jieshu = js; } char qstn[20]; private: int jieshu; static int qst;//静态数据成员 }; /菜单函数 void caidan() { system("color A"); cout << "*************************************************************" << endl; cout << "* 学生考勤管理系统 *" << endl; cout << "*************************************************************" << endl;cout << "1.-------------录入学生缺课记录---------------------------*" << endl;cout << "2.-------------修改学生缺课记录---------------------------*" << endl; cout << "3.-------------查询学生缺课状况---------------------------*" << endl; cout << "4.--------记录某段时间内旷课学生姓名及旷课节数--------------*" << endl; cout << "5.--------记录某段时间内旷课课程及旷课人次----------------*" << endl; cout << "6.----------------退出系统----------------------------------*" << endl; } //输入函数 int shuru(xinxi st1[]) { char a; cout << "------输入开始!----" << endl; do{ q++; cout << "请输入学生姓名" << endl; cin >> name; st1[q].setname(name); cout << "请输入课程名称" << endl; cin >> kechen; st1[q].setkechen(kechen); cout << "请输入缺课日期" << endl; cin >> y >> m >> d; st1[q].settime(y,m,d); cout << "请输入缺课类型" << endl; cin >> queke; st1[q].setqklx(queke); cout << "请输入缺课节次" << endl; cin >> jieci; st1[q].setjieci(jieci); cout << "与否还要继续输入:(y/n)" << endl; cin >> a; } while (a == 'y'); return q + 1; } //修改函数 void xiugai(xinxi st1[],int n) { int k = 1,j = 0,a[10]; int flgh; int h; while (k == 1) { cout << "请输入你要修改缺课记录学生姓名" << endl; cin >> name; flgh = 0; for (int i = 0;i<n;i++) if (strcmp(name,st1[i].getname()) == 0) do{ a[j] = i; cout << "1.修改日期2.修改节次3.修改课程名称4.修改缺课类型" << endl; cout << "请输入要选取数值(1,2,3,4)" << endl; int b; cin >> b; if (b == 1) { cout << "请输入新日期" << endl; cin >> y >> m >> d; st1[i].settime(y,m,d); } else if (b == 2) { cout << "请输入新节次" << endl; cin >> jieci; st1[i].setjieci(jieci); } else if (b == 3) { cout << "请输入新课程名称" << endl; cin >> kechen; st1[i].setkechen(kechen); } else if (b == 4) { cout << "请输入新缺课类型" << endl; cin >> queke; st1[i].setqklx(queke); } flgh = 1;j++; } while (b<1 || b>4); if (flgh == 0) { cout << "没有你要找学生姓名,请重试要退出请按0" << endl; cin >> k; } else { cout << "还要继续吗(1\0)退出请按0" << endl; cin >> k; } } for (int i = 0;i<j;i++) { h = a[i]; xiansi(st1[h]); } } 二.项目调试与测试: 1.系统调试 程序编写完毕后,我进行了程序调试。调试过程中,浮现了如下问题:当录入学生缺课信息时,浮现了无法退出录入函数状况,重要因素是输入函数中while循环语句没有设立跳出循环条件。除此之外,修改某学生缺课信息时,如果没有该学生缺课信息,系统没有提示要顾客没有该学生信息,也没有建议顾客重新输入要修改学生姓名。由此我发现了该系统修改学生缺课信息局限性。于是,我对修改函数进行了修改与完善。在该函数中,我设立了if语句用来判断系统中与否存有顾客要修改学生缺课信息。如果没有,则提示顾客没有该学生缺课信息,顾客可以选取继续输入要修改学生姓名或者退出修改环节,可以在 循环语句中变化循环进行条件从而终结循环。至于在修改后显示该学生缺课信息,运营时发现系统并没有做到这一点,对源代码检查之后发现是修改函数中显示函数调用出了点问题,显示函数实参有误,应当把要修改缺课信息学生所在信息类对象作为实参,然后用显示函数形参引用实参对象,通过对象调用信息类成员函数,从而实现显示功能。至于该系统查询功能实现,在调试时发现尚有欠缺,当随便输入一种学生姓名时,系统没有显示该学生缺课信息,也没有提示系统没有找到该学生关于信息,通过在查询函数while循环中加入一种if 条件语句后,系统实现了提示顾客功能,如果系统中没有你要查询学生缺课信息,系统将会提示顾客,顾客可以继续输入要查询学生姓名也可以通过按系统设立退出键选取退出查询环节。至于两个记录功能至今没有完善,重要是特定期间学生缺课次数和课程缺课人次记录问题尚待解决,现如今只完毕了一两条学生缺课信息记录。重要问题是特定期间这个前提条件对我导致了一定障碍。对系统中存储信息进行查找和记录运用对象指针比较以便,但我没有使用,也算有点遗憾。在调试过程中我浮现最严重问题是函数形参引用对象数组,成果系统提示将近几十个错误,在我把函数形参改为对象数组后,错误一下减少了诸多。尚有比较突出问题是整个程序不知哪掉了个 }号系统会提示有错,但就不懂那专业术语啥意思。尚有就是我觉得派生类公有继承基类保护成员在派生类内为公有成员,可编译时才发现是不对。通过认真调试,我发现我有了收获。 2.运营成果分析 1.刚进入系统时界面 这是启动系统时进入界面,顾客可以依照规定选取不同菜单项,输入相应数字即可,然后再依照提示进行信息录入。 2.这是录入学生缺课记录界面 这个是用来录入学生缺课记录,用来实现录入缺课信息功能,输入学生姓名、缺课课程名、缺课日期、缺课类型以及缺课节次等信息用来录入。 3.这是录入学生缺课记录界面 这是修改缺课记录功能,要修改相应记录,就输入相应名字,以供依照姓名用来查找相应缺课记录信息,找到相应记录之后,就可以修改缺课记录了。 4.记录旷课学生姓名及旷课节数界面 这是用来显示所有缺课记录功能,它是针对性显示,只显示所有缺课记录学生姓名及旷课节数。 5.记录旷课课程及旷课人次界面 这是用来显示所有缺课记录功能,它是针对性显示,只显示所有旷课记录旷课课程及旷课人次。 三.实训总结 在这次程序设计过程中,咱们进行了为期四周学习与实践,在第一天上这门程设计是在星期六,咱们怀着对着这门课未知与憧憬以及也有点小小不情愿来上这门课程设计,毕竟是在周末日子里还得来上这门课,难免心里有点抱怨。刚开始上课,教师给咱们解说了某些上这门课基本知识,印象最深刻就是如何封装C++类,封装好一种类后就可以调其中封装函数,极大地减少了咱们工作量,提高了咱们工作效率,觉得这个知识点还是很有用。 在写好了.c源文献后,编译时候,老是报错,但是幸好网络是个强大后盾,在通过百度之后,解决了所发生错误问题,成果如愿以偿在屏幕上打印出了咱们所涉及图片,真是功夫不负有心人啊。 在这次课程设计中,咱们学习了诸多此前不懂得知识,感觉这次课程设计比较难,但是也只是编写,封装、调用某些函数,也不是太难,通过这次课程设计,我觉得受益匪浅,既是对此前知识一种回顾与加强,同步也学习到诸多新知识,获得了很大进步。 成绩评估表 教师评语 考勤成绩: 占总成绩比例10% 平时成绩: ,占总成绩比例20% 实训报告成绩: ,占总成绩比例70% 实训总成绩: 指引教师签字: 年 月 日展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




考勤专业系统设计.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/3025158.html