ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:503.89KB ,
资源ID:2446865      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2446865.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(学生考勤管理系统课程设计报告.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

学生考勤管理系统课程设计报告.docx

1、学生考勤管理系统课程设计报告一需求分析功能需求: 1、录入学生的缺勤记录; 2、修改某个学生的缺勤记录; 3、查询某个学生的缺勤情况; 4、统计某段时间内,缺勤学生学号及缺勤次数,按缺勤权值统计学生的负分值,并能进行排序; 5、统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序; 6、系统以菜单方式工作数据需求 本系统主要涉及的数据有学生缺课信息类和有关信息排序类。学生缺课信息包括缺课时间,学生姓名,课程名称,第几节,学生迟到次数,早退次数,请假次数,旷课次数。有关信息排序类包括对课程排序和对姓名排序。性能需求 要求系统具有可靠性,速度要快二、系统的主要功能 (1)、录入学生的

2、缺课记录,函数代码void input(records *r)模块中。首先提示用户按照正确的格式进行学生缺课记录的录入,这个步骤比较简单,只需要不断地将记录的每个数据项存入结构体对应的成员中。 (2)、修改某个学生的缺课记录,函数代码void edt(records *r)模块中。首先必须查找到你所需要修改的那位的学生全部缺课记录。这个模块不需要定义新的结构体。在修改前当然要检查记录是否为空了,不为空的话,可以设置下面这五个菜单供用户选择:1、缺课日期2、第几节课3、课程名称4、学生姓名5、缺课类型6、退出修改程序并返回系统主菜单。修改很简单,仅需要对该学生的某个部分进行替换即可。采用swit

3、ch语句很快就解决。最后实现对所选记录的修改,完成后更新原有的学生记录。 (3)、查询某个学生的缺课情况,函数代码void search(records *r)模块中。达到查询结果按照日期升序排序,同一天内按照所缺课程的时间升序排序的目的, (4)、统计,函数代码为void order_c()和void order_s()的类模块中。其中实现对课程排序和对学生姓名的排序。三、流程图学生考勤系统结构图:基类的数据成员和成员描述 recordString date,cname,sname;int cno,type;void set();string tostr();类名/函数名描述 类名/函数名描

4、述record 基类edt()修改学生信息records实现学生旷课情况排序的类del()删除学生信息wt/rd()实现对文件的输入和输出search()查找学生信息input()录入学生的缺课记录search_s()一定范围查找学生信息edt()修改学生信息main()主函数四、数据结构设计 此程序运用多种条件语句,主体采用的是动态数组、指针。系统的设计采用了数组语句、选择语句和循环语句,在需要处理大量同类数据时,这样就使程序书写更加简洁。程序使用了布尔函数。选择语句多采用if多分支选择结构与switch语句。首先计算switch表达式,然后在caes子句中寻找值相等的常量表达式,并以此为入

5、口符号,由此开始顺序执行。循环语句采用了for语句等、do-while语句,for语句用于已知循环次数的循环结构,括号中的三个量分别用来表示循环变量初值、循环终值和循环增量。do-while语句先循环后判断, Break语句在switch语句中,保证多分支情况的正确执行,在循环语句中,强制终止本层循环。保存和读取函数是典型的函数功能,一个程序是由若干个函数组成的,保存和读取函数是和其他函数互相调用的再有使用有关类的设计,学生缺课信息类和有关信息排序类,如下:class record /学生缺课信息类public: void set(string d,int cno,string c,strin

6、g s,int type) date.assign(d);/日期 cname.assign(c);/课程名字 sname.assign(s);/学生姓名 this-cno=cno;/对缺课类型的选择 为int型 this-type=type;/缺课类型 void set(record re) date.assign(re.date); cname.assign(ame); sname.assign(re.sname); this-cno=o; this-type=re.type; string date,cname,sname; int cno,type;class records /实现学生

7、旷课情况排序的类public: records() /构造函数 r=new record100; n=0; void order_s() /姓名的排序 int i; int j; string *s=new stringn; int *c=new int n; s0.assign(r0.sname); c0=1; int k=1,flag; for( i=1;in;i+) flag=0; for( j=0;jk;j+) if(ri.sname=sj) cj+; flag=1; break; if(!flag) sk=ri.sname; ck+=1; for(i=1;i0;j-) if(cjcj

8、-1) int tmp=cj; cj=cj-1; cj-1=tmp; string stmp=sj; sj=sj-1; sj-1=stmp; cout旷课学生姓名t旷课次数endl; for(i=0;ik;i+) coutsittciendl; void order_c() /课程排序 int i,j; string *s=new stringn; int *c=new int n; s0.assign(ame); c0=1; int k=1,flag; for( i=1;in;i+) flag=0; for(j=0;jk;j+) if(ame=sj) cj+; flag=1; break;

9、if(!flag) sk=ame; ck+=1; for(i=1;i0;j-) if(cjcj-1) int tmp=cj; cj=cj-1; cj-1=tmp; string stmp=sj; sj=sj-1; sj-1=stmp; cout课程名t旷课人次endl; for(i=0;ik;i+) coutsitciendl; record *r; int n; 把所有的学生记录都保存到一个文件里面,然后根据需要再将里面需要查找的元素进行查找,相应的排序可能就是将他们尽可能压进关联式容器map,有的部分就压入set里面,这些都是根据模块的功能来选定的。可以这么说,选择好合理的数据结构查找与排

10、序就可以一劳永逸了。这点在后面部分会有详细的说明。还有就是对各功能子函数的编写应用。五、类设计系统中主要涉及了两个类: 一个是class record /关于学生考勤基本信息类 另一个是class records/实现学生旷课情况排序的类六、主要算法设计 关键算法:旷课情况的排序:class records/实现学生旷课情况排序的类public: records() /构造函数 r=new record100; n=0;旷课记录的修改: cout请输入要修改缺课记录的学生姓名: tmp; t1.assign(tmp); for(i=0;in;i+) if(r-ri.sname=t1) flag

11、=7; break; if(!flag) cout查无此学生!ri.date; t2=r-o; t3=r-ame; t4=r-ri.sname; t5=r-ri.type;旷课项目的修改! cout请输入要修改的项目:n(1.缺课日期 2.缺课节次 3.缺课名称 4.学生姓名 5.缺课类型 6.全部) flag; switch(flag) case 1:goto e1; case 2:goto e2; case 3:goto e3; case 4:goto e4; case 5:goto e5; case 6:goto e1; default:goto e0; 用到的知识点有:函数的作用域、函

12、数的调用、数组赋值、函数循环、以及类的定义,另外还用到了for函数、getch函数、switch函数、case函数、default函数等等。七、主要代码第一部分:学生考勤管理系统#include stdlib.h#include hanshushixian.h#include record.h#include #include #include #include using namespace std;#include record.hint main() c1: /主菜单实现 system(cls); cout *endl; cout * 欢迎访问学生考勤管理系统 *endl; cout *endl; cout

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1