1、从键盘输入数据,输入格式为:学生姓名、缺课日期、第几节课、课程名称、缺课类型。例如:张三 2008-04-29 3-4 C+程序设计实验 迟到李四2008-04-28 3-4 C+程序设计 旷课(2)修改某个学生的缺课记录:可以对缺课纪录的任意部分进行修改,然后显示一下修改后的纪录。(3)查询某个学生的缺课情况 (4)统计某段时间内(以天为单位),旷课学生姓名及旷课节数,查询结果先按旷课节数降序排序(5)统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序(6)系统以菜单方式工作。2、功能详细描述及框图这是一个小型的学生考勤系统,它使用类来实现,充分体现面向对象的程序设计特点。它
2、可以实现的主要功能有:录入学生的缺课记录; 修改某个学生的缺课记录;查询某个学生的缺课情况; 统计某段时间内,旷课学生姓名及旷课次数,按旷课次数由多到少排序; 统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序;框图:3、主要功能逻辑过程和实现算法此程序用到了大模块,分别是:主菜单模块;录入模块;修改模块;查询模块;查找人数模块;查找次数,每个模块可以实现不同的功能;(1)、主菜单模块:对本程序的功能进行说明,然后出现同学通迅录的主界面;(2)、录入模块:录入学生的缺课记录:(3)、查询模块:查询某个学生的缺课情况inname; m.read(char *)&x, sizeof
3、(x); while(!m.eof()/原文件到头结束 if(!strcmp(name, x.getn() coutx.getn()endl;日期:x.getd()课时:x.getk()课程名称:x.getm()缺课类型:x.getl()/输入姓名 void setd()day;/输入日期 void setk()n;/输入课时 void setm()kname;/输入课程名称void setl()lx;/输入缺课类型 char * getn() return name; char * getd() return day; int getk() return n; char * getm() r
4、eturn kname; char * getl() return lx;void luru() int j, i; student p100; fstream file; file.open(D:学生考勤.txt,ios:in|ios:out);/文件存盘 coutj;ttt请输入j名同学信息: for(i=0;ii+) cout pi.setn(); pi.setd(); pi.setk();名称: pi.setm();类型: pi.setl(); file.write(char *)&pi, sizeof(pi);/写文件成功输入同学信息!请返回! file.close();/关闭文件
5、/查询信息 void chaxun()/查询函数的调用 student x; char name20,z; fstream m; a1: int a=0,flag=0;/ goto语句 m.open(in);请输入您要查询的同学姓名: flag=1; break; m.close(); if(flag=0)对不起,您查询的同学无缺课现象,请返回!如继续查询请输入Y,否则按任意键返回z; if(z=Y|z=y) goto a1; /修改函数的调用 void xiugai() /*修改成员函数*/ student l; char xname20, w; fstream xfile; xfile.o
6、pen( xfile.read(char *)&l, sizeof(l);/读文件到L里请输入您要修改的同学姓名:xname; while(!xfile.eof()/调用EOF判断函数 if(!strcmp(xname, l.getn()姓名:l.getn()日期:l.getd()课时:l.getk()课程名称:l.getm()缺课类型:l.getl()w; if(w=|w= l.setn(); cout l.setd(); l.setk(); l.setm(); l.setl(); xfile.write(char *)& else break; xfile.read(char *)& xf
7、ile.close();void renci() int i=0,j=1,x=0,y=0; student s; fstream d; d.open( d.read(char *)&s, sizeof(s); i=1;早退人数为:x请假人数为:y旷课人数为:迟到人数为:在s.getd()有: s.getm() d.close();void cishu() student m; fstream b; b.open( b.read(char *)&m, sizeof(m);早退次数为:请假次数为:旷课次数为:迟到次数为:m.getd()m.getn() b.close();main() int i
8、; while(1)coutttttt欢迎进入学生考勤系统tt tt 1、录入学生的缺课记录; tt 2、修改某个学生的缺课记录;tt 3、查询某个学生的缺课情况 tt 4、旷课学生姓名及旷课次数 tt 5、有学生旷课人次 tt 6. 退出 endl i; switch(i) case 1:luru();break; case 2: xiugai(); case 3: chaxun(); case 4:cishu(); case 5:renci(); case 6: break; if(i=6)endlttt退出考勤系统,欢迎下次使用! ! cout endl; return 0;欢迎您的下载,资料仅供参考!致力为企业和个人提供合同协议,策划案计划书,学习资料等等打造全网一站式需求
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2