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