C++学生考勤系统(含源代码)_第1页
C++学生考勤系统(含源代码)_第2页
C++学生考勤系统(含源代码)_第3页
C++学生考勤系统(含源代码)_第4页
C++学生考勤系统(含源代码)_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

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

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

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

4、向对象的程序设计特点。它可以实现的主要功能有:录入学生的缺课记录; 修改某个学生的缺课记录;查询某个学生的缺课情况; 统计某段时间内,旷课学生姓名及旷课次数,按旷课次数由多到少排序; 统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序;框图:3、主要功能逻辑过程和实现算法此程序用到了大模块,分别是:主菜单模块;录入模块;修改模块;查询模块;查找人数模块;查找次数,每个模块可以实现不同的功能;(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<<&quo

6、t;课程名称:"<<x.getm()<<endl;cout<<"缺课类型:"<<x.getl()<<endl; flag=1;(5)、查找次数模块:统计某段时间内(以天为单位),旷课学生姓名及旷课节数,查询结果先按旷课节数降序排序(6)、查找人数模块:统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序。5、界面设计(1)主菜单界面6、系统测试(1)输入记录界面(2)修改记录界面(3)旷课人名(4)旷课课程名称(5)退出界面三、小组成员分工说明独立完成四、课程设计总结或结论1 课程设计过程中

7、出现的技术难点和解决方法:技术难点:对文件的使用不熟悉,不会使用。解决方法:通过到图书馆查阅资料,以及课本上的讲解和老师的帮助让我会应用文件进行数据的输出与写入,从而完善了我的程序。 2 课程设计期间的主要收获:这是上大学以来第一次作课程设计,刚开始有点不知所措,很茫然,但后来,开始有了思路,作起来也容易多了,虽然会在这呆一整天,但感觉时间过得很快。本次作课程设计让我更好的理解C+语言的精髓,也更加体会到了,只有理论与实践相结合才是真正的学会,而不是只有打高分才是真的学好,这次课程设计让我掌握了C+的语言流程,初步了解编程的思路,并且类、对象等模块更加深了了解的,特别是使用文件这块,我认为文件

8、很难,刚开始,不会使用,但后来查了很多资料,也明白了应该怎么使用,作起来就顺手多了。作课程设计的目的就是要提高我们的实践能力;所以,我会以自己所掌握的知识高水准的完成此次设计任务。源代码:#include "fstream.h"#include "iostream.h"#include "string.h"class student/声明一个类为peopleprivate:char day20;char name20;int n;char kname20;char lx20;public:/公有数据成员void setn()cin&g

9、t;>name;/输入姓名void setd()cin>>day;/输入日期void setk()cin>>n;/输入课时void setm()cin>>kname;/输入课程名称void setl()cin>>lx;/输入缺课类型 char * getn()return name;char * getd()return day; int getk()return n;char * getm()return kname;char * getl()return lx;void luru()int j, i;student p100;fstre

10、am file;file.open("D:学生考勤.txt",ios:in|ios:out);/文件存盘cout<<"请输入要录入几名同学信息:"cin>>j;cout<<"ttt请输入"<<j<<"名同学信息:"<<endl;for(i=0;i<j;i+) cout<<"姓名:" pi.setn(); cout<<"日期:" pi.setd(); cout<<&

11、quot;课时:" pi.setk(); cout<<"名称:" pi.setm(); cout<<"类型:" pi.setl(); file.write(char *)&pi, sizeof(pi);/写文件cout<<"成功输入同学信息!请返回!"<<endl;file.close();/关闭文件 /查询信息 void chaxun()/查询函数的调用 student x; char name20,z; fstream m; a1:int a=0,flag=0;/

12、goto语句 m.open("D:学生考勤.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

13、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

14、;cout<<"如继续查询请输入Y,否则按任意键返回"<<endl;cin>>z;if(z='Y'|z='y')goto a1; /修改函数的调用 void xiugai() /*修改成员函数*/ student l;char xname20, w;fstream xfile; xfile.open("D:学生考勤.txt",ios:in|ios:out); xfile.read(char *)&l, sizeof(l);/读文件到L里cout<<"请输入您

15、要修改的同学姓名:"<<endl;cin>>xname;while(!xfile.eof()/调用EOF判断函数if(!strcmp(xname, l.getn()cout<<"姓名:"<<l.getn()<<endl;cout<<"日期:"<<l.getd()<<endl;cout<<"课时:"<<l.getk()<<endl;cout<<"课程名称:"<

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

17、"课程名称:"l.setm();cout<<"缺课类型:"l.setl(); xfile.open("D:学生考勤.txt",ios:in);xfile.write(char *)&l, sizeof(l);elsebreak;xfile.read(char *)&l, sizeof(l);/读文件到L里 xfile.close();void renci()int i=0,j=1,x=0,y=0;student s;fstream d; d.open("D:学生考勤.txt",ios:i

18、n);d.read(char *)&s, sizeof(s); i=1; cout<<"早退人数为:"<<x<<endl;cout<<"请假人数为:"<<y<<endl; cout<<"旷课人数为:"<<i<<endl; cout<<"迟到人数为:"<<j<<endl;cout<<"在"<<s.getd()<<

19、"有:"<<endl;cout<<"课程名称:"<<s.getm()<<endl; d.read(char *)&s, sizeof(s);/读文件到L里 d.close();void cishu()int i=0,j=1,x=0,y=0;student m;fstream b; b.open("D:学生考勤.txt",ios:in);b.read(char *)&m, sizeof(m); i=1; cout<<"早退次数为:"<&

20、lt;x<<endl;cout<<"请假次数为:"<<y<<endl; cout<<"旷课次数为:"<<i<<endl; cout<<"迟到次数为:"<<j<<endl;cout<<"在"<<m.getd()<<"有:"<<endl;cout<<"姓名:"<<m.getn()<&l

21、t;endl; b.read(char *)&m, sizeof(m);/读文件到L里 b.close();main() int i; while(1) cout<<"tt"<<endl;cout<<"ttt欢迎进入学生考勤系统"<<endl;cout<<"tt"<<endl;cout<<"tt "<<endl;cout<<"tt "<<endl;cout<<"tt 1、录入学生的缺课记录; "<<endl;cout<<"tt "<<endl;cout<<"tt 2、修改某个学生的缺课记录; "<<endl;cout<<"tt "<<endl;cout<<"tt 3、查询某个学生的缺课情况 "&l

温馨提示

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

评论

0/150

提交评论