考勤统计程序的设计说明_第1页
考勤统计程序的设计说明_第2页
考勤统计程序的设计说明_第3页
考勤统计程序的设计说明_第4页
考勤统计程序的设计说明_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 附件6:理工大学学院课程设计说明书_2011_2012学年第_ 1_学期题目: 考勤统计程序 学 院: 计算机学院 专业班级: 10数字媒体技术3班 学 号:7学生: 罗威豪 指导教师: 夏力前 成 绩:时 间:2011-12-212011年12月21日17 / 21考勤统计程序摘 要学生考勤管理程序是作为学校考勤的基本管理,是学校对学生考勤管理的基本依据。开发考勤管理系统,正是完善学校信息化管理的重要环节。人工考勤已经很难满足学校规化管理的要求,面对庞大的信息量,该放手现在存在很多弊病。因此,简历现代化的只能考情管理系统势在必行。这样也大大减轻了考勤工作人员的工作量,提高了工作效率,使原本

2、复杂和鼓噪无味的工作变得简单而轻松。本文以“考勤信息管理系统”的设计与实现为例,阐述了考勤系统的设计开发的全过程。该系统侧重于学生信息管理和学生考勤信息的登记与查询。本系统使用的开发工具是vc+开发程序,通过已编制好的程序,完成对学生信息的输入、输出、插入、修改、删除操作,以与学生迟到、早退、旷课考勤信息的登记和查询,完善学校管理现代化,方便管理人员统计,考勤学生出勤情况,方便学生管理部门查询,考核学生的出勤率,准确地掌握学生出勤情况和相关资料,有效管理、掌握学生各项情况。关键词:考勤管理 visualC+ 文件保存 查询 统计目 录1需求分析11.1问题描述11.1.1基本要求12概要分析2

3、2.1数据需求22.1.1程序模块与之间的调用关系23 详细设计33.1类的设计33.2学生考勤系统的显示模块33.3学生考勤系统的查询模块43.4学生考勤系统的修改模块43.5学生考勤系统的删除模块63.6学生考勤系统的录入模块63.7学生管理系统的统计模块84程序测试105参考文献13心得体会14教师评语151需求分析1.1问题描述 考勤信息记录了学生的缺课情况,它包括:缺课日期、第几节课、课程名称(课程名称中不会出现空格)、学生、缺课类型(迟到、早退、请假与 旷课)。试设计考勤管理系统,使之能提供以下功能: 1)录入学生的缺课记录:从键盘输入数据(提示:为避免重复从键盘输入数据,测试时

4、可将数据存储在文件中,利用输入重定向功能读入),输入格式为: 缺课日期第几节课 课程名称学生 缺课类型 每行一条纪录。 例如: 080429 4 C+程序设计实验 三 迟到 080428 4 C+程序设计 四 旷课2)修改某个学生的缺课记录。3)查询某个学生的缺课情况。4). 某段时间旷课情况的统计。1.1.1基本要求 统要实现的是学生考勤管理系统,在设计时应该使系统便于考勤管理员、学生操作,系统应有的基本功能如下:(1)、学生考勤管理相关信息的管理功能;(2)、统计功能;(3)、查询功能;(4)、文件保存功能;2概要分析2.1数据需求本系统主要涉与的数据有学生缺课信息类和有关信息排序类:学生

5、缺课信息包括缺课时间、学生、课程名称、第几节、学生缺课类型(迟到、早退、旷课、请假)。有关信息排序类包括对课程排序和对排序。2.1.1程序模块与之间的调用关系图2.1 学生考勤管理系统中菜单函数的功能图3 详细设计3.1类的设计此系统设计了两个类,一个是record类,一个是records类。Record类完成对学生基本信息的声明与获取,包括学生、缺课日期、缺课课程名称、缺课课程类型、缺课节次。Record类的设计class recordpublic:void set(string d,into,string c,string s,int type)date.assign(d);/缺课日期cn

6、ame.assign(c);/缺课课程名称sname.assign(s);/学生this->cno=cno;/缺课节次this->type=type;/缺课类型void set(record re)date.assign(re.date);/获取缺课日期cname.assign(ame);/获取缺课课程名称sname.assign(re.sname);/获取学生this->cno=o;/获取缺课节次this->type=re.type;/获取缺课类型string date,cname,sname;/定义日期,课程名称,学生into,type;/定义缺课节次,缺课类型;3

7、.2学生考勤系统的显示模块void pri(records *r)/函数if(r->n=0)cout<<"记录为空!"<<endl;return;cout<<"n序号t缺课日期 节次t课程名称t学生t缺课"<<endl;for(int i=0;i<r->n;i+)cout<<i<<"t"<<flush;prione(r->ri);3.3学生考勤系统的查询模块void pri(records *r)/函数if(r->n=0)

8、cout<<"记录为空!"<<endl;return;cout<<"n序号t缺课日期 节次t课程名称t学生t缺课类型"<<endl;for(int i=0;i<r->n;i+)cout<<i<<"t"<<flush;prione(r->ri);3.4学生考勤系统的修改模块void edt(records *r)/函数if(r->n=0)cout<<"记录为空!"<<endl;retur

9、n;cout<<"请输入要修改缺课记录的学生: "<<flush;string t1,t3,t4;char tmp30;int t2,t5,flag=0;cin>>tmp;t1.assign(tmp);for(int i=0;i<r->n;i+)if(r->ri.sname=t1)flag=7;break;if(!flag)cout<<"查无此学生!"<<endl;return;t1=r->ri.date;t2=r->o;t3=r->ame

10、;t4=r->ri.sname;t5=r->ri.type;cout<<"请输入要修改的项目:n(1.缺课日期 2.缺课节次 3.缺课名称 4.学生 5.缺课类型 6.全部) "<<flush;e0:cin>>flag;switch(flag)case 1:goto e1;case 2:goto e2;case 3:goto e3;case 4:goto e4;case 5:goto e5;case 6:goto e1;default:goto e0;e1:cout<<"请输入缺课日期: (例如10021

11、6) "<<flush;cin>>t1;if(flag!=6)goto e6;e2:cout<<"请输入缺第几节课: "<<flush;cin>>t2;if(flag!=6)goto e6;e3:cout<<"请输入缺课名称: "<<flush;cin>>t3;if(flag!=6)goto e6;e4:cout<<"请输入缺课学生: "<<flush;cin>>t4;if(flag!=6)go

12、to e6;e5:cout<<"请输入缺课类型: (1.迟到 2.早退 3.请假 4.旷课) "<<flush;cin>>t5;e6:r->ri.set(t1,t2,t3,t4,t5);char yn;cout<<"保存修改? (y/n) "<<flush;cin>>yn;if(yn='y')wt(r);else return;3.5学生考勤系统的删除模块void del(records *r)/函数if(r->n=0)cout<<"

13、记录为空!"<<endl;return;cout<<"请输入要删除的记录的序号: (输入-1删除全部) "<<flush;int flag;cin>>flag;if(flag>r->n-1&&flag<-1)cout<<"不存在所要删除的记录!"<<endl;return;else if(flag=-1)r->n=0;elsefor(int i=flag;i<r->n-1;i+)r->ri.set(r->ri+

14、1);r->n-;char yn;cout<<"保存修改? (y/n) "<<flush;cin>>yn;if(yn='y')wt(r);else return;3.6学生考勤系统的录入模块void input(records *r)/录入string t1,t3,t4;int t2,t5,flag=0;char yn;cout<<"请输入学生缺课记录:"<<endl;m1:cout<<"请输入缺课日期: (例如100216) "<&l

15、t;flush;cin>>t1;if(!(timechk(t1)goto m1;m2:cout<<"请输入缺第几节课: "<<flush;cin>>t2;if(t2<1|t2>10)cout<<"节次录入有误! 请重新录入: "<<endl;goto m2;cout<<"请输入缺课名称: "<<flush;cin>>t3;cout<<"请输入缺课学生: "<<flush;c

16、in>>t4;m3:cout<<"请输入缺课类型: (1.迟到 2.早退 3.请假 4.旷课) "<<flush;cin>>t5;if(t5<1|t5>4)cout<<"类型输入有误! 请重新录入: "<<endl;goto m3;for(int i=0;i<r->n;i+)if(r->ri.date=t1&&r->o=t2&&r->ame=t3&&r->ri.snam

17、e=t4&&r->ri.type=t5)cout<<"该条记录已存在,是否添加为新记录? (y/n) "<<flush;n1:cin>>yn;if(yn='y')break;else if(yn='n')goto n2;else goto n1;r->rr->n+.set(t1,t2,t3,t4,t5);n2:cout<<"是否继续输入? (y/n) "<<flush;n3:cin>>yn;if(yn='y&#

18、39;)goto m1;else if(yn='n')cout<<"保存修改? (y/n) "<<flush;cin>>yn;if(yn='y')wt(r);else return;else goto n3;3.7学生管理系统的统计模块void search_s(records *r)/统计if(r->n=0)cout<<"记录为空!"<<endl;return;records *r1=new records();g1:cout<<"请

19、输入要检索的时间围: (例如080610-080612) "<<flush;string tmp,ld,hd;cin>>tmp;ld.assign(tmp.substr(0,6);hd.assign(tmp.substr(7,6);if(!timechk(ld)|!timechk(hd)goto g1;for(int i=0;i<r->n;i+)if(r->ri.date pare(ld)>=0&&r->ri.date pare(hd)<=0&&r->ri.type=4)r1->r

20、r1->n+.set(r->ri);cout<<"请选择统计方式: (1.学生旷课情况降序显示 2.课程旷课情况降序显示)"<<flush;g2:cin>>i;switch(i)case 1:cout<<"n在"<<ld<<"到"<<hd<<"期间学生旷课情况如下:"<<endl;r1->order_s();break;case 2:cout<<"n在"<<ld<<"到"<<hd<<"期间课程旷课情况如下:"<<endl;r1->order_c();break;default:goto g2;4程序测试1程序开始运行的界面2程序显示功能的界面3程序录入功能的界面4程序查询功能的界面5程序修改功能的界面6程序

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论