1、C+学生考勤系统含源代码C+语言程序设计课程设计报告书题目: 班级: 学号: : 指导教师: 周期: 以下由验收老师填写 成绩: 年 月 日一、课程设计的目的与要求 (一)课程设计目的与任务C+作为一门程序设计语言,其学习的最终目的是应用,作课程设计可以让我们更好的理解C+语言的精髓,学习掌握C+的语言流程,初步了解编程的思路,并且有重点的练习我们C+中的类、对象等模块的,使我们对这些重中之重的语言模块掌握的更加灵活可以实现我们的一些初步的程序设计要求也可以提高我们的实践能力;在课程设计中我们也应该就产生的实际开发问题象老师请教学习,以最好的最高的水准完成设计任务。(二)题目要求考勤信息记录了
2、学生的缺课情况,它包括:缺课日期、第几节课、课程名称、学生、缺课类型(迟到、早退、请假及旷课)。试设计一考勤管理系统,使之能提供以下功能:(1)录入学生的缺课记录; (2)修改某个学生的缺课记录; (3)查询某个学生的缺课情况; (4)统计某段时间,旷课学生及旷课次数,按旷课次数由多到少排序; (5)统计某段时间,有学生旷课的课程及旷课人次,按旷课人次由多到少 排序; (6)系统以菜单方式工作。二、设计正文1、系统分析考勤信息记录了学生的缺课情况,它包括:缺课日期、第几节课、学生、缺课类型(迟到、早退、请假及旷课)。设计一考勤管理系统,使之能提供以下功能:(1)录入学生的缺课记录:从键盘输入数
3、据,输入格式为:学生、缺课日期、第几节课、课程名称、缺课类型。例如:三 2008-04-29 3-4 C+程序设计实验 迟到四2008-04-28 3-4 C+程序设计 旷课(2)修改某个学生的缺课记录:可以对缺课纪录的任意部分进行修改,然后显示一下修改后的纪录。(3)查询某个学生的缺课情况 (4)统计某段时间(以天为单位),旷课学生及旷课节数,查询结果先按旷课节数降序排序(5)统计某段时间,有学生旷课的课程及旷课人次,按旷课人次由多到少排序(6)系统以菜单方式工作。2、功能详细描述及框图这是一个小型的学生考勤系统,它使用类来实现,充分体现面向对象的程序设计特点。它可以实现的主要功能有:录入学
4、生的缺课记录; 修改某个学生的缺课记录;查询某个学生的缺课情况; 统计某段时间,旷课学生及旷课次数,按旷课次数由多到少排序; 统计某段时间,有学生旷课的课程及旷课人次,按旷课人次由多到少排序;框图:3、主要功能逻辑过程和实现算法此程序用到了大模块,分别是:主菜单模块;录入模块;修改模块;查询模块;查找人数模块;查找次数,每个模块可以实现不同的功能;(1)、主菜单模块:对本程序的功能进行说明,然后出现同学通迅录的主界面;(2)、录入模块:录入学生的缺课记录:从键盘输入数据,输入格式为:学生、缺课日期、第几节课、课程名称、缺课类型。(3)、查询模块:查询某个学生的缺课情况inname; m.rea
5、d(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课程名称:x.getm()endl; cout缺课类型:x.getl()name;/输入 void setd() cinday;/输入日期 void setk() cinn;/输入课时 void setm() cinkname;/输入课程名称 void setl() cinlx;/输入缺课类型 char * getn()
6、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; fstream file; file.open(D:学生考勤.txt,ios:in|ios:out);/文件存盘 coutj; coutttt请输入j名同学信息:endl; for(i=0;ij;i+) cout:; pi.setn(); cout日期:; pi.setd(); cout课时:; p
7、i.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;/ goto语句 m.open(D:学生考勤.txt,ios:in); cout请输入您要查询的同学:name; m.read(char *)&x, sizeof(x);
8、 while(!m.eof()/原文件到头结束 if(!strcmp(name, x.getn() cout:x.getn()endl; cout日期:x.getd()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; cout如继续查询请输入Y,否则按任意键返回z; if(z=Y|z=y) goto a1; /
9、修改函数的调用 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请输入您要修改的同学:xname; while(!xfile.eof()/调用EOF判断函数 if(!strcmp(xname, l.getn() cout:l.getn()endl; cout日期:l.getd()endl; cout课时:l.getk()endl; cout课程
10、名称:l.getm()endl; cout缺课类型:l.getl()endl; cout确认修改请按Y,否则按任意键w; if(w=Y|w=y) cout:; l.setn(); cout日期:; l.setd(); cout课时:; l.setk(); cout课程名称:; l.setm(); cout缺课类型:; l.setl(); xfile.open(D:学生考勤.txt,ios:in); xfile.write(char *)&l, sizeof(l); else break; xfile.read(char *)&l, sizeof(l);/读文件到L里 xfile.close()
11、;void renci() int i=0,j=1,x=0,y=0; student s; fstream d; d.open(D:学生考勤.txt,ios:in); d.read(char *)&s, sizeof(s); i=1; cout早退人数为:xendl; cout请假人数为:yendl; cout旷课人数为:iendl; cout迟到人数为:jendl; cout在s.getd()有:endl; cout课程名称:s.getm()endl; d.read(char *)&s, sizeof(s);/读文件到L里 d.close();void cishu() int i=0,j=1
12、,x=0,y=0; student m; fstream b; b.open(D:学生考勤.txt,ios:in); b.read(char *)&m, sizeof(m); i=1; cout早退次数为:xendl; cout请假次数为:yendl; cout旷课次数为:iendl; cout迟到次数为:jendl; cout在m.getd()有:endl; cout:m.getn()endl; b.read(char *)&m, sizeof(m);/读文件到L里 b.close();main() int i; while(1) coutttendl;coutttt欢迎进入学生考勤系统en
13、dl;coutttendl;couttt endl;couttt endl;couttt 1、录入学生的缺课记录; endl;couttt endl;couttt 2、修改某个学生的缺课记录; endl;couttt endl;couttt 3、查询某个学生的缺课情况 endl;couttt endl;couttt 4、旷课学生及旷课次数 endl;couttt endl;couttt 5、有学生旷课人次 endl;couttt endl;couttt 6. 退出 endl;couttt endl;couttt endl endl tt;coutt *请选择您所需要的信息*i; switch(i) case 1:luru();break; case 2: xiugai();break; case 3: chaxun();break; case 4:cishu();break; case 5:renci();break; case 6: break; if(i=6) coutendlendlendlttt退出考勤系统,欢迎下次使用! !endl; break; cout endl; return 0;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1