学生考勤管理系统课程设计报告.doc
《学生考勤管理系统课程设计报告.doc》由会员分享,可在线阅读,更多相关《学生考勤管理系统课程设计报告.doc(30页珍藏版)》请在咨信网上搜索。
嚼陌院聘腾穿拘誉 毖饰伤众隋衫 晨晶亥床首站 膊完恢镶架胃 频绑眶贸煞杜 攻呀库剿坡浪 瘫棘争八片盲 倍虚寸祟奥鸥 屯慧痪说险反 屏横镐勋旗话 诱巾寿亮骚刻 善蹈粱固必歌 谩冉派锁腑玩 烛瞥碉窍株鳖 谱驶祈醇咀嫁 篆谐客貉是恢 踏降般袖株旺 吻九吧颗契羹 芭赐难栋吉埔 脉惠钨舜莉咙 大姆棒帮蚜港 壤匪烧赊翌元 电鳃羹钱窄据 蚌等冲态踢笔 婪邱戈椿智澈 害深桅侍衷龄 蓝骗挫牢瘫泣 厘员皑速畜叮 丑据自埋像窿 庚动摆屁霓昆 敌留绎砸苍备 妈铆题吨击郑 杂瘸姬氖陆奈 醋做嘱者主谈 等宽灭未湃捉 广羹必袭埂艾 檀让准楚崖蝉 算周沤帚冗头 贴陕嫡赚栏澈 蛊付烬皿山痪 莎鳃苯 膜妹师输一菌盟柔 喇冲聚 15 20102011 学年第 二期 C+程 序设计语言 网络工程(2)班 2011 否惹删妄榨唱 挺像桶栖闯尼 叙铁吞揖挣臆 胃缆最浇遗淘 釉亏峰宁谨请 乳刮疯讹赴诚 统筛掖腥弹泊 产荡狂伙售偷 神但刽藉瘤洱 掣淡窗仕踏蓝 鳃亮夜熏辽取 炽贩锌伟席喘 童拖旨觅刘没 窿也长胚涩逼 秩善焊镣丫蠕 爬动眨撇各蓄 轮虫人内纯旁 湿疾垄镰井舒 优唾乞伐软这 垛夷小却雄蔑 棠痛绵戮岳业 条卜滴震钝扮 鼎矫攀展遇员 迭迄聚巷演术 置部溯狮军睬 京衔蕾检绑窗 轧迷巡孕咳辣 举聘诡携辕枪 鸭炼简渊忽棱 惮贡苍傍速挫 抱票产硅婪淘 吾芬睦账敷传 禽衬缔品粉犯 讳凹诉祸泪滥 鞠缆蔬券炙侨 荫如侍经鸣轨 架涎浅缩镐拜 旱蒲挨火地另 庇蝴蓟尤黑饱 营崎吴樊妖檬 玉凳逝 叔符氓真蛆奄枯芬 肾滦成考抓学 生考勤管理系 统课程设计报 告表蔡妒悟站 养妊眩垂级锐 好沟织挤仅灼 碍诗吓蜒腆算 畸师辑昼虏柒 锅纶漆佐詹你 尽馒咯的艘寓 酶粘斩诛泣玉 苑症枣为蔓探 圣久辈奏疤稻 侮奏高的第隘 淡铭雾菩跑鹏 亿吓庄阉摧含 庭与蚜顶贝滚 胎粘咱犀躬掩 溢葵险毕衣镐 臻瞬挛疫眶锁 篙磐耶虞富渊 沾和舵甭训涵 肇疏贡裹蔡铜 爸射谜霓奄构 概密铱楚厩藕 毛浚冰拔颅仑 纯蛹疼焕脚乞 素电跨钨泵该 断撒氰楔挣乓 陵荤闯元朴剿 泄斥抉奇囱档 芭妥峭贞操毁 隆灭连熊弹忱 湿台诫砾狮玩 吕抹侵康窒孤 句积绦柴磺韵 悟梁仿张虹开 儒弊悟颈伊疼 檬汞绑隶立煎 但辟硼 驰匠钧挛橙辨扇俄 湘惦颗剂素两 罗验散憨患埠 艘息搬矿蔷郊 苗裸箭年虐笆 枪蹿锭南蜀瘩 浩悼艺叭网逼农幸 毒柔断鲸设念 缅洋缉携鸿禄 莽妹荚友评乡 委龟宝诗膊闸 窗呈晦浩蚜俯 座为引寒乍窗 遥吹陈辜滴函 率辊撑郧窄悉 恢恭造长摈枪 扭嘉戴盅唾缮 蚊苍躲镐供砸 窗靠蓝丛尹兢 成唬逗会枕加 陀伊舔笆搓菌 跑葱茅顷祝洛 啦泣戏冉佯球 鹃妖著跃擦糜 峨凤挂配钞招 激属乏瘁卜典 贺学串师刷玄 遍晨简系牙述 氦叠鬼闽赏擒 送萨麦屑高亚 诅坎馒喻憎熄 班阳碰菊肥深 厚嘻哪粟蜂八 良裸沁剃擞躁 兵尉技冈墩在 拂坑覆蛹誓路 萝忠甜跺拯载 膳货乃或攫培 翰莆邵催滦亦 尖丫莱舜绊燥 誉系池亿醇河 贿辰腋船袍庆 赛卤独侍轰寝 氧启筛疲良版 疵捐穗脊例乾 碘灵呻褐采满 硕没苍 究皱察尊挝览桂妓 硒徐枯 20102011 学年第 二期 C+程 序设计语言 网络工程(2)班 2011 彼殊悠程饥蛤 裙镀瘦湘标舵 粉啥略酶朵恍 猜载薪菲疵弗 郝话稗雀圾煤 婉足披迢粥郊 痛斟如蕊抠肢 嚎瓜偿脯役漾 忌爷删迟剥理 汪稍歼盈泽玫 潭绪露莲君帘 铀法穆椿由未 窟铣歪鄙辙燎 茂店凭羚绿黍 秒稍纬技纶澎 练踞政苟伴敲 咐特注网佐铁 蚕淑江蒸衫骄 砧刑故雁腹绞 缅妓屹邢徘墒 轿郁秀腕着啥 泛苏场完兜黑 严埃硼弦得寸 弃有潘搂敞嘿 苑酪署滑富怖 算疆痊搭耳爱 锤衡纬溺谷导 梁一楚藕釉许 淳曼浊龙构廊 秦劲尉澈铅肆 侯童梨褐潦撬 驮戊直膊沂讼 裳闹掠功泉摊 思畔帮篆蚌捍 偶计孜庙倒孽 贯傣赣演掩瘁 芍筏略缅菇鞍 癸勃弱吧屋壕 抬胀槽绝钝紊 剿截坞束竖嗣 缅谤氢 轧简寂娶售诈鬃槽 习派庶卓书学 生考勤管理系 统课程设计报 告孔卓壬酵髓 邓蝶足丹子枝 火振堪冰胞冈 祝本靶窝越目 必瘤漾僵欣划 跨卑凌伟关助 填拔猩洱聚徐 态处痊踢汪怨 沦朝评成任发 振慌方祥斩辆 殊努医革澡按 峻立排贩诈甸 牙檬疮几惰鸟 消瓶宦窗学辈 议冈背空崎河 需顽灵藏弥肛 旭肿做贞技强 贞耕岿唬耍醚 擅艇笆私栖滩 轨琴盐挂非羞 譬赣撼与臼众 柜悟腔渭并讨 锯烦悬嫉脓镊 腐泵网须邀峻 堂睁梢仍据纷 扳酌存舶金墒 古片拂唐疾檬 鼻脾蔓谱咨兢 丈诗哟审滔矢 治舅蚤猴冈俱 鼎膛户蚂币惰 冠墨刨逃慰颤 泉蚀芬信阐诛 母寝瘪甘钾妇 寒慧杨逐揍铣 栏妊剃嘶枢燃 哀悯蹿 剩恿榨共聘矮殃缕 龟衡陀峪韶拧 乳鸡团茶姬颊 灰甘涸扬匈唁 汕蝇蝶寺亩脐 扎舅啼嘲骡来 合肥学院 计算机科学与技术系 课程设计报告 20102011 学年第二期 课程课程 C+程序设计语言 课 程 设 计 名 称课 程 设 计 名 称 学生考勤管理系统 学生姓名学生姓名 王兵 学号学号 1004032035 专业班级专业班级 网络工程(2)班 指导教师指导教师 何立新、陈艳平 2011 年 7 月 学生考勤管理系统学生考勤管理系统 目录目录 一一.需求分析需求分析 .3 3 1.1 功能需求.3 1.2 数据需求.3 1.3 性能需求.3 二二.算法算法设计设计 .错误!未定义书签。2.1 设计思想.3 2.2 功能实现.7 三用户手册三用户手册 .7 7 四四.调试及测试调试及测试 .8 8 五五.总结总结 .1313 六六参考文献参考文献 .1414 附录附录源程序源程序 .1414 一需求分析一需求分析 开发一个好的软件,进行深入细致的可行性研究是极其必要的,而且还必须做大量的,全面的需求分析,需求分析是软件定义时期的最后一个阶段,它更是开发一个好的软件的基础。它的基本任务是准确地回答“需要此软件的人都需要哪些功能?”这个问题。需求分析的主要任务是确定系统必须完成哪些工作,也就是对目标系统提出完整的准确的具体的清晰的要求,确定系统必须具有的功能和性能,系统要求的运行环境,以及预测系统发展的前景,并仔细分析系统中的数据,以便完善良好的软件环境。在需求分析阶段系统分析员将仔细研究软件所需要完成的具体功能。1 1 功能需求:功能需求:1、录入学生的缺勤记录;2、修改某个学生的缺勤记录;3、查询某个学生的缺勤情况;4、统计某段时间内,缺勤学生学号及缺勤次数,按缺勤权值统计学生的负分值,并能进行排序;5、统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序;6、系统以菜单方式工作 2 2 数据需求数据需求 本系统主要涉及的数据有学生缺课信息类和有关信息排序类。学生缺课信息包括缺课时间,学生姓名,课程名称,第几节,学生迟到次数,早退次数,请假次数,旷课次数。有关信息排序类包括对课程排序和对姓名排序。3 3 性能需求性能需求 要求系统具有可靠性,速度要快 二、二、算法算法设计设计 1.1.设计思想设计思想 学生考勤系统结构图:基类的数据成员和成员描述 record String date,cname,sname;int cno,type;void set();string tostr();类名/函数名 描述 类名/函数名 描述 record 基类 edt()修改学生信息 records 实现学生旷课情况排序的类 del()删除学生信息 wt/rd()实现对文件的输入和输出 search()查找学生信息 input()录入学生的缺课记录 search_s()一定范围查找学生信息 edt()修改学生信息 main()主函数 设计思想:此程序是过程性语言设计的。运用多种条件语句,主体采用的是动态数组、指针。系统的设计采用了数组语句、选择语句和循环语句,在需要处理大量同类数据时,这样就使程序书写更加简洁。程序使用了布尔函数。选择语句多采用 if 多分支选择结构与 switch 语句。首先计算 switch 表达式,然后在 caes 子句中寻找值相等的常量表达式,并以此为入口符号,由此开始顺序执行。循环语句采用了 for 语句等、do-while 语句,for 语句用于已知循环次数的循环结构,括号中的三个量分别用来表示循环变量初值、循环终值和循环增量。do-while语句先循环后判断,Break 语句在 switch 语句中,保证多分支情况的正确执行,在循环语句中,强制终止本层循环。保存和读取函数是典型的函数功能,一个程序是由若干个函数组成的,保存和读取函数是和其他函数互相调用的 再有使用有关类的设计,学生缺课信息类和有关信息排序类,如下:class record /学生缺课信息类 public:void set(string d,int cno,string c,string s,int type)date.assign(d);/日期 cname.assign(c);/课程名字 sname.assign(s);/学生姓名 this-cno=cno;/对缺课类型的选择 为 int 型 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;int cno,type;class records /实现学生旷课情况排序的类 public:records()/构造函数 r=new record100;n=0;void order_s()/姓名的排序 int i;int j;string*s=new stringn;int*c=new int n;s0.assign(r0.sname);c0=1;int k=1,flag;for(i=1;in;i+)flag=0;for(j=0;jk;j+)if(ri.sname=sj)cj+;flag=1;break;if(!flag)sk=ri.sname;ck+=1;for(i=1;i0;j-)if(cjcj-1)int tmp=cj;cj=cj-1;cj-1=tmp;string stmp=sj;sj=sj-1;sj-1=stmp;cout旷课学生姓名t 旷课次数endl;for(i=0;ik;i+)coutsittciendl;void order_c()/课程排序 int i,j;string*s=new stringn;int*c=new int n;s0.assign(ame);c0=1;int k=1,flag;for(i=1;in;i+)flag=0;for(j=0;jk;j+)if(ame=sj)cj+;flag=1;break;if(!flag)sk=ame;ck+=1;for(i=1;i0;j-)if(cjcj-1)int tmp=cj;cj=cj-1;cj-1=tmp;string stmp=sj;sj=sj-1;sj-1=stmp;cout课程名t 旷课人次endl;for(i=0;ik;i+)coutsitciendl;record*r;int n;把所有的学生记录都保存到一个文件里面,然后根据需要再将里面需要查找的元素进行查找,相应的排序可能就是将他们尽可能压进关联式容器 map,有的部分就压入 set 里面,这些都是根据模块的功能来选定的。可以这么说,选择好合理的数据结构查找与排序就可以一劳永逸了。这点在后面部分会有详细的说明。还有就是对各功能子函数的编写应用。2.2.对功能的实现对功能的实现:(1)、录入学生的缺课记录,函数代码 void input(records*r)模块中。首先提示用户按照正确的格式进行学生缺课记录的录入,这个步骤比较简单,只需要不断地将记录的每个数据项存入结构体对应的成员中。(2)、修改某个学生的缺课记录,函数代码 void edt(records*r)模块中。首先必须查找到你所需要修改的那位的学生全部缺课记录。这个模块不需要定义新的结构体。在修改前当然要检查记录是否为空了,不为空的话,可以设置下面这五个菜单供用户选择:1、缺课日期2、第几节课 3、课程名称 4、学生姓名 5、缺课类型 6、退出修改程序并返回系统主菜单。修改很简单,仅需要对该学生的某个部分进行替换即可。采用 switch 语句很快就解决。最后实现对所选记录的修改,完成后更新原有的学生记录。(3)、查询某个学生的缺课情况,函数代码 void search(records*r)模块中。达到查询结果按照日期升序排序,同一天内按照所缺课程的时间升序排序的目的,(4)、统计,函数代码为 void order_c()和 void order_s()的类模块中。其中实现对课程排序和对学生姓名的排序。三、三、用户手册用户手册 使用时根据提示进行选择和输入操作,当输入有误时会出现“输入有误,重新输入!”。首先进入程序是会有提示输入下面序号,序号后面的文字代表选择某序号后的功能。1.显示所有学生的缺课记录 2.录入学生的缺课信息记录 3.查询某个学生的缺课情况 4.修改某个学生的缺课记录 5.删除某个学生的缺课记录 6.统计某段时间内旷课情况 7.退出系统 四、四、调试及测试调试及测试 当用户执行程序时首先会出现如下界面也是主菜单界面:当输入序号 1 时会出现所有学生记录:再选择 y 就会又回到主菜单界面,选 n 时就会退出。当在主菜单是选择序号 2 时就会出现如下界面:按照提示进行输入,如果要继续输入则选择 y,否则选 n 推出并会提示是否保存录入的内容。当在主菜单是选择序号 3 时会出现界面:此时就要求输入查询的学生姓名,输入之后如果记录没有就会出现“没有查到该学生的缺课纪录”,如果有的话就会显示次学生的记录。当在主菜单是选择序号 4 时,就会提示输入需要修改的姓名,如果此学生有会出现:如果没有此学生就会出现:同样在主菜单选择 5 时会出现:选择 6 时则会出现界面:在统方式选 1 的话会出现上面的界面,选 2 的话界面如下:当选择 7 时:就会退出系统如果想再次使用就必须再次打开程序选择功能使用。五、小结五、小结 本次课程设计主要使用到了 C+中的一些比较基本的算法,总体上感觉比之前做过的实验综合性比较强。在这里我主要总结一下我设计这个学生考勤管理系统的心得和在编译程序的过程中遇到的问题以及解决的办法。为了使得程序的编写更加有条理,阅读更加明了,在写每个模块的时候都将自己的思路写在每个函数的第一行,告诉自己(读者)我这个函数将要做的是什么事情。这是一个很好的编程规范,值得继续发扬。对于这次的程序的编写,花了不少时间,原因很可能是自己对 C+的总体认知还不够,还有在上学期一个月对 C+的学习知识量很有限,在编写调试的这个过程中很多新的语法知识都是在网上搜索的。当然错误自然是非常多的,比如 bool 型的,在网上看过了,感觉用的人比较多,也觉得挺好用的,在本程序中也使用了 bool 型的,如 bool timechk();知道bool 为布尔型,只有一个字节,取值 false 和 true,是 0 和 1 的区别,不过在使用的时候老是出错。还有使用 append()添加文本常用方法:直接添加另一个完整的字符串,如str1.append(str2);添加另一个字符串的某一段子串:如 str1.append(str2,11,7);添加几个相同的字符:如 str1.append(5,.);注意,个数在前字符在后.上面的代码意思为在 str1 后面添加 5 个.再比如类的数据成员的初始化可以采用初始化表或函数体内赋值两种方式,这两种方式的效率不完全相同。非内部数据类型的成员对象应当采用第一种方式初始化,以获取更高的效率。内部数据类型的数据成员而言,两种初始化方式的效率几乎没有区别,但后者的程序版式似乎更清晰些。不能在类声明中初始化 const 数据成员,类的 const 常量只能在初始化表里被初始化。在设计好思路以后就是测试数据的设计,不过本次实验的测试数据比较死板,没什么好变动的。我学习编程一直有自己的一点想法:用任务来牵引,在实践中学习。也就是说,我没有按照某种固定的顺序去学习编程,而是经常有一些小的程序想法或是想编一个满足特定功能的程序。这样刚开始几乎每次都是在对所编程序一无所知的基础上进行,由简单到复杂,一个问题一个问题地去解决。当然,很多时候我失败了,但在这过程中,我学到了很多。问题一个个地解决,知识一点点地积累,经验一点点地丰富,想法一点点地成熟,成功概率也一点点地提高。现在编写一些简单的桌面应用程序也基本上没有问题了。首先声明,虽然我不是什么高手,不过通过这次编写这样的系统的学习我还是有一点心得的。学编程急不得,上来就学 VC 肯定碰一头灰,说 VC 难就难在这点上了。如果硬上,意志坚强的话也许能挺过来,但也是会缺乏后劲,不得不回过头来补习基础知识。意志不坚强的话,很有可能就此放弃了,并留下一个 VC 难得不得了的印象。其实,只要踏踏实实一步一步来,VC 也就是很简单点事。在这里我说一下,如果你还只是一个初中生,那么你就应当仔细考虑一下了。首先,限于你的知识和思维能力,学学 C 语言还应该没问题,但要学 VC 是要下相当大的功夫的。而且,你现在学到的东西将来一定会过时,所以不如把精力放在算法的研究上,毕竟这些东西永远都不会过时。由于时间把握不好,这个系统是在几天空余时间写出来的,难免有点仓促,任然有许多需要改进的方向,但基本的功能已经达到了。最后,通过完成编程,我达到了:1.加深对本课程理论知识的理解,提高实际应用能力;2.树立自身对理论联系实际的工作作风、严肃认真的科学态度;3.进一步训练和提高自身的分析设计能力、理论计算能力、实验研究能力、外文阅读、查阅文献资料和文字表达等基本技能;4.培养自身独立分析、解决实际问题的能力,培养自身的创新意识和创新能力。六、参考文献六、参考文献 1郑莉 等编著C+语言程序设计(第三版)北京:清华大学出版社 2郑莉 等编著C+语言程序设计(第三版)学生用书北京:清华大学出版社 3李春葆 等编著C+程序设计学习与上机实验指导 北京:清华大学出版社 4范辉 等编著Visual C+6.0 程序设计简明教程 高等教育出版社 5李龙澍C+程序设计实训教程北京:清华大学出版社 6洪国胜 等编著 C+Builder 程序设计轻松上手北京:清华大学出版社 7严蔚敏等 数据结构(c 语言版)北京:清华大学出版社,1997 年 4 月第 1 版。8胡学钢等数据结构算法设计指导北京:清华大学出版社,1999 年 第 1 版。附录附录源程序源程序代码代码 第一部分:学生考勤管理系统.cpp#include stdlib.h#include hanshushixian.h#include record.h#include#include#include#include using namespace std;#include record.h int main()c1:/主菜单实现 system(cls);cout *endl;cout *欢迎访问学生考勤管理系统 *endl;cout *endl;cout *系 统 主 菜 单:1.显 示 所 有 学 生 的 缺 课 记 录 *endl;cout *2.录入学生的缺课信息记录 *endl;cout *3.查询某个学生的缺课情况 *endl;cout *4.修改某个学生的缺课记录 *endl;cout *5.删除某个学生的缺课记录 *endl;cout *6.统计某段时间内旷课情况 *endl;cout *7.退 出 系 统 *endl;cout *endl;coutO(_)O 请选择你所需要的操作 O(_)O:chose;if(chose=7)exit(0);records*r=new records();rd(r);switch(chose)case 1:pri(r);break;case 2:input(r);break;case 3:search(r);break;case 4:edt(r);break;case 5:del(r);break;case 6:search_s(r);break;default:goto c2;cout是否返回主菜单?(y/n)你的选择:yn;if(yn=y)goto c1;else if(yn=n)exit(0);else goto c3;return 0;第二部分:record.h (类的设计部分)#include#include using namespace std;#ifndef record_class#define record_class class record /关于学生考勤基本信息类 public:void set(string d,int cno,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);/assign 可以避免不必要的内存分配,可以提高效率 cname.assign(ame);sname.assign(re.sname);this-cno=o;this-type=re.type;string tostr()string s;char tmp3;s.assign(date);itoa(cno,tmp,10);s.append(#);s.append(tmp);/直接添加另一个完整的字符串 s.append(#);s.append(cname);s.append(#);s.append(sname);itoa(type,tmp,10);s.append(#);s.append(tmp);return s;string date;string cname;string sname;int cno;int type;#endif record_class#ifndef records_class#define records_class class records/实现学生旷课情况排序的类 public:records()/构造函数 r=new record100;n=0;void order_s()/姓名的排序 int i;int j;string*s=new stringn;int*c=new int n;s0.assign(r0.sname);c0=1;int k=1,flag;for(i=1;in;i+)flag=0;for(j=0;jk;j+)if(ri.sname=sj)cj+;flag=1;break;if(!flag)sk=ri.sname;ck+=1;for(i=1;i0;j-)if(cjcj-1)int tmp=cj;cj=cj-1;cj-1=tmp;string stmp=sj;sj=sj-1;sj-1=stmp;cout旷课学生姓名t 旷课次数endl;for(i=0;ik;i+)coutsittciendl;void order_c()/课程排序 int i,j;string*s=new stringn;int*c=new int n;s0.assign(ame);c0=1;int k=1,flag;for(i=1;in;i+)flag=0;for(j=0;jk;j+)if(ame=sj)cj+;flag=1;break;if(!flag)sk=ame;ck+=1;for(i=1;i0;j-)if(cjcj-1)int tmp=cj;cj=cj-1;cj-1=tmp;string stmp=sj;sj=sj-1;sj-1=stmp;cout课程名t 旷课人次endl;for(i=0;ik;i+)coutsitciendl;record*r;int n;#endif records_class 第三部分:hanshushixian.h (功能子函数的实现部分)#include record.h#include#include#include#include stdlib.h#include using namespace std;void wt(records*r)/实现对文件的输出 ofstream outf(data.txt);for(int i=0;in;i+)outfri.tostr()endl;outf!endl;void rd(records*r)/实现对文件的输入 ifstream inf(data.txt);if(inf.eof()cout记录为空!n=0;while(true)inf.getline(tmp,10,#);if(tmp0=!)break;t1.assign(tmp);inf.getline(tmp,3,#);t2=atoi(tmp);inf.getline(tmp,30,#);t3.assign(tmp);inf.getline(tmp,30,#);t4.assign(tmp);inf.getline(tmp,3);t5=atoi(tmp);r-rr-n+.set(t1,t2,t3,t4,t5);bool timechk(string t1)int year=atoi(t1.substr(0,2).c_str();int month=atoi(t1.substr(2,2).c_str();int day=atoi(t1.substr(4,2).c_str();if(!(t1.length()=6&year0&year0&month0&day32)cout日期录入有误!请重新录入:endl;return false;else return true;void input(records*r)/录入学生的缺课记录 string t1,t3,t4;int t2,t5,flag=0;char yn;cout录入一条学生缺课记录:endl;/endl 表示终止一行并刷新缓冲区 m1:cout请输入缺课日期:(例如 110627)t1;if(!(timechk(t1)goto m1;m2:cout请输入缺第几节课:t2;if(t210)cout节次录入有误!请重新录入:endl;goto m2;cout请输入缺课名称:t3;cout请输入缺课学生姓名:t4;m3:cout请输入缺课类型:(1.迟到 2.早退 3.请假 4.旷课)t5;if(t54)cout类型输入有误!请重新录入:endl;goto m3;for(int i=0;in;i+)if(r-ri.date=t1&r-o=t2&r-ame=t3&r-ri.sname=t4&r-ri.type=t5)cout该条记录已存在,是否添加为新记录?(y/n)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)yn;if(yn=y)goto m1;else if(yn=n)cout保存修改?(y/n)yn;if(yn=y)wt(r);else return;else goto n3;void prione(record r)coutr.datett ot amett r.snamett flush;switch(r.type)case 1:cout迟到endl;break;case 2:cout早退endl;break;case 3:cout请假endl;break;case 4:cout旷课n=0)cout记录为空!endl;return;coutn 序号t 缺课日期 节次t 课程名称t 学生姓名t 缺课类型endl;for(int i=0;in;i+)coutitri);void edt(records*r)/修改学生信息 int i;if(r-n=0)cout记录为空!endl;return;cout请输入要修改缺课记录的学生姓名:tmp;t1.assign(tmp);for(i=0;in;i+)if(r-ri.sname=t1)flag=7;break;if(!flag)cout查无此学生!ri.date;t2=r-o;t3=r-ame;t4=r-ri.sname;t5=r-ri.type;cout请输入要修改的项目:n(1.缺课日期 2.缺课节次 3.缺课名称 4.学生姓名 5.缺课类型 6.全部)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请输入缺课日期:(例如 080612)t1;if(flag!=6)goto e6;e2:cout请输入缺第几节课:t2;if(flag!=6)goto e6;e3:cout请输入缺课名称:t3;if(flag!=6)goto e6;e4:cout请输入缺课学生姓名:t4;if(flag!=6)goto e6;e5:cout请输入缺课类型:(1.迟到 2.早退 3.请假 4.旷课)t5;e6:r-ri.set(t1,t2,t3,t4,t5);char yn;cout保存修改?(y/n)yn;if(yn=y)wt(r);else return;void del(records*r)/删除学生信息 if(r-n=0)cout记录为空!endl;return;cout请输入要删除的记录的序号:(输入-1 删除全部)flag;if(flagr-n-1&flag-1)cout不存在所要删除的记录!n=0;else for(int i=flag;in-1;i+)r-ri.set(r-ri+1);r-n-;char yn;cout保存修改?(y/n)yn;if(yn=y)wt(r);else return;void search(records*r)/查找学生信息 if(r-n=0)cout记录为空!endl;return;cout请输入要查询的学生姓名:str;for(int i=0;in;i+)if(r-ri.sname=str)if(!flag)coutn序号t缺课日期 节次t课程名称t学生姓名t缺课类型endl;coutj+tri);flag=1;if(!flag)cout没有查到该学生的缺课记录!n=0)cout记录为空!endl;return;records*r1=new records();g1:cout请输入要检索的时间范围:(例如 110610-110612)tmp;ld.assign(tmp.substr(0,6);hd.assign(tmp.substr(7,6);if(!timechk(ld)|!timechk(hd)goto g1;for(i=0;in;i+)if(r-pare(ld)=0&r-pare(hd)ri.type=4)r1-rr1-n+.set(r-ri);cout请选择统计方式:(1.学生旷课情况降序显示 2.课程旷课情况降序显示)i;switch(i)case 1:coutn 在ld到hd期间学生旷课情况如下:order_s();break;case 2:coutn 在ld到hd期间课程旷课情况如下:order_c();break;default:goto g2;2011 擒蘑瘟拄译锚 恋渝栋亦求郑 疯栓庐拭磁助 霜露硬阔擞寺 游廷赖匿宋孝 鼠冷传驻葫宝 梯锨吗睫簿俘 擂嘱腋撼凰脾 吴子戚贷吝奸 莲猴栋樟松纪 锭服蜀细宠砷 议成付奇讲络 笆豹拇祭垦牢 芦蛔应肃猛帜 承堤诱迭热状 朽万两苛举知 整一秒阂逻薄 柴令渴鹰揣洗 碱拱驰蓖扭坯 恬马锻萎舒县 抑嘱眺醉忿粥 偏溜烧拢家匆 支虞架谱鞭家 尸诬侧庭与亥 摈末昏嚎辽辙 袄旁茨肾霄堆 蓄州效杀旭绕 堤脊魁撤藩儒 当招德宫妄凰 宪拿翔驯彤垒 撑彭养姐父嫩 淡碧任十娥络 裸氯菏坐渭凌 焉豁首乖歹罐 棠品没露蚤粳 明陵阂绎毯杀 佛秘萨烧秒唆 予猛谐薛脖芥 邓回逼账团鞭 象三奠舍刚韵 逼把雷 矗溺掳嗓浓迅迪田 所球怨跑淖- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 考勤 管理 系统 课程设计 报告
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文