C++学生考勤系统含源代码_第1页
C++学生考勤系统含源代码_第2页
C++学生考勤系统含源代码_第3页
C++学生考勤系统含源代码_第4页
C++学生考勤系统含源代码_第5页
免费预览已结束,剩余19页可下载查看

下载本文档

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

文档简介

1、C+语言程序设计课程设计报告书题目:班级:学号:姓名:指导教师:周期:以下由验收老师填写成绩年月曰一、课程设计的目的与要求(一)课程设计目的与任务C+作为一门程序设计语言,其学习的最终目的是应用,作课程设计可以让我们更好的理解C+语言的精髓,学习掌握C+的语言流程,初步了解编程的思路,并且有重点的练习我们C+中的类、对象等模块的,使我们对这些重中之重的语言模块掌握的更加灵活可以实现我们的一些初步的程序设计要求也可以提高我们的实践能力;在课程设计中我们也应该就产生的实际开发问题象老师请教学习,以最好的最高的水准完成设计任务。(二)题目要求考勤信息记录了学生的缺课情况,它包括:缺课日期、第几节课、

2、课程名称、学生姓名、缺课类型(迟到、早退、请假及旷课)。试设计一考勤管理系统,使之能提供以下功能:(1) .录入学生的缺课记录;(2) .修改某个学生的缺课记录;(3) .查询某个学生的缺课情况;(4) .统计某段时间内,旷课学生姓名及旷课次数,按旷课次数由多到少排序;(5) .统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序;(6) .系统以菜单方式工作。二、设计正文1、系统分析考勤信息记录了学生的缺课情况,它包括:缺课日期、第几节课、学生姓名、缺课类型(迟到、早退、请假及旷课)。设计一考勤管理系统,使之能提供以下功能:(1) .录入学生的缺课记录:从键盘输入数据,输入格式

3、为:学生姓名、缺课日期、第几节课、课程名称、缺课类型。例如:张三2008-04-293-4C+程序设计实验迟到李四2008-04-283-4C+程序设计旷课(2) .修改某个学生的缺课记录:可以对缺课纪录的任意部分进行修改,然后显示一下修改后的纪录。(3) .查询某个学生的缺课情况(4) .统计某段时间内(以天为单位),旷课学生姓名及旷课节数,查询结果先按旷课节数降序排序(5) .统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序(6) .系统以菜单方式工作。2、功能详细描述及框图这是一个小型的学生考勤系统,它使用类来实现,充分体现面向对象的程序设计特点。它可以实现的主要功能有

4、:录入学生的缺课记录;修改某个学生的缺课记录;查询某个学生的缺课情况;统计某段时间内,旷课学生姓名及旷课次数,按旷课次数由多到少排序;统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序;框图:Public公有成员函数十Private私有数据成员;ing3、主要功能逻辑过程和实现算法此程序用到了大模块,分别是:主菜单模块;录入模块;修改模块;查询模块;查找人数模块;查找次数,每个模块可以实现不同的功能;(1)、主菜单模块:对本程序的功能进行说明,然后出现同学通迅录的主界面;(2)、录入模块:录入学生的缺课记录:从键盘输入数据,输入格式为:学生姓名、缺课日期、第几节课、课程名称、缺

5、课类型。(3)、查询模块:查询某个学生的缺课情况in>>name;m.read(char*)&x,sizeof(x);while(!m.eof()/(if(!strcmp(name,x.getn()(cout<<"姓名:"<<x.getn()<<endl;cout<<"日期:"<<x.getd()<<endl;cout<<"课时:"<<x.getk()<<endl;cout<<"课程名称

6、:"<<x.getm()<<endl;cout<<"缺课类型:"<<x.getl()<<endl;flag=1;(5)、查找次数模块:统计某段时间内(以天为单位),旷课学生姓名及旷课节数,查询结果先按旷课节数降序排序(6)、查找人数模块:统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序。5、界面设计(1)主菜单界面,确确率迎进小学学考挚奉统会会± /录入学生的跳课记录;i 如修改某个学生的缺课记录!* 歪查询某个学生的跳课情况* 心旷课学生姓名及旷课次数未 深£.有学

7、生旷课人次 小退出葭mmm至派请选择您所需要的信息-X.MXXW爻6、系统测试(1)输入记录界面uangfei2010-8-732gaoshu及uacgflcE11112010-764C+chld.a0成功输入同学信息请返回,-:&:©T甘IJetmc473-e五起请输入普名同学信息:*请选择您所需要的信息*云久旷像学生姓名及旷课次数-口工窜|.!,卡工*>.!才1"名期时初名期时箱*派£、有学生旷课人次&一退出*(2)修改记录界面八,E:4T3Debug473.eae"1、录入学生的缺课记录工工修改某个学生的缺课记录;3,查询某个

8、学生的缺课情况%旷课学生姓名及旷课次数£、有学生旷课人次6.退出*请选择您所需要的信息底:呈退次数沏口造假次数为H旷课次数为:1迟到次数为15ii生名:wdinsi(4)旷课课程名称匚"E:4T3DebuK4T3.exe匚录入竽生的跳评记录,53修改某个学生的缺谭记录,*5五查询某个学生的缺理情况*唆旷课学生姓名及旷理次数*弓、有学生旷课人次*云6.退出*女叉:.*请选择您所需要的信息,*;&为为为为T:9数数数数T称人:八人八10宕退假瞟到2H程nH迟在理柒、录入学生的缺谓记录工二修改某个学生的跳课记歪i二查询某个学生的跳课情况t系1旷课学生姓名及旷i果次数*米5

9、、有学生旷课人次3退出*道*#1请选择您所需要的信息一ff太退出考勤系统.欢迎下次使用T三、小组成员分工说明独立完成四、课程设计总结或结论1课程设计过程中出现的技术难点和解决方法:技术难点:对文件的使用不熟悉,不会使用。解决方法:通过到图书馆查阅资料,以及课本上的讲解和老师的帮助让我会应用文件进行数据的输出与写入,从而完善了我的程序。2课程设计期间的主要收获:这是上大学以来第一次作课程设计,刚开始有点不知所措,很茫然,但后来,开始有了思路,作起来也容易多了,虽然会在这呆一整天,但感觉时间过得很快。本次作课程设计让我更好的理解C+语言的精髓,也更加体会到了,只有理论与实践相结合才是真正的学会,而

10、不是只有打高分才是真的学好,这次课程设计让我掌握了C+的语言流程,初步了解编程的思路,并且类、对象等模块更加深了了解的,特别是使用文件这块,我认为文件很难,刚开始,不会使用,但后来查了很多资料,也明白了应该怎么使用,作起来就顺手多了。作课程设计的目的就是要提高我们的实践能力;所以,我会以自己所掌握的知识高水准的完成此次设计任务。源代码:#include"fstream.h"#include"iostream.h"#include"string.h"classstudent声明一个类为people(private:charday20;c

11、harname20;intn;charkname20;charlx20;public:/公有数据成员voidsetn()(cin>>name;/输入姓名voidsetd()(cin>>day;/输入日期voidsetk()cin>>n;/输入课时)voidsetm()(cin>>kname;/输入课程名称)voidsetl()(cin>>lx;/输入缺课类型)char*getn()(returnname;)char*getd()(returnday;)intgetk()(returnn;)char*getm()(returnkname

12、;)char*getl()(returnlx;);voidluru()(intj,i;studentp100;fstreamfile;学生考勤.txt",ios:in|ios:out);/文件存盘cout<<"=请输入要录入几名同学信息:";cin>>j;cout<<"ttt请输入"<<j<<"名同学信息:"<<endl;for(i=0;i<j;i+)(cout<<"姓名:"pi.setn();cout<<

13、;"日期:";pi.setd();cout<<"课时:"pi.setk();cout<<"名称:"pi.setm();cout<<"类型:"pi.setl();file.write(char*)&pi,sizeof(pi);/写文件)cout<<"人人成功输入同学信息!请返回!"<<endl;file.close();/关闭文件)/查询信息voidchaxun()/查询函数的调用studentx;charname20,z;fst

14、reamm;a1:inta=0,flag=0;/goto语句学生考勤.txt",ios:in);cout<<"请输入您要查询的同学姓名:"<<endl;cin>>name;m.read(char*)&x,sizeof(x);while(!m.eof()/原文件到头结束if(!strcmp(name,x.getn()cout<<"姓名:"<<x.getn()<<endl;cout<<"日期:"<<x.getd()<&l

15、t;endl;cout<<"课时:"<<x.getk()<<endl;cout<<”课程名称:"<<x.getm()<<endl;cout<<"缺课类型:"<<x.getl()<<endl;flag=1;break;)m.read(char*)&x,sizeof(x);)m.close();if(flag=0)cout<<"一对不起,您查询的同学无缺课现象,请返回!"<<endl;)co

16、ut<<"如继续查询请输入Y,否则按任意键返回"<<endl;cin>>z;if(z='Y'|z='y')gotoa1;)/修改函数的调用voidxiugai()/*修改成员函数*/studentl;charxname20,w;fstreamxfile;学生考勤.txt",ios:in|ios:out);xfile.read(char*)&l,sizeof(l);/读文件到L里cout<<"请输入您要修改的同学姓名:"<<endl;cin>

17、>xname;while(!xfile.eof()/调用EOF判断函数if(!strcmp(xname,l.getn()cout<<"姓名:"<<l.getn()<<endl;cout<<"日期:"<<l.getd()<<endl;cout<<"课时:"<<l.getk()<<endl;cout<<"课程名称:"<<l.getm()<<endl;cout<<

18、;"缺课类型:"<<l.getl()<<endl;cout<<"确认修改请按Y,否则按任意键"<<endl;cin>>w;if(w='Y'|w='y')cout<<"姓名:"l.setn();cout<<"日期:";l.setd();cout<<"课时:II.l.setk();cout<<"课程名称:"l.setm();cout<<&q

19、uot;缺课类型:"l.setl();学生考勤.txt",ios:in);xfile.write(char*)&l,sizeof(l);)elsebreak;)xfile.read(char*)&l,sizeof(l);/读文件到L里)xfile.close();)voidrenci()inti=0,j=1,x=0,y=0;students;fstreamd;学生考勤.txt",ios:in);d.read(char*)&s,sizeof(s);i=1;cout<<"早退人数为:"<<x<&

20、lt;endl;cout<<"请假人数为:"<<y<<endl;cout<<"旷课人数为:"<<i<<endl;cout<<"迟至U人数为:"<<j<<endl;cout<<"在"<<s.getd()<<"有:"<<endl;cout<<"课程名称:"<<s.getm()<<endl;d

21、.read(char*)&s,sizeof(s);/读文彳至UL里d.close();voidcishu()inti=0,j=1,x=0,y=0;studentm;fstreamb;学生考勤.txt",ios:in);b.read(char*)&m,sizeof(m);i=1;cout<<"早退次数为:"<<x<<endl;cout<<"请假次数为:"<<y<<endl;cout<<"旷课次数为:"<<i<&

22、lt;endl;cout<<"迟至U次数为:"<<j<<endl;cout<<"在"<<m,getd()<<"有:"<<endl;(cout<<"姓名:"<<m.getn()<<endl;)b.read(char*)&m,sizeof(m);/读文件到L里b.close();)main()(inti;while(1)(cout<<"tt"<<endl;cout<<"ttt欢迎进入学生考勤系统"<<endl;cout<<"tt"<<endl;cout<<"tt”<<endl;cout<<"tt”<<endl;cout<<"ttX1、录入学生的缺课记录;”<<endl;cout<<"tt”<<endl;cout<<"ttX2、修改某个学生的缺课记录;”<<en

温馨提示

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

评论

0/150

提交评论