c++课程设计学生考勤管理系统报告.pdf
《c++课程设计学生考勤管理系统报告.pdf》由会员分享,可在线阅读,更多相关《c++课程设计学生考勤管理系统报告.pdf(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、学生考勤管理系统 信息科学与技术学院 程序设计基础课程设计报告 题目名称:学生考勤管理系统 学生姓名:郭晨晨 学 号:2013508093 专业班级:13 级计科(3)班 指导教师:郭理 2013 年 6 月 6 日 学生考勤管理系统 -1 目录 目录 1 1。课程设计题目与要求 2 1.1 课题目的和要求 2 1.3 课题意义 2 2 总体设计 3 2.1 功能模块设计 3 2.2 系统设计方案 3 3 详细设计 4 3。1 数据结构设计 4 3。2 主模块设计 4 3.2.1 建立学生缺课记录子模块 4 3.2.2 修改学生缺课记录子模块 5 3.2.3 修改学生缺课记录子模块 6 3。2
2、。4 查看单科旷课记录子模块 7 3。2。5 查看学生旷课记录子模块 8 3。2。6 载入学生旷课记录子模块 9 3.2。7 储存学生旷课记录子模快 10 4。运行结果 12 4.1 运行 12 5。课程设计总结 14 结束语 14 参考文献 15 附录:源代码 15 学生考勤管理系统 -2 1.课程设计题目与要求 1.1 课题目的和要求 设计目的:要求实现-“学生考勤管理程序”记录学生的缺课情况,它包括:缺课日期、第几节课、课程名称、学生姓名、缺课类型(迟到、早退、请假及旷课)。1。2 设计要求:1.录入学生的缺课记录;2修改某个学生的缺课记录;3查询某个学生的缺课情况;4统计某段时间内,某
3、门课旷课学生姓名及旷课次数,按旷课次数由多到少排序;5统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序;6.系统以菜单方式工作。1。3 课题意义 程序实践是本科生重要教学环节之一。通过程序实践,强化学生的计算机应用技能,使学生验证、巩固和充实所学的理论知识,加深对相关内容的理解,拓宽知识面,培养学生的创新精神和实践能力 学生考勤管理程序可以大大减缓学生考勤人员的工作量,方便了平时上课学生的出勤率的管理。学生考勤管理系统 -3 2 总体设计 2.1 功能模块设计 根据分析整个系统主要划分为 7 个功能模块,分别执行要求中的功能。数据管理中可以对学生的基本信息、课程的基本信息、学
4、生缺课的查询、添加、删除和修改。查询管理通过根据学生姓名,课程姓名 时间段儿等信息,查询单个学生的缺课记录,单科课的旷课记录,单个学生的旷课记录。功能模块图如图 1 所示:学生考勤管理程序修改学生缺课记录查看学生旷课记录查看单科旷课记录查询学生缺课记录建立学生缺课记录储存学生旷课记录载入学生旷课记录 图 1 功能模块图 2。2 系统设计方案 这个程序是过程性语言设计的。运用多种条件语句,主体采用的是链表指针.系统的设计采用了数组语句、选择语句和循环语句,在需要处理大量同类数据时,这样就使程序书写更加简洁。程序使用了布尔函数。选择语句多采用 if 多分支选择结构与 switch 语句.首先计算
5、switch 表达式,然后在 caes 子句中寻找值相等的常量表达式,并以此为入口符号,由此开始顺序执行。循环语句采用了 for 语句等、dowhile 语句,for 语句用于已知循环次数的循环结构,括号中的三个量分别用来表示循环变量初值、循环终值和循环增量。do-while语句先循环后判断,Break 语句在 switch 语句中,保证多分支情况的正确执行,在循环语句中,强制终止本层循环。保存和读取函数是典型的函数功能,一个程序是由若干个函数组成的,保存和读取函数是和其他函数互相调用的.学生考勤管理系统 -4 3 详细设计 3。1 数据结构设计 struct xueke char xueke
6、_name50;int people_num;这是定义了一个 xueke 结构体,用来存放一个学科名及其相应的旷课人数;struct student char name50;long time;int lesson_time;char lesson_name50;int chidao_num;int zaotui_num;int qingjia_num;int kuangke_num;struct student next;;这是定义了一个 student 的结构体,用来存放一个学生的考勤记录,其中有,字符数组 name50,lesson_name50,分别存放学生名字,缺课课程名字;int
7、型变量 lesson_time,chidao_num,zaotui_num,qingjia_num,kuangke_num,分别来存放,缺课节次,迟到次数,早退次数,请假次数,旷课次数 long型变量 time,记录时间。3。2 主模块设计 3.2.1 建立学生缺课记录子模块 要建立的学生人数,学生基本信息(包括缺课时间、学生姓名、课程名称、节次、迟到次数、早退次数、请假次数、旷课次数)可用 creat()函数如图 1。学生考勤管理系统 -5 开始int i,b;struct student*head,*p1,*p2;printf(请输入要建立资料的学生人数:);scanf(%d,&b);he
8、ad=p2=NULL;p1=(struct student*)malloc(LEN);输入第一个学生成绩head=p1;p2=p1;i=0;student_num+;inext=p1;p2=p1;student_num+;i+p2-next=NULL结束YN 图 1 3。2.2 修改学生缺课记录子模块 根据要修改的学生姓名以及科目名称找到相应的信息,再选择要修改的项目进行单项修 学生考勤管理系统 -6 改 如char xiugai_name50;char xiugai_xueke_name50;int k;开始printf(请输入要修改的学生姓名与学科名称:);scanf(%s%s,xiuga
9、i_name,xiugai_xueke_name);struct student*p1,*p2;p2=(struct student*)malloc(LEN);p1=head;strcmp(xiugai_name,p1-name)!=0&(p1-next!=NULL)&strcmp(xiugai_xueke_name,p1-lesson_name)!p1=p1-next;strcmp(xiugai_name,p1-name)=0&strcmp(xiugai_xueke_name,p1-lesson_name)=0显示修改菜单选择修改项目并完成修改结束图 2 图 2 3。2。3 修改学生缺课记录
10、子模块 根据人名可以查出该学生的所有缺课记录 如图 3 学生考勤管理系统 -7 开始printf(请输入要查询的人名:);scanf(%s,chaxun_name);int i=0;char chaxun_name50;struct student*p;p=head;iname)=0输出p所指向的结构体数据i+结束 图 3 3。2.4 查看单科旷课记录子模块 根据学科名称和时间范围查出所有在该范围内旷课的学生以及次数 如图 4 学生考勤管理系统 -8 开始struct student*p1,*p2,*p3;char lesson50;long look_time1,look_time2;int
11、 xunhuan_num=0;p3=(struct student*)malloc(LEN);p1=head;p2=p1-nextxunhuan_numkuangke_nump1-kuangke_nump1=p2;p2=p2-next;p1=head;p2=p1-next;xunhuan_num+;交换p1与p2指向数据printf(请输入要查看的学科名称:);scanf(%s,lesson);printf(请输入要查看的时间范围);scanf(%ld%ld,&look_time1,&look_time2);p1=head;p1!=NULLstrcmp(lesson,p1-lesson_nam
12、e)=0&look_time1time&p1-timenext;结束YNYYNN 图 4 3。2.5 查看学生旷课记录子模块 根据要查询的学科名称及时间段查出在改时间段内该门课上旷课的人数 如图 5 学生考勤管理系统 -9 开始int n,i,j,zhongjian;struct student*p1;char zhongjian_name50;long look_time1,look_time2;printf(请输入第%d个学科名称:,i+1);scanf(%s,ai.xueke_name);ai.people_num=0;printf(请输入要查看的时间范围由小到大);scanf(%ld%
13、ld,&look_time1,&look_time2);p1=head;i=0;inp1!=NULL&look_time1time&p1-timelesson_name)=0p1=p1-next;p1=head;i+;ai.people_num+=p1-kuangke_num;jn-1in-1-jai.people_numnext;结束YN 图 7 学生考勤管理系统 -12 4.运行结果 4。1 运行 开始菜单 图 1 开始菜单 学生考勤管理系统 -13 主菜单 图 2 主菜单 建立学生缺课记录 学生考勤管理系统 -14 图 2 建立学生缺课记录 储存学生旷课记录 图 3 储存学生旷课记录 5
14、.课程设计总结 课程设计顺利完成,题目所要求的功能基本实现,可以对学生的缺课信息进行添加,修改,删除以及查询的显示。不过这个程序还不够完善,例如不能往当前文件夹中的 txt 文件中添加记录.结束语 整个系统的设计过程对于我来说是个学习、探索的过程,通过借鉴别人,学习设计程序,在整个设计过程中,出现过很多的问题,很多繁琐的东西都需要反复的修改,主要是因为前期的学习不认真,对系统的需求分析的要求认识不清楚,使得在后边的工作中不得不经常反 学生考勤管理系统 -15 复请教别人去修改。使我体会到设置中每一步的重要性。所以在分析一个问题时,我们需要站在一个有远见的高度。通过此次设计,我对 C+语言编程有
15、了深刻的认识,积累了使用软件工程的思想来开发软件的经验,更重要的是学会了在对待问题时应该考虑到哪些方面和怎么解决问题。虽然时间紧迫但我学会了不少,感到自身知识的贫乏,希望在日后积极学习并尝试努力中能做出完善的系统。参考文献 谭浩强.C+语言程序设计.清华大学出版社 求是科技.Visual C+6。0 信息系统开发。人民邮电出版社 附录:源代码#includecstdio /cstdio 是将 stdio.h 的内容用 C+头文件的形式表示出来#includeiostream#includemalloc.h /malloc 的全称是 memory allocation,中文叫动态内存分配,当无法
16、知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存.includecstring /当调用库函数,客户程序提供的是 string 类型参数,而库函数内部实现用的是 c-串,因此需要将 string 对象,转化为 char对象,而 c_str()提供了这样一种方法,它返回一个客户程序可读不可改的指向字符数组的指针.#includeiomanip /I/O 流控制头文件#define NULL 0#define guding 10 define LEN sizeof(struct student)using namespace std;int student_num;FILE
17、 fp1;struct xueke char xueke_name50;int people_num;struct student char name50;long time;int lesson_time;char lesson_name50;int chidao_num;int zaotui_num;学生考勤管理系统 -16 int qingjia_num;int kuangke_num;struct student*next;;void chaxun(struct student head)int i;char chaxun_name50;coutchaxun_name;struct s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 课程设计 学生 考勤 管理 系统 报告
限制150内