学生考勤管理系统课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2012-2013学年第二学期
《高级语言程序设计》
课程设计报告
题目:学生考勤管理系统
专业:计算机科学与技术
班级:12(2)班
姓名:李天栋
指导教师:孙淮宁
成绩:
计算机与信息工程系
2013年6月30日
目录
1设计内容及要求 (3)
设计内容 (3)
设计任务及具体要求 (3)
2概要设计 (4)
该系统的功能简介 (4)
总体程序框图 (4)
各个模块之间的主要关系 (5)
3设计过程或程序代码 (5)
各个模块的程序流程图及运行界面 (5)
对关键代码加以分析说明 (10)
4程序调试分析 (14)
5小结 (17)
致谢 (17)
参考文献 (17)
附:源程序 (18)
1 设计内容及要求
设计内容
学生考勤信息记录了学生的缺课情况,它包括:缺课日期、第几节课(连续用begin-end 的形式表示)、课程名称(课程名称中不会出现空格)、学生姓名、缺课类型(迟到、早退、请假及旷课)。
设计任务及具体要求
任务:(1)给出软件结构,说明各模块的功能。
(2)设计相关的类,并说明该类的作用。特别要用图形说明类之间的继承关系。
(3)编写代码
具体要求:(1)定义相关的数据,比如:
学生学号
学生姓名
课程名称
上课时间
到课时间
出勤状态 [旷课/病假/事假/迟到/早退]
(2)能够进行以下操作:
A.能够对数据进行增、删、改、查操作。
B.能够按学号顺序列出某一课程的出勤状况
2 概要设计
系统的功能简介
考勤管理系统,有以下功能:?
(1).录入学生的缺课记录:从键盘输入数据(提示:为避免重复从键盘输入数据,测试时可将数据存储在文件中,利用输入重定向功能读入),输入格式为:缺课日期?第几节课?课程名称学生姓名?缺课类型?每行一条纪录。?例如:?
(2)(3)(4)(5)
各个模块之间的主要关系
本程序用结构体新定义一种数据类型,系统包含一个主函数和6个子函数(insert(),check(),rivise(),Delete(),output(),deleteallchain()),6个子函数分别用来插入、查询、修改、删除、输出、收回动态分配的空间,在主函数中通过调用子函数来实现所需功能。
3 设计过程或程序代码
各个模块的程序流程图及运行界面
学生考勤管理系统中四个类的类层次图为:
1 图4 学生缺课信息录入的功能 2、修改某学生缺课信息功能的模块图
图5 学生考勤管理系统修改学生缺课信息功能图 3
4
5
图 9 学生考勤管理系统中四个类的UML图对关键代码加以分析说明
#include<>
#include<>
#include<>
struct
chuqin{ ettime()+1)==*(st1[j].gettime()+1)&&*(st1[i+1].gettime()+2)==
*(st1[j].gettime()+2))
if(strcmp(qkn,st1[i].getkechen())==0)
renci++;
return renci;
}
etjieci()+2)!='\0')
js=+2;
else
js++;
for(i=0;i if(*(st1[i+1].gettime()+1)==*(st1[j].gettime()+1)&&*(st1[i+1].gettime()+2)= =*(st1[j].gettime()+2)) if(strcmp(st1[i+1].getname(),qstn)==0) { if(*(st1[i].getjieci()+2)!='\0') js=+2; else js++; } jieshu=js; return jieshu; } etname(name); cout<<"请输入课程名称"< cin>>kechen; st1[q].setkechen(kechen); cout<<"请输入缺课日期"< cin>>y>>m>>d; st1[q].settime(y,m,d); cout<<"请输入缺课类型"< cin>>queke; st1[q].setqklx(queke); cout<<"请输入缺课节次"< cin>>jieci; st1[q].setjieci(jieci); cout<<"是否还要继续输入:(y/n)"< cin>>a; }while(a=='y'); return q+1; } etname())==0) do{ a[j]=i; cout<<"1.修改日期2.修改节次3.修改课程名称4.修改缺课类型"< int b; cin>>b; if(b==1) { cout<<"请输入新日期"< cin>>y>>m>>d; st1[i].settime(y,m,d); } else if(b==2) {cout<<"请输入新节次"< cin>>jieci; st1[i].setjieci(jieci); } else if(b==3) {cout<<"请输入新课程名称"< cin>>kechen; st1[i].setkechen(kechen); } else if(b==4) { cout<<"请输入新缺课类型"< cin>>queke; st1[i].setqklx(queke); } flgh=1;j++; }while(b<1||b>4); if(flgh==0) {cout<<"没有你要找的学生姓名,请重试要退出请按0"< cin>>k; } else {cout<<"还要继续吗(1\0)退出请按0"< cin>>k; } } for(int i=0;i { h=a[i]; xiansi(st1[h]); } } etname())==0) { u[j]=i; j++;