c考勤管理课程设计报告_第1页
c考勤管理课程设计报告_第2页
c考勤管理课程设计报告_第3页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

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

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

3、 基本要求 12 概要分析 22.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 问题描述考勤信息记录了学生的缺课情况,它包括:缺课日期、第几节课、课程 名称(课程名称中不会出现空格) 、学生、缺课类型(迟到、早退、请假及 旷课)。 试设计考勤管理系统,使之能

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

5、4)、文件保存功能;2概要分析2.1数据需求本系统主要涉及的数据有学生缺课信息类和有关信息排序类:学生缺课信息包括缺课时间、学生、课程名称、第几节、学生缺课类型(迟到、早退、旷课、 请假)。有关信息排序类包括对课程排序和对排序。程序模块及之间的调用关系图2.1学生考勤管理系统中菜单函数的功能图3 详细设计3.1 类的设计此系统设计了两个类,一个是record类,一个是records类。Record类完成对 学生基本信息的声明与获取,包括学生、缺课日期、缺课课程名称、缺课课程类 型、缺课节次。Record 类的设计class recordpublic:void set(string d,into

6、,string c,string s,int type)date.assign(d);/ 缺课日期 cname.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;/

7、 获取缺课类型string date,cname,sname;/ 定义日期,课程名称,学生 into,type;/ 定义缺课节次,缺课类型;3.2 学生考勤系统的显示模块void pri(records *r)/ 函数if(r->n=0)cout<<" 记录为空 !"<<endl;return;cout<v"n序号t缺课日期 节次t课程名称t学生t缺课"<<endl;for(int i=0;i<r->n;i+)cout<<i<<"t"<<f

8、lush;prione(r->ri);3.3 学生考勤系统的查询模块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.4 学生考勤系统的修改模块void

9、edt(records *r)/ 函数if(r->n=0)cout<<" 记录为空 !"<<endl;return;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<<"

10、; 查无此学生 !"<<endl; return;t1=r->ri.date;t2=r->o;t3=r->ame;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

11、4:goto e4;case 5:goto e5;case 6:goto e1;default:goto e0;e1:cout<<" 请输入缺课日期 : ( 例如 100216) "<<flush;cin>>t1;if(flag!=6)goto e6;e2:cout<<" 请输入缺第几节课 : "<<flush;cin>>t2;if(flag!=6)goto e6;e3:cout<<" 请输入缺课名称 : "<<flush;cin>&

12、gt;t3;if(flag!=6)goto e6;e4:cout<<" 请输入缺课学生 : "<<flush;cin>>t4; if(flag!=6)goto 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

13、>>yn;if(yn='y')wt(r);else return;3.5 学生考勤系统的删除模块void del(records *r)/ 函数if(r->n=0)cout<<" 记录为空 !"<<endl; return;cout<<" 请输入要删除的记录的序号 : ( 输入 -1 删除全部 ) "<<flush; int flag;cin>>flag;if(flag>r->n-1&&flag<-1)cout<<&

14、quot; 不存在所要删除的记录 !"<<endl; return;else if(flag=-1)r->n=0;elsefor(int i=flag;i<r->n-1;i+) r->ri.set(r->ri+1);r->n-;char yn;cout<<" 保存修改 ? (y/n) "<<flush;cin>>yn;if(yn='y')wt(r);else return;3.6 学生考勤系统的录入模块string t1,t3,t4;int t2,t5,flag=0

15、;char yn;cout<<" 请输入学生缺课记录 :"<<endl; m1:cout<<" 请输入缺课日期 : ( 例如 100216) "<<flush;cin>>t1;if(!(timechk(t1)goto m1;m2:cout<<" 请输入缺第几节课 : "<<flush;cin>>t2;if(t2<1|t2>10)cout<<" 节次录入有误 ! 请重新录入 : "<<e

16、ndl;goto m2;cout<<" 请输入缺课名称 : "<<flush;cin>>t3;cout<<" 请输入缺课学生 : "<<flush;cin>>t4;m3:cout<<" 请输入缺课类型 : (1. 迟到 2. 早退 3. 请假 4. 旷课) "<<flush; cin>>t5;if(t5<1|t5>4)cout<<" 类型输入有误 ! 请重新录入 : "<<

17、endl;goto m3;for(int i=0;i<r->n;i+)if(r->ri.date=t1&&r->o=t2&&r->ame=t3&&r->ri. sname=t4&&r->ri.type=t5)cout<<" 该条记录已存在 , 是否添加为新记录 ? (y/n) "<<flush; n1:cin>>yn; if(yn='y')break; else if(yn='n')

18、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')goto m1;else if(yn='n')cout<<" 保存修改 ? (y/n) "<<flush; cin>>yn;if(yn='y')wt(r);else return;else goto n3;3.

19、7 学生管理系统的统计模块void search_s(records *r)/ 统计if(r->n=0)cout<<" 记录为空 !"<<endl;return;records *r1=new records();g1:cout<<" 请输入要检索的时间围 : ( 例如 080610-080612) "<<flush; string tmp,ld,hd;cin>>tmp; ld.assign(tmp.substr(0,6); hd.assign(tmp.substr(7,6); if(!t

20、imechk(ld)|!timechk(hd)goto g1;for(int i=0;i<r->n;i+) if(r->ripare(ld)>=0&&r->ripare(hd)<=0&&r->ri.type=4) r1->rr1->n+.set(r->ri);cout<<" 请选择统计方式 : (1. 学生旷课情况降序显示 2. 课程旷课情况降序 显示 )"<<flush;g2:cin>>i;switch(i)case 1:cout«&q

21、uot;n在"vvldvv"到"vvhdvv"期间学生旷课情况如下:"<<endl; r1->order_s();break;"6 oo6±inep 三eq 001POAL=pu vv.K吕鬼理s刍咽s叵舔=vvpuvv=m=vvp_vv=wurvvln8 <N Seo4程序测试1程序开始运行的界面p< "C:DocuBcnts and Set-tingsVAdiini stratorWc+程设计51CT0下载Y_2学生考動管理系统啊卫厨计 况录>统> 录嘀记的/7 记录律

22、课阮/6 课记缺缺缺晴/5 缺课的的的课" 生缺生空生旷/3 書圭5石Z2 :有生纭个異<1 子某某某專- 列一乂询改熹岀择 能显暑一修删某退选 功1.B.Q.札乩6.7.请糸统U1,0,A2程序显示功能的界面计1 祝录录统2 录附记的肝 记录课课课況丹 谟记缺UU情 R 缺说的的的课Z4 生缺土圭圭旷Z3 畫筈SFK “ :<-主,r-rE!cl 玉,旳宁*芜呆吋壬: 列贡询改養岀择 址氐显录査修別其退选 功B-D-M-E-K-P-士洞苧if祎教槪小尸性高毛fl篡缺课曰期0834120B9&23023S0ES21314f»Rffl31409B4Q111

23、1311返回功能列薪3程序录入功能的界面n *C:©ocument and SwDng号'Adainist 珂to班泉面口卄课程盘计吕160下我-C 2«/i记:C+名C1ZI1 Z4谍:课-毎:JZ3站P矍军? 也生日儿卷華入 一育±1卜个个曼C1学當课课常 某某紫:秦快離缺续 列贡舉履岀择一入*KK继 能显录査修別某邊Tt入否 功E-O-H-5_6-r/-请蒸ffifflg 请请是计 隶借记的 记录课课课況 谟记缺UU情 缺说的的的课 性缺土圭竝旷3 艮 口器12 3 4 5 6 7叟狗拼音半:充V0C: Docu>ents and Sett i

24、ngsAdBinistr at or 桌面u+课程设计51CTO下莪Y_2.4程序查询功能的界面计 况录录统 录星廉 记录课课课况 课记缺缺缺ft 缺课的的的课 生缺注生生旷 :有4卜个个间统<1查 -爰 列一父询改農岸入 能显盖一修删某退选输 励*1-;-WW瞬型蚩主姓名 率四蠶名称节次予号缺课日期0S0G23匱回功能列表? ten5程序修改功能的界面C="C: Do cuKen±s ajLdi_n压占_jL(ti_iri;s1:苣ox'桌f&j 匚+课程设计1(!丁0下截一学生考勤管理茶统功能列奏:3 -查询某小半主的缺课情况4 似改某个4牲的缺课记录 厂删睡某个半生的缺课记录 6-MgS旷课情况的纟充计7退.出索绕请选择:(1/234/5/6/? 4诒输入要修改缺课记录的学生姓名:黄白 请输入雯倏改的项RCL.缺课日期2-缺课节次3-缺课名称4 .学生姓名缺课类型£-全部2 " Afe第几节课:5保存修改? 3人.6程序删除功能的界面f输入7删除全部45 :r3*?:卄祝录录筑 录蛊记的 记

温馨提示

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

评论

0/150

提交评论