面向对象程序设计》
课程设计。题目: 学生考勤管理系统
院(系软件学院。
专业年级: 软件工程 2014级。
学号141530160
姓名石志峰。
学期: 2014-2015学年第二学期
二〇一五年六月二十八日。
目录。1 需求分析 1
1.1 系统设计的目的和意义 1
1.2 实际业务操作流程 1
1.3 功能需求 1
2 总体设计 1
2.1系统功能分析 1
2.2 功能模块图 2
2.3系统设计方案 2
3 详细设计与实现 2
3.1类结构设计 3
3.2 主要功能的算法描述 4
4系统调试 9
4.1主菜单功能 9
4.2建立缺课记录功能 10
4.3储存缺课记录功能 11
小结 12源码 12
2 程序实践是本科生重要教学环节之一。通过程序实践,强化学生的计算机应用技能,使学生验证、巩固和充实所学的理论知识, 加深对相关内容的理解,拓宽知识面,培养学生的创新精神和实践能力。
3 学生考勤管理程序可以大大减缓学生考勤人员的工作量, 方便了平时上课学生的出勤率的管理。
阐述尚未使用系统的情况下,手工是如何进行操作的,即实际业务操作流程。
1.录入学生的缺课记录;
2.修改某个学生的缺课记录;
3.查询某个学生的缺课情况;
4.统计某段时间内,某门课旷课学生姓名及旷课次数,按旷课次数由多到少排序;
5.统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序;
6.系统以菜单方式工作。
根据分析整个系统主要划分为7个功能模块,分别执行要求中的功能。数据管理中可以对学生的基本信息、课程的基本信息、学生缺课的查询、添加、删除和修改。查询管理通过根据学生姓名,课程姓名时间段儿等信息,查询单个学生的缺课记录,单科课的旷课记录,单个学生的旷课记录。
图1功能模块图。
这个程序是过程性语言设计的。运用多种条件语句,主体采用的是链表指针。系统的设计采用了数组语句、选择语句和循环语句,在需要处理大量同类数据时,这样就使程序书写更加简洁。
程序使用了布尔函数。选择语句多采用if多分支选择结构与switch语句。首先计算switch表达式,然后在caes子句中寻找值相等的常量表达式,并以此为入口符号,由此开始顺序执行。
循环语句采用了for语句等、do-while语句,for语句用于已知循环次数的循环结构,括号中的三个量分别用来表示循环变量初值、循环终值和循环增量。do-while语句先循环后判断, break语句在switch语句中,保证多分支情况的正确执行,在循环语句中,强制终止本层循环。保存和读取函数是典型的函数功能,一个程序是由若干个函数组成的,保存和读取函数是和其他函数互相调用的。
struct xueke
char xueke_name[50];
int people_num;
这是定义了一个xueke结构体,用来存放一个学科名及其相应的旷课人数;
struct student
char name[50];
long time;
int lesson_time;
char lesson_name[50];
int chidao_num;
int zaotui_num;
int qingjia_num;
int kuangke_num;
struct student *next;
;这是定义了一个student的结构体,用来存放一个学生的考勤记录,其中有,字符数组name[50],lesson_name[50],分别存放学生名字,缺课课程名字;int型变量lesson_time,chidao_num,zaotui_num,qingjia_numkuangke_num,分别来存放,缺课节次,迟到次数,早退次数,请假次数,旷课次数 long型变量time,记录时间。
要建立的学生人数,学生基本信息(包括缺课时间、学生姓名、课程名称、节次、迟到次数、早退次数、请假次数、旷课次数)可用creat()函数如图1.
图1根据要修改的学生姓名以及科目名称找到相应的信息,再选择要修改的项目进行单项修图2
图2根据人名可以查出该学生的所有缺课记录如图3
图3根据学科名称和时间范围查出所有在该范围内旷课的学生以及次数如图4
图4根据要查询的学科名称及时间段查出在改时间段内该门课上旷课的人数如图5
图5可以载入实现储存在当前文件夹中txt文件中所储存的数据如图6
图6进入系统界面,顺序的完成各项操作,进行数据的输入,信息的保存调用相应的函数打开相应的地址,查询各项信息。如图7
图74.2建立缺课记录功能。
整个系统的设计过程对于我来说是个学习、探索的过程,通过借鉴别人,学习设计程序,在整个设计过程中,出现过很多的问题,很多繁琐的东西都需要反复的修改,主要是因为前期的学习不认真,对系统的需求分析的要求认识不清楚,使得在后边的工作中不得不经常反复请教别人去修改。使我体会到设置中每一步的重要性。所以在分析一个问题时,我们需要站在一个有远见的高度。
通过此次设计,我对c++语言编程有了深刻的认识,积累了使用软件工程的思想来开发软件的经验,更重要的是学会了在对待问题时应该考虑到哪些方面和怎么解决问题。
虽然时间紧迫但我学会了不少,感到自身知识的贫乏,希望在日后积极学习并尝试努力中能做出完善的系统。
#include
#include
#include<>
#include
#include
#define null 0
#define guding 10
#define len sizeof(struct student)
using namespace std;
int student_num;
file *fp1;
struct xueke
char xueke_name[50];
int people_num;
struct student
char name[50];
long time;
int lesson_time;
char lesson_name[50];
int chidao_num;
int zaotui_num;
int qingjia_num;
int kuangke_num;
struct student *next;
void chaxun(struct student *head)
int i;
char chaxun_name[50];
cout<<"请输入要查询的人名:";
cin>>chaxun_name;
struct student *p;
if(head==null)
cout<<"联系人为空";
p=head;
for(i=0;i
p=p->next; }
struct student *xiugai(struct student *head)
char xiugai_name[50];
char xiugai_xueke_name[50];
int k;
cout<<"请输入要修改的学生姓名与学科名称【格式:学生姓名(空格)学科名称】:"
cin>>xiugai_name>>xiugai_xueke_name;
C 课程设计
自动走迷宫小游戏。根据课堂讲授内容,做相应的自主练习,消化课堂所讲解的内容 通过调试典型例题或习题积累调试c 程序的经验 通过完成辅导教材中的编程题,逐渐培养学生的编程能力 用计算机解决实际问题的能力。同时在设计的过程中发现自己的不足之处,对以前所学过的知识理解的更加深刻,掌握得更加牢固。迷宫生成。...
c 课程设计
哈尔滨 课程设计报告。课程 c 学号 姓名 班级 教师 1.管理系统的功能说明。课程信息管理 能够增加数据,删除数据,显示数据,修改数据,按姓名和首字母查询数据和一些基本的程序功能。2.存储数据的描述。coursenumber 课程号coursename 课程名subject 所属专业xingzhi...
C课程设计
面向对象程序设计课程设计。一 设计要求。1 课程设计以3 4人为一组,每人一个模块 2 课程设计时间为1周 在处理系统的时候,要从分析系统的需求入手,根据系统需求进行详细分析,明确系统功能,然后设计系统整体架构以及划分系统模块,按照模块分配小组中每个组员的具体任务,完成设计。二 系统设计规范。1 命...