《C++学生考勤系统(含源代码).doc》由会员分享,可在线阅读,更多相关《C++学生考勤系统(含源代码).doc(21页珍藏版)》请在三一办公上搜索。
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)系统
4、以菜单方式工作。2、功能详细描述及框图这是一个小型的学生考勤系统, 它使用类来实现, 充分体现面向对象的程序设计特点。它可以实现的主要功能有:录入学生的缺课记录; 修改某个学生的缺课记录;查询某个学生的缺课情况; 统计某段时间内,旷课学生姓名及旷课次数,按旷课次数由多到少排序; 统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序;计算机应用技术系课程设计报告书框图 :3、主要功能逻辑过程和实现算法此程序用到了大模块 ,分别是:主菜单模块 ;录入模块 ;修改模块 ;查询模块 ;查找人数模块 ;查找次数 ,每个模块可以实现不同的功能 ;(1)、主菜单模块:对本程序的功能进行说明 ,
5、然后出现同学通迅录的主界面;(2)、录入模块: 录入学生的缺课记录: 从键盘输入数据, 输入格式为: 学生姓名、缺课日期、第几节课、课程名称、缺课类型。(3)、查询模块:查询某个学生的缺课情况inname;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 课程名称: x.getm()endl;cout 缺课类型: x.get
6、l()name;/ 输入姓名void setd()cinday;/ 输入日期void setk()计算机应用技术系课程设计报告书cinn;/ 输入课时void setm()cinkname;/ 输入课程名称void setl()cinlx;/ 输入缺课类型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;fstream
7、 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 成功输入同学信息 !请返回 !endl;file.close();/ 关闭文件/查询信息void chaxun()
8、/ 查询函数的调用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.eof()/ 原文件到头结束if(!strcmp(name, x.getn()cout 姓名: x.getn()endl;cout 日期: x.getd()endl;cout 课时: x.getk()endl;cout 课程名称: x.getm()endl;计算机应用技术系课程设计报告书cout 缺
9、课类型: 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;/修改函数的调用void xiugai() /* 修改成员函数 */student l;char xname20, w;计算机应用技术系课程设计报告书fstream xfile;学生考勤 .txt,ios:in|ios:out);xfile.read(char *)&l, sizeof(
10、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 课程名称 :l.getm()endl;cout 缺课类型 :l.getl()endl;cout 确认修改请按 Y ,否则按任意键 w;if(w=Y|w=y)cout 姓名: ;l.setn();cout 日期: ;l.setd();cout 课时: ;计算机应用技术系课程设
11、计报告书l.setk();cout 课程名称: ;l.setm();cout 缺课类型: ;l.setl();学生考勤 .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;学生考勤 .txt,ios:in);d.read(char *)&s, sizeof(s);i=1;cout 早退人数为:
12、 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,x=0,y=0;student m;fstream b;学生考勤 .txt,ios:in);b.read(char *)&m, sizeof(m);i=1;计算机应用技术系课程设计报告书cout 早退次数为: x
13、endl;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)couttt endl;coutttt 欢迎进入学生考勤系统 endl;couttt endl;couttt endl;couttt endl;couttt 1、录入学生的缺课记录; endl;couttt endl;couttt
14、 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 endltt;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;计算机应用技术系课程设计报告书