学生考勤管理系统课程设计报.docx
《学生考勤管理系统课程设计报.docx》由会员分享,可在线阅读,更多相关《学生考勤管理系统课程设计报.docx(28页珍藏版)》请在三一办公上搜索。
1、学生考勤管理系统课程设计报南昌航空大学 面向对象程序课程设计(c+) 题目:班级考勤管理系统 院系 : 软件学院 班级 : 668 学号 : 668 姓名 : 帅哥 一需求分析 功能需求: 1录入班级信息; 2. 显示班级信息; 3. 录入学生的信息和缺勤记录; 4. 修改某个学生的信息和缺勤记录; 5. 查询某个学生的信息和缺勤情况; 6. 以文件的形式读写; 7. 系统以菜单方式工作; 数据需求 本系统主要涉及的数据有班级信息和学生信息及缺课信息类。班级信息包括班级的学号,班级的人数,学生缺课信息包括学生姓名,学号,专业,课程名称,缺课节次,学生缺课类型。 二、系统的主要功能 (1). 录
2、用班级信息记录,在class clas中成员函数void set实现,按照用户提示进行操作写入类中,显示在void display中。 (2). 录入学生的信息和缺课记录,在class student中成员函数代码void input实现中。首先提示用户按照正确的格式进行学生缺课记录的录入,这个步骤比较简单,只需要不断地将记录的每个数据项存入结构体对应的成员中。 (3)、修改某个学生的缺课记录,在class student中成员函数void edt实现。首先必须查找到你所需要修改的哪位的学生全部缺课记录。可以设置下面这五个菜单供用户选择:1、学生学号2、学生姓名3、学生班级4、缺课课程5、缺课
3、类型6、退出修改程序并返回系统主菜单。修改很简单,仅需要对该学生的某个部分进行替换即可。最后实现对所选记录的修改,完成后更新原有的学生记录。 (4)、查询某个学生的缺课情况,在class student中成员函数void search实现。可以对学生的学号进行查询,并输出学生信息和考勤的信息。 (5)、学生信息的保存运用文件来保存,在class student中成员函数 void wt(int &i)和 void rd中实现。 三、类的设计 本系统设计了三个大类,一个是班级信息类,实现班级信息的录用,显示。另一个学生基本信息设置类,实现学生信息课程的录用。最后一个学生考勤操作类实现考勤信息查询
4、,显示,修改,保存等。在主函数中实现桌面菜单操作。 四、流程图 2 学生考勤系统结构图: 基类的数据成员和成员描述 Class clas 班级信息基类 int cnum,pnum; 班级数据成员 void setc; 录用班级信息 void display; 显示班级信息 继承 Class student 学生信息课程类 int snum ,cnum,type; char cname5,sname5,lname5 学生课程数据成员 void set;传递学生信息 Class records 实现学生信息和考勤情况操作的类 clas *p; student *r; 基类对象的指针 static
5、int n=0; void Input 录用学生课程考勤信息 void wt/rd/wdt 信息以文件的形式保存 void pri 显示学生课程考勤信息 void edt 修改学生考勤信息 void del 删除学生考勤信息 void search 查询学生考勤信息 最后为 main 3 五、类具体设计实现及主函数实现 此程序运用多种条件语句,主体采用的是动态对象数组、指针。系统的设计采用了数组语句、选择语句和循环语句,在需要处理大量同类数据时,这样就使程序书写更加简洁。程序。选择语句多采用if多分支选择结构与switch语句。首先计算switch表达式,然后在caes子句中寻找值相等的常量表
6、达式,并以此为入口符号,由此开始顺序执行。switch语句中,保证多分支情况的正确执行,在循环语句中,强制终止本层循环。保存和读取函数是典型的函数功能,一个程序是由若干个函数组成的,保存和读取函数是和其他函数互相调用的。 1. 编写头文件(类的声明写一个文件“ClaStu.h”) / * /头文件 ClaStu.h /* #include #include #include #include #include const int max=15; class clas /班级信息基类 public: void setc; /录用班级信息 void display; /显示班级信息 int cnu
7、m; /班级编号 int pnum; /班级人数 ; class student /学生信息课程类 public: void set(int b, char* s,char* l,char* c,int cno,int type); /传递学生信息 char cname5,sname5,lname5; /定义缺课课程名称,学生称名,学生类别名称 int snum ,cno,type; /定义学生学号,缺课节次,缺课类型 ; class records:public student ,clas /实现学生信息和考勤情况操作的类 4 public: records /构造函数 r=new stud
8、entmax; /动态建立两个基类对象数组,返回两个对象指针 p=new clasmax; void input; /录用学生课程考勤信息 void wt(int &i); / 信息以文件的形式保存 void rd; / 信息以文件的形式读出 void pri; / 显示学生课程考勤信息 void search; / 查询学生考勤信息 void del; / 删除学生考勤信息 void edt; / 修改学生考勤信息 void wdt(int &n); / 修改信息以文件的形式保存 student *r; / 声明两个对象指针 clas *p; static int n; / n为静态变量记录
9、创建对象的个数, ; int records:n=0; 2. 编写cpp文件(类的实现) 自定义的包含文件一般都放在自己指定的目录中,所以在引用他们时,采用双引号以通知c 编译器在用户指定的目录下和当前目录下寻找包含文件。 #include”ClasStu.h” void clas:setc / 录用班级信息 cout输入班级学号:cnum; cout输入班级人数:pnum; void clas:display /显示班级信息 cout班级学号:cnumendl; cout班级人数:pnumsnum=b; /学生学号 this-cno=cno; /缺课节次 this-type=type; /缺
10、课类型 void records: wt(int & i) / 信息以文件的形式保存 ofstream outf; /声明一个流对象 if(i0) / 判断是否是第一个数据,如果不是以追加文件尾的方式存储 outf.open(data.txt,ios:app); else outf.open(data.txt,ios:out);/创建一个文件并以文件的方式存储 outfsetw(6)n; / 以左边对齐6个字节方式存储 outfsetw(6)ri.snumsetw(6)osetw(6)ri.typesetw(1); outfsetw(7); outfri.sname; outfsetw(7);
11、 outfri.lname; outfsetw(7); outfn; ame; i+; void records:wdt( int &i) /修改信息以文件的形式保存 ofstream outf(data.txt); /同上面原理相同不在介绍 6 outfsetw(6)n; outfsetw(6)ri.snumsetw(6)osetw(6)ri.typesetw(1); outfsetw(7); outfri.sname; outfsetw(7); outfri.lname; outfsetw(7); ame; outf.close; void records:input /学生考勤系统的录用
12、模块 for(int i=0;i100;i+) char t15,t25,t35; /创建字符数组保存输入的学生信息和课程 int t4,t5,t6; char yn; cout录入一条学生详细考勤记录:endl; cout输入学生的学号,学生的姓名,专业,缺课课程,缺课节次和缺课类别。t4t1t2t3t5t6; records:n+; coutendl; ri.set(t4,t1,t2,t3,t5,t6); coutn; char y; cout保存? (y/n) y; if(y=y)wt(i); cout是否继续输入? (y/n) yn; if(yn=y) continue; else b
13、reak; void records:pri /学生考勤系统显示模块 if(n=0) cout -文件记录为空-endl-请先输入数据保存在进行此次操作-endl; return; 7 数 coutri.snumt; coutri.snamet; coutri.lnamet; amettt; ott; switch(ri.type) /缺课信息以整形数据保存,以字符输出 case 1:cout迟到endl;break; case 2:cout早退endl;break; case 3:cout请假endl;break; case 4:cout旷课endl;break; default:; voi
14、d records:edt /学生考勤系统修改模块 cout请输入要修改缺课记录的学生的学号: tnum; for( i=0;in;i+) if(ri.snum=tnum) cout有您要查询的学生; break; if(!flag) cout查无此学生!endl; return ; t1=ri.snum; strcpy(t2,ri.sname); 8 cout学号 t姓名 t专业 t缺课课程t,缺课节次t缺课类别。endl; for(int i=0;in;i+) /学生缺课信息数据输出,n为静态变量记录创建对象的个 strcpy(t3,ri.lname); strcpy(t4,ame); t
15、5=o; t6=ri.type; cout请输入要修改的项目:n(1.学生学号 2.学生姓名 3.学生专业 4.缺课科目 5.缺课次数 6.缺课类型km; switch(km) /控制修改的选项 case 1: cout请输入修改的学生学号: t1; break; case 2: cout请输入修改的学生姓名: t2; break; case 3: cout请输入修改的缺课课程: t3 ; break; case 4: cout请输入修改的学生专业: t4; break; case 5: cout输入修改的缺课课程次数:t5; break; case 6: cout请输入缺课类型: (1.迟到
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 考勤 管理 系统 课程设计
链接地址:https://www.31ppt.com/p-3425517.html