欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    c学生考勤信息管理完整 .docx

    • 资源ID:13052554       资源大小:69.73KB        全文页数:12页
    • 资源格式: DOCX        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    c学生考勤信息管理完整 .docx

    精品名师归纳总结/* 题目:同学考勤治理系统考勤信息记录了同学的缺课情形,它包括:缺课日期、第几节课连续多节课用begin-end的形式表示 、课程名称(课程名称中不会显现空格)、同学姓名、缺课类型(迟到、早退、请假及旷课)。试设计一考勤治理系统,使之能供应以下功能:1. 录入同学的缺课记录:从键盘输入数据(提示:为防止重复从键盘输入数据,测试时可将数据储备在文件中,利用输入重定向功能读入),输入格式为:缺课日期 第几节课 课程名称 同学姓名 缺课类型每行一条纪录。例如:2021-04-29 3-4 C+程序设计试验 张三 迟到2021-04-28 3-4 C+程序设计 李四 旷课2. 修改某个同学的缺课记录:可以对缺课纪录的任意部分进行修改。3. 查询某个同学的缺课情形:查询结果依据日期升序排序,同一天内依据所缺课程的时间升序排序。 4统计某段时间内(以天为单位),旷课同学姓名及旷课节数,查询结果先按旷课节数降序排序,旷课节数相同的同学按姓名升序排序。5. 统计某段时间内,有同学旷课的课程及旷课人次,按旷课人次由多到少排序,旷课人次相同的课程按课程名称升序排序。6. 系统以菜单方式工作。通过几天的奋斗最终将这个设计做出来了,如下是该程序的详细过程*/ #include <algorithm>#include <iomanip>#include <iostream> #include <vector> #include <stdexcept> #include <string> #include <iterator> #include <map>using namespace std。struct Student_infoint year,month,day,lesson1,lesson2 。std:string course,name,type 。std:istream& readstd:istream&。istream& Student_info:readistream& inin>>year>>month>>day>>lesson1>>lesson2>>course>>name>>type 。return in 。istream&read_recordistream&in,vector<Student_info>&s/ 第一个模块输入同学的缺课记录Student_info record 。s.clear。/ 调用 s.clear来清空 s 的记录可编辑资料 - - - 欢迎下载精品名师归纳总结whilerecord.readins.push_backrecord 。in.clear 。/ 将记录的错误状态复原正确,以连续读取记录return in 。bool is_emptyvector<Student_info>& s/判定输入同学的记录是否为空,为空就返回真return s.empty 。bool compareStudent_info& x,Student_info& y/依据时间排序 ,如日期相等就看课程时间ifx.year=y.year&&x.month=y.month&&x.day=y.day return x.lesson1<y.lesson1。else ifx.year=y.year&&x.month=y.month&&x.day.=y.day return x.day<y.day 。else ifx.year=y.year&&x.month.=y.month return x.month<y.month 。可编辑资料 - - - 欢迎下载精品名师归纳总结else return x.year<y.year。可编辑资料 - - - 欢迎下载精品名师归纳总结bool timeconst Student_info& stud,int y1,int m1,int d1,int y2,int m2,int d2/选择符合输入时间段的数据if y1 = stud.year && stud.month= m1 && stud.day < d1 |y2 = stud.year && stud.month = m2 && stud.day > d2return 0 。else if y1 = stud.year && stud.month < m1 | y2 = stud.year && stud.month > m2 return 0 。else if y1 > stud.year | y2 < stud.yearreturn 0 。可编辑资料 - - - 欢迎下载精品名师归纳总结elsereturn 1 。可编辑资料 - - - 欢迎下载精品名师归纳总结void rewritevector<Student_info>& s/其次个模块修改某个同学的缺课情形if.is_emptysint n,m,j,k 。可编辑资料 - - - 欢迎下载精品名师归纳总结map<string,vector<Student_info> > s_name 。map<string,vector<Student_info> >:iterator ix2。vector<Student_info>:iterator ix,iter,itera。string name 。/- 定义这些参数和迭代器必需在SWITHC外,不然它可能被忽视跳过whiletruecout<<"*"<<endl。cout<<" * 1. 请输入你要修改缺课记录的同学姓名*"<<endl。cout<<" *"<<en。dlcout<<" * 2. 返回上一级菜单*"<<end。lcout<<"*"<<endl。cout<<" 请选择菜单项项: "。cin>>n。ifn=1s_name.clear。/- 清空 MAP 容器forix=s.begin 。ix.=s.end 。+ixs_name*ix.name.push_back*ix。s.clear。cout<<" 请输入该同学的姓名 : "。cin>>name。cout<<endl 。ifs_name.findname.=s_name.end可编辑资料 - - - 欢迎下载精品名师归纳总结求的数据 ,并显示出iter.=*ix2.second.end 。+iter"<<*iter.day<<"t"。ix2=s_name.findname 。 /找到符合名字要foriter=*ix2.second.begin。cout<<*iter.year<<"-"<<*iter.month<<"-cout<<*iter.lesson1<<"-"<<*iter.lesson2。可编辑资料 - - - 欢迎下载精品名师归纳总结cout<<"t"<<*iter.course<<"t"<<*iter.name<<"t"<<*iter.type<<endl。itera=*ix2.second.begin 。cout<<" 请输入要更换记录的序号: "。cin>>j。fork=0 。k.=j-1 。+k可编辑资料 - - - 欢迎下载精品名师归纳总结cout<<"+itera。可编辑资料 - - - 欢迎下载精品名师归纳总结*"<<en dl。可编辑资料 - - - 欢迎下载精品名师归纳总结*"<<endl 。*"<<endl 。型 6 返回上一级 *"<<endl 。*"<<endl 。cout<<"*需要更改的工程cout<<"*cout<<" * 1日期 2 节次 3 课程名称 4 姓名 5 缺课类cout<<"*cout<<"可编辑资料 - - - 欢迎下载精品名师归纳总结*"<<en dl。cout<<" 请选择要更换的工程号: "。cin>>m。switchmcase 1:cout<<" 请输入更换的日期(年月 日) : "。cin>>*itera.year>>*itera.month>>*itera.day。break 。可编辑资料 - - - 欢迎下载精品名师归纳总结case 2:case 3:case 4:case 5:case 6:cout<<" 请输入更换的节次( L1、L2) : "。cin>>*itera.lesson1>>*itera.lesson2 。break 。cout<<" 请输入要更换的课程名称: "。cin>>*itera.course 。break 。cout<<" 请输入要更换的同学姓名: "。cin>>*itera.name 。break 。cout<<" 请输入缺课类型 : "。cin>>*itera.type 。break 。break 。可编辑资料 - - - 欢迎下载精品名师归纳总结default:cout<<" 你的选择错了,请看清楚."<<endl 。break 。可编辑资料 - - - 欢迎下载精品名师归纳总结将改写后的数据放入vector 容器中>second.end。iter+elsebreak 。forix2=s_name.begin 。ix2.=s_name.end 。 ix2+/foriter=ix2->second.begin。iter.=ix2-s.push_back*iter 。cout<<" 没有这个同学的缺课记录"<<endl 。cout<<endl 。可编辑资料 - - - 欢迎下载精品名师归纳总结else ifn=2可编辑资料 - - - 欢迎下载精品名师归纳总结elseelsereturn 。cout<<" 你的选择错了,请看清楚."<<endl 。可编辑资料 - - - 欢迎下载精品名师归纳总结cout<<" 记录为空,没有同学的缺课记录."<<endl 。void Search_recordvector<Student_info>& s/第三个模块查找某同学的缺课情形if.is_emptysint i 。vector<Student_info>:iterator iter。map<string,vector<Student_info> >:iterator it1。map<string,vector<Student_info> > s_name 。map<string, vector<Student_info> >:iterator itera。vector<Student_info>:iterator it。string name 。whiletrue可编辑资料 - - - 欢迎下载精品名师归纳总结cout<<"*"<<endl。cout<<" *cout<<" * 1 输入你要查询的同学姓名2 返回上一级*"<<en。dl*"<<endl。cout<<" *"<<en。dlcout<<"*"<<endl。cout<<" 请选择菜单 : "。cin>>i。ifi=1s_name.clear。forit=s.begin 。it.=s.end 。+its_name*it.name.push_back*it。foritera=s_name.begin 。itera.=s_name.end 。 +iterasortitera->second.begin,itera->second.end,compare 。cout<<" 请输入名字 : "。cin>>name。 cout<<endl 。ifs_name.findname.=s_name.end可编辑资料 - - - 欢迎下载精品名师归纳总结iter.=*it1.second.end。+iter"<<*iter.day<<"t"。it1=s_name.findname 。foriter=*it1.second.begin。cout<<*iter.year<<"-"<<*iter.month<<"- cout<<*iter.lesson1<<"-"<<*iter.lesson2。可编辑资料 - - - 欢迎下载精品名师归纳总结cout<<"t"<<*iter.course<<"t"<<*iter.name<<"t"<<*iter.type<<endl。可编辑资料 - - - 欢迎下载精品名师归纳总结elsecout<<" 没有这个同学 ."<<endl。cout<<endl 。可编辑资料 - - - 欢迎下载精品名师归纳总结else ifi=2可编辑资料 - - - 欢迎下载精品名师归纳总结elseelsereturn 。cout<<" 对不起,没有这个选项."<<endl 。可编辑资料 - - - 欢迎下载精品名师归纳总结cout<<" 没有这个同学的缺课记录"<<endl 。struct Search_structstring name,course 。int times 。/ 定义另一个结构模块boolcompare2Search_struct&x,Search_struct&y/ 依据次数排序 ,次数相等的就依据名字排序ifx.times=y.timesreturn x.name<y.name 。可编辑资料 - - - 欢迎下载精品名师归纳总结elsereturn x.times>y.times 。可编辑资料 - - - 欢迎下载精品名师归纳总结voidSearch_s_tvector<Student_info>&std/ 第四个模块查找某段时间内旷课学生姓名及旷课节数if.is_emptystdvector<Student_info>:iterator it。vector<Search_struct>:iterator itera。map<string,int>:iterator iter。vector<Search_struct> vec。int y1,m1,d1,y2,m2,d2 。map<string,int> ret 。cout<<" 请输入你要查找的一个时间段y1 m1 d1 y2 m2 d2: "<<endl 。cin>>y1>>m1>>d1>>y2>>m2>>d2。forit=std.begin 。it.=std.end 。+itiftime*it,y1,m1,d1,y2,m2,d2retit->name+=it->lesson2-it->lesson1+1 。foriter=ret.begin 。iter.=ret.end 。iter+可编辑资料 - - - 欢迎下载精品名师归纳总结Search_struct tmp 。tmp.name=iter->first 。tmp.times=iter->second 。vec.push_backtmp 。sortvec.begin,vec.end,compare2 。foritera=vec.begin 。itera.=vec.end 。itera+cout<<itera->name<<"t"<<itera->times<<endl。elsecout<<" 对不起,没有你要查找的记录."<<endl 。void Search_c_tvector<Student_info>& std/第五个模块查找某段时间内旷课的课程及旷课人次if.is_emptystdvector<Student_info>:iterator it。vector<Search_struct>:iterator itera。map<string,int>:iterator iter。vector<Search_struct> vec。int y1,m1,d1,y2,m2,d2 。map<string,int> ret 。cout<<" 请输入你想要查找的时间段y1 m1 d1 y2 m2 d2: "<<endl 。cin>>y1>>m1>>d1>>y2>>m2>>d2。forit=std.begin 。it.=std.end 。+it/ 建立 map 容器iftime*it,y1,m1,d1,y2,m2,d2retit->course+=1 。foriter=ret.begin 。iter.=ret.end 。iter+Search_struct tmp 。tmp.course=iter->first 。tmp.times=iter->second 。vec.push_backtmp 。sortvec.begin,vec.end,compare2 。foritera=vec.begin 。itera.=vec.end 。itera+可编辑资料 - - - 欢迎下载精品名师归纳总结elsecout<<itera->course<<"t"<<itera->times<<endl。可编辑资料 - - - 欢迎下载精品名师归纳总结int maincout<<" 这段时间内没有同学的缺课纪录."<<endl 。可编辑资料 - - - 欢迎下载精品名师归纳总结vector<Student_info> stu 。int choice 。whiletruecout<<"*"<<endl。cout<<" *同学考勤治理系统*"<<endl。cout<<"* "<<endl。cout<<" * 1. 录入同学的缺课记录*"<<end。l cout<<" *"<<end。lcout<<" * 2. 修改某个同学的缺课记录*"<<end。l cout<<" *"<<end。lcout<<" * 3. 查找某同学的缺课情形*"<<end。l cout<<" *"<<end。lcout<<" * 4. 查找某段时间内旷课同学姓名及旷课节数*"<<endl。cout<<" *"<<end。lcout<<" * 5. 查找某段时间内旷课的课程及旷课人次*"<<endl。cout<<" *"<<end。lcout<<" * 6. 退出系统*"<<en。dlcout<<"*"<<endl。cout<<" 请选择菜单项项 : "。cin>>choice。 ifchoice=1cout<<" 请输入数据 : "<<endl<<" 年 月 日 节次 姓名 课程名称 缺课类可编辑资料 - - - 欢迎下载精品名师归纳总结型 "<<endl 。read_recordcin,stu 。cout<<endl 。可编辑资料 - - - 欢迎下载精品名师归纳总结else ifchoice=2rewritestu 。cout<<endl 。else ifchoice=3Search_recordstu。可编辑资料 - - - 欢迎下载精品名师归纳总结cout<<endl 。else ifchoice=4Search_s_tstu。cout<<endl 。else ifchoice=5Search_c_tstu。cout<<endl 。else ifchoice=6return 0 。可编辑资料 - - - 欢迎下载精品名师归纳总结elsecout<<" 对不起,没有这个菜单项."<<endl 。可编辑资料 - - - 欢迎下载精品名师归纳总结return 0 。可编辑资料 - - - 欢迎下载

    注意事项

    本文(c学生考勤信息管理完整 .docx)为本站会员(C****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开