学生考勤管理系统课程设计_第1页
学生考勤管理系统课程设计_第2页
学生考勤管理系统课程设计_第3页
学生考勤管理系统课程设计_第4页
学生考勤管理系统课程设计_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第1章 课题概述1.1 课题的目的课程设计题目:考勤管理(1) 了解并掌握中小型综合应用程序的一般设计方法,具备初步的独立分析和设计能力;(2) 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;(3) 提高综合运用所学的理论知识和方法独立分析和解决问题的能力;(4) 训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风;(5) 课题的代码要求达到一定工作量,并具有一定的深度和难度;(6) 根据课题程序的分析和设计过程,撰写课程设计报告。1.2 课题的要求(1) 录入学生的缺课记录; (2) 修改某个学生的缺课记录;(3) 查询某

2、个学生的缺课情况; (4) 统计某段时间内,旷课学生姓名及旷课次数,按旷课次数由多到少排序;(5) 统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序;  (6) 系统以菜单方式工作第2章 设计思路2.1模块设计学生考勤管理系统包含五个大的功能,分别是:录入学生缺课信息、修改学生缺课信息、查询某个学生的缺课情况、统计某段时间内(以天为单位),旷课学生姓名及旷课节数和统计某段时间内,有学生旷课的课程及旷课人次。学生的缺课信息主要包含学号,缺课日期,第几节课、课程名称,学生姓名,缺课类型。在程序开始时,系统提供相应的菜单供用户进行相应的选择操作。本程序包括基类class

3、student学生信息课程类,以及派生类class records:public student实现学生信息和考勤情况操作的类。这两个类 是所有函数进行操作的基础。Records(派生类)student *rtatic int nvoid records()void input()void wt(int &i)void rd()void pri1()void pri2()void search()void edt()void wdt(int &n)Student(基类)char cname100char sname100int snum int cnoint typeint t

4、imevoid set()void records:input()为学生考勤系统的录入模块,在录入学生缺课信息时根据系统提示逐一输入。每输入完一条信息,系统会提示是否继续输入,用户可以选择继续或返回主菜单。void records:edt()为学生考勤系统的修改模块,在修改学生缺课信息时,用户首先输入要修改的学生姓名,系统会检索如果系统中有该学生的相关信息则系统首先会提示用户修改该学生的那一部分信息,用户可自行选择。如果系统中没有该学生的相关信息,则系统会给相关提示,用户可以选择继续输入要修改的学生姓名或选择退出返回主菜单。void records:search()为学生考勤系统的学生查询模块

5、,在查询学生缺课信息时,用户先输入要查询的学生学号,系统检索判断是否存在该学生,若存在则输出查询到的该学生的信息。void records:pri1()为学生考勤系统的统计旷课学生模块,统计某段时间内,旷课学生姓名及旷课次数时,用户先输入要查询的时间间隔,系统自动检索在该时间段内的学生缺课信息并按旷课次数由多到少排序。void records:pri2()为学生考勤系统的统计旷课课程模块,统计某段时间内,有学生旷课的课程及旷课人次,用户先输入要查询的时间间隔,系统自动检索在该时间段内的有学生旷课的课程并按旷课人次由多到少排序。2.2 程序流程图整个程序的流程如图2-1所示。图2-1 程序流程图

6、第3章程序实现3.1程序中各函数分析函数名函数功能input()录用学生课程考勤信息wt(int &i)信息以文件的形式保存wdt(int &n)修改信息以文件的形式保存pri1()统计某段时间内旷课学生姓名及旷课节数pri2()统计某段时间内旷课的课程及旷课人次search()查询学生考勤信息edt()修改学生考勤信息rd()信息以文件的形式读出表3-1 程序中的函数列表3.2 类的实现1、学生信息课程类学生信息类包括学生的学号、姓名、课程、缺课节数、缺课类型、缺课时间。class student public:void set(int t,int b, char* s,ch

7、ar* c,int cno,int type) strcpy(cname,c);strcpy(sname,s);this->snum=b;this->cno=cno;this->type=type;this->time=t; char cname100,sname100;/定义缺课课程名称,学生名称int snum ,cno,type,time; /定义学生学号,缺课节次,缺课类型,时间;2、实现学生信息和考勤情况操作的类class records:public student public:records()r=new studentmax;void input();

8、void wt(int &i);void rd(); / 信息以文件的形式读出void pri1();void pri2();void search();void edt();void wdt(int &n); student *r;static int n;int records:n=0;3、学生考勤系统的录入模块void records:input() / for(int i=0;i<100;i+) int t1,t2,t5,t6;char t3100,t4100; cout<<"请输入学生的缺课时间: "cin>>t1;c

9、out<<"请输入学生的学号: "cin>>t2;cout<<"请输入学生的姓名: "cin>>t3;cout<<"请输入学生的缺课课程: "cin>>t4;cout<<"请输入学生的缺课节次: "cin>>t5;cout<<"请输入学生的缺课类别(1.迟到 2.早退 3.请假 4.旷课): "cin>>t6;records:n+; cout<<endl; ri.s

10、et(t1,t2,t3,t4,t5,t6);4、学生考勤系统修改模块void records:edt() / for(i=0;i<n;i+)if(ri.snum=tnum) cout<<"有您要查询的学生" break;if(!flag)cout<<"查无此学生!"<<endl;return ;t1=ri.time;t2=ri.snum;strcpy(t3,ri.sname);strcpy(t4,ame);t5=o;t6=ri.type; cout<<"请输入要修改的项目

11、:n(1.缺课时间 2.学生学号 3.学生姓名 4.缺课科目 5.缺课节次 6.缺课类型)"<<endl;cin>>km;switch(km)case 1:cout<<"请输入学生缺课时间: " cin>>t1;break;case 2:cout<<"请输入修改的学生学号: " cin>>t2;break;case 3:cout<<"请输入修改的学生姓名: " cin>>t3; break;case 4:cout<<&

12、quot;请输入修改的缺课课程: " cin>>t4 ;break;case 5:cout<<"输入修改的缺课课程节次: " cin>>t5;break;case 6:cout<<"请输入缺课类型(1.迟到 2.早退 3.请假 4.旷课): " cin>>t6;break; ri.set(t1,t2,t3,t4,t5,t6);else return;5、学生查询模块void records:search()/学生查询模块cout<<"请输入要查询的学生学号: &q

13、uot;int tnum,flag=1;cin>>tnum;for(int i=0;i<n;i+) /查找学号if(ri.snum=tnum) flag=0;if(!flag) cout<<"时间tt学号 t姓名t缺课课程t节次t类别"<<endl;cout<<ri.time<<"t" cout<<ri.snum<<"t" cout<<ri.sname<<"t" cout<<ame

14、<<"tt" cout<<o<<"t"switch(ri.type)case 1:cout<<"迟到"<<endl;break;case 2:cout<<"早退"<<endl;break; case 3:cout<<"请假"<<endl;break;case 4:cout<<"旷课"<<endl;break; if(flag)cout&

15、lt;<"没有查到该学生的缺课记录!"<<endl;6、学生排序void records:pri1() if(n=0)cout<<" -文件记录为空-"<<endl;cout<<"-请先输入数据保存在进行此次操作-"<<endl;return;elsecout<<"请输入要查询的时间段: "<<endl;int time1,time2;char *str20;int num=0;cin>>time1>>

16、time2;for(int i=0;i<n;i+) if( ri.time>time2 )cout<<"该段时间内没有旷课的学生!"<<endl;return;if(time1<=ri.time && ri.time<=time2 ) if( ri.type=4)strnum=ri.sname;num+;if( ri-1.time<time1 )cout<<"该段时间内没有旷课的学生!"<<endl;return;int m=num; int j; char *

17、s20;int *c=new int m;c0=1;s0=str0;int flag;int k=1;for( i=1;i<m;i+)flag=0;for( j=0;j<k;j+)if(!(strcmp(stri,sj)cj+;flag=1;if(!flag)sk=stri;ck+=1;for(i=1;i<k;i+)for( j=i;j>0;j-)if(cj>cj-1)int tmp=cj;cj=cj-1;cj-1=tmp;char* stmp=sj;sj=sj-1;sj-1=stmp;cout<<"旷课学生姓名t旷课次数"<

18、<endl;for(i=0;i<k;i+)cout<<si<<"tt"<<ci<<endl; 7、旷课排序void records:pri2() if(n=0)cout<<" -文件记录为空-"<<endl;cout<<"-请先输入数据保存在进行此次操作-"<<endl;return;elsecout<<"请输入要查询的时间段: "<<endl;cin>>time1>>time2;for(int i=0;i<n;i+) if(time1<=ri.time && ri.time<=time2 )if(ri.type=4)strnum=ame;num+;elsecout<<"该段时间内没有学生旷课!"<<endl;return;for( i=1;i<m;i+)flag=0;for( j=0;j<

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论