收藏 分销(赏)

学生考勤管理信息系统课程设计.doc

上传人:天**** 文档编号:2519979 上传时间:2024-05-31 格式:DOC 页数:30 大小:340.54KB
下载 相关 举报
学生考勤管理信息系统课程设计.doc_第1页
第1页 / 共30页
学生考勤管理信息系统课程设计.doc_第2页
第2页 / 共30页
学生考勤管理信息系统课程设计.doc_第3页
第3页 / 共30页
学生考勤管理信息系统课程设计.doc_第4页
第4页 / 共30页
学生考勤管理信息系统课程设计.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

1、学生考勤管理信息系统课程设计 作者: 日期:2 个人收集整理 勿做商业用途课程设计说明书题目学生考勤管理系统系(部)计算机科学与技术系专业(班级) 10计科一班姓名学号指导教师起止日期课 程 设 计 任 务 书课程数据结构课程设计题目序号12主要内容A要求工作计划及进度1. 14周星期一:选题、交分组名单和课程设计题目;收集资料、需求分析;确定目标、设计方案并选择方案;系统设计;2. 14周星期一至14周星期四:程序设计;撰写课程设计报告; 3. 14周星期五: 提交课程设计报告,汇报演示。指导教师签字 2010年11月30日教研室审定意见签字 2010年11 月 30 日计划时间指导老师学生

2、课程设计的考核方式及评分方法1) 考核方式n 课程设计结束时,在机房当场验收。n 教师提供测试数据,检查运行结果是否正确。n 回答教师提出的问题。n 学生提交课程设计文档(A4纸打印)2) 评分方法 论文考核标准:参考计算机系课程设计任务书论文:40%,软件:40%,答辩:20%指导教师签名:日期:教研室主任签名: 日期:系主任签名: 日期:长沙学院课程设计鉴定表姓名学号专业计算机科学与技术班级10计科设计题目指导教师王俊指导教师意见:评定等级: 教师签名: 日期: 答辩小组意见:评定等级:答辩小组长签名:日期:教研室意见:教研室主任签名: 日期: 系(部)意见:系主任签名:日期:说明课程设计

3、成绩分“优秀、“良好、“及格、“不及格”四类;摘要本次课程设计是Android文件管理器本学生考勤管理系统利用C语言,采用了数据结构程序设计思想以及文件管理的使用。拟一个简单的文件管理系统。树型结构,目录下可以是目录,也可以是文件,文件系统采用二叉树型存储结构,目录名和文件名支持全路径名和相对路径名,路径名各分量间用“/”隔开,可实现文件目录的创建,显示,删除,改变,文件的创建,删除。对合法的命令,执行相应的处理程序,否则输出错误信息,继续等待新命令,直到键入EXIT退出为止.用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质内容和执行过程有比较深入的

4、了解。关键词:文件管理,二叉树存储结构,函数实现目录1 设计内容与要求 72.设计说明 8 2。1 问题描述与功能设计8 2。2 算法与数据结构9 2。3 函数定义11 2。4 测试163 总结18参考文献 18附录A 源代码191设计内容与要求设计题目:Android文件管理器 1基本要求:(1) 要求用数据结构二叉树树形结构思想来完成设计; (2) 要求树型结构,目录下可以是目录,也可以是文件(3) 以树的形式显示所有的文件和文件(4) 通过输入文件名,实现文件搜索的功能(5) 在树中增加一个新文件,正确的显示出来(6) 在树中删除一个文件,正确的显示(7) 输入一个文件名,实现文件搜索功

5、能(8) 程序调试通过后,完成程序文档的处理,加必要的注释高级要求:(1)显示文件的大小、创建日期,修改时间(2)输入一个文件名,实现文件搜索功能2. 创新要求在基本要求达到后,可以进行创新设计。3设计方法和基本原理1)问题描述:Android手机上默认没有文件管理器,因此需要设计一个文件管理器,要求以树形结构显示每个文件和文件夹,并且可以方便的对文件或文件夹进行增,删操作,此外还可以将文件移至任意文件夹中,请用C实现主要结构和算法2)设计思想1在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个简单的单用户文件系统。2文件存储空间的分配采用显式链接分配。为了实现创建和删除文件必须要有一

6、棵初始的文件树存在,以便在文件树的根节点下实现创建和删除文件.3。 数据结构与树结构。数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合.树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为结点)按分支关系组织起来的结构,很象自然界中的树那样。树中每个分叉点称为结点,起始结点称为树根,任意两个结点间的连接关系称为树枝,结点下面不再有分枝称为树叶。结点的前趋结点称为该结点的”双亲,结点的后趋结点称为该结点的孩子”,同一结点的”孩子之间互称”兄弟”.4文件目录结构采用多级目录结构。为了简单起见,可以使用文件结构体,结构体内容包括:文件名,文

7、件目录识别标示,文件链接数,以及他的左孩子右孩子左兄弟右兄弟指5. 要有分解函数对输入的命令进行分解.以识别那部分是哪部分是命令,哪部分是路径和文件名。6。 最后要有执行函数。来执行输入的创建文件命令。 设计工作量:(1)软件设计:完成问题陈述中所提到的所有需求功能.(2)论文:要求撰写不少于3000个文字的文档,详细说明各阶段具体要求。工作计划:1314周安排两周时间进行课程设计,软件开发步骤如下,第一周完成16,第二周完成710,论文同步进行;(1)写出需求分析(做什么) (2)分析系统中的各个实体之间的关系及其属性和行为(3)设计系统的函数层次(4)完成函数中函数的描述(包括属性和方法)

8、(5)完成类中各个成员函数的定义和实现(6)代码编写 (7)功能调试(8)撰写课程设计报告书(9)答辩2设计说明2.1 问题描述与功能设计1)问题描述:Android手机上默认没有文件管理器,因此需要设计一个文件管理器,要求以树形结构显示每个文件和文件夹,并且可以方便的对文件或文件夹进行增,删操作,此外还可以将文件移至任意文件夹中2)功能设计:1分析系统中的各个实体之间的关系及其属性和行为;2设计系统的类层次,充分运用C+的复合、继承、多态等机制进行软件渐增式开发;3完成类层次中各个类的描述(包括属性和方法)和具体实现用户界面需求用户界面需求 对于一个好的软件有一个友好的用户界面是很重要的。用

9、户界面应尽量做得简单、层次清晰明了对考勤管理系统应实现的功能描述如下:1用户信息管理用户信息管理的基本功能是添加、修改、删除、浏览用户详细信息。2信息管理包括缺课日期、第几节课、课程名称、学生姓名、缺课类型(迟到、早退、请假及旷课)3查询功能考勤人员能够按学号、姓名查询某学生的考勤记录或按专业、班级查询某个班级的考勤记录4统计功能考勤人员可以统计学生的考勤记录5修改功能考勤人员具有修改学生考勤记录、如请假、旷课等记录2.2 算法与数据结构2.3 函数定义/student.h文件中student类的定义class Studentpublic:/ 学生信息char stuName20;int st

10、uNum;char stuClass20;/ 缺课信息char courseName20;int courseNum; / 第几节课char courseType20;/ 缺课日期int year;int month;int day;/* 创建链表用来存储学生信息 /bool CreateList(node &L)L = new Node; / 动态分配内存,创建链表头结点if(!L)/ 内存分配失败return false;Lnext = NULL; / 创建空链表成功,头结点指针域为空return true;/学生缺课类型int chidaoCount = 0;/迟到int zaotuiC

11、ount = 0; /早退int kuangkeCount = 0; /旷课int qingjiaCount = 0; /请假char *queke4 = 迟到”, 早退, ”旷课, ”请假;2。4 界面设计 while(1)cout=欢迎进入学生考勤管理系统=n”;cout”1:新增学生信息(非降序插入) 2:按学号删除学生信息n;cout”3:按学号修改学生信息 4:输出学生信息列表n;cout”5:按学号查询输出学生信息n”;cout”6:统计学生缺课信息列表n”;cout请选择要执行的功能指令:(菜单指令如上)endl;cout=n;cinorder;switch(order)case

12、 1:cout”=新增学生信息面板(非降序插入)=n;InputStu(stu);InsertAscend(head, stu);coutk;if(k)cout您已退出学生考勤管理系统n;return 0;break;case 2:cout=按学号删除学生信息=n;coutk;if(k)cout”您已退出学生考勤管理系统n;return 0;break;case 3:cout=按学号修改学生信息面板=n;coutstuNum;FindFromNum(head, stuNum, preNode, curNode);Modify(curNode-data);cout”是否返回系统菜单?(是输入0,

13、否输入1退出系统)n”;cink;if(k)cout”您已退出学生考勤管理系统n”;return 0;break;case 4:cout”=输出学生信息列表面板=n”;OutputStu(head);coutk;if(k)cout您已退出学生考勤管理系统n”;return 0;break;case 5:cout=按学号查询输出学生信息=n”;cout请输入要查询的学生的学号:”;cinstuNum;FindFromNum(head, stuNum, preNode, curNode);coutsetw(10)”学号setw(10)”姓名setw(10)班级setw(10)课程名”setw(10

14、)”第几节”setw(10)缺课类型setw(18)”日期”data);coutk;if(k)cout您已退出学生考勤管理系统n;return 0;break;case 6:coutnext;if(curNode & !strcmp(curNode-data。courseType, queke0) chidaoCount+;if(curNode & !strcmp(curNode-data。courseType, queke1)) zaotuiCount+;if(curNode !strcmp(curNode-data.courseType, queke2)) kuangkeCount+;if

15、(curNode & !strcmp(curNode-data.courseType, queke3)) qingjiaCount+;preNode = curNode;cout迟到的学生有 chidaoCount 个!endl;cout”早退的学生有 ”zaotuiCount 个!”endl;cout旷课的学生有 kuangkeCount 个!endl;cout”请假的学生有 qingjiaCount 个!”endl;cout是否返回系统菜单?(是输入0,否输入1退出系统)n”;cink;if(k)cout您已退出学生考勤管理系统n;return 0;break;default:cout输入

16、不合法n;coutk;if(k)cout#include iomanip.h/定义结点类型struct NodeStudent data;Node *next;typedef Node *node; / 类型定义node为指向Node结构的指针类型/* * 创建链表用来存储学生信息 */bool CreateList(node L)L = new Node; / 动态分配内存,创建链表头结点if(!L)/ 内存分配失败return false;Lnext = NULL; / 创建空链表成功,头结点指针域为空return true;/ 定义输入学生信息的方法void InputStu(Stude

17、nt &stu)coutstu。stuNum;cout”请输入学生姓名:”;cinstu.stuName;coutstu。stuClass;cout请输入学生缺课名称:;cinstu。courseName;coutstu。courseNum;cout”请输入学生缺课类型:”;cinstu.courseType;cout请输入学生缺课日期:stu.year;cout请输入月:; cinstu。month;coutstu。day;/ 添加结点,非降序插入学生的信息void InsertAscend(node L, Student stu)node preNode = L; / preNode指向链

18、表L的头结点node curNode = Lnext; / curNode指向链表L的第一个结点/ 第一个结点不为空,且worker.num大于curNodedata.num,则执行循环while(curNode & (stu.stuNum curNodedata。stuNum) preNode = curNode;curNode = curNodenext;/ 插入新结点preNode-next = new Node; preNodenext-data = stu;preNode-nextnext = curNode;/ 打印一个student的信息void print(Student st

19、u)coutsetw(10)stu。stuNumsetw(10)stu。stuNamesetw(10)stu。stuClasssetw(10)stu.courseNamesetw(10)stu.courseNumsetw(10)stu。courseTypesetw(10)stu。year”年stu.month月stu。day”日next;coutsetw(10)学号setw(10)”姓名setw(10)”班级”setw(10)课程名”setw(10)第几节”setw(10)缺课类型setw(18)”日期data);tmp = tmpnext;/ 按学号号查找,用curNode返回查找到的结点的

20、指针/ preNode指向curNode所指向的结点的前面一个结点bool FindFromNum(node L, int stuNum, node preNode, node curNode)preNode = L;while(preNode)curNode = preNode-next;/ 链表是按学号号非降序添加结点建立的/ curNode-data。num大于num则不需要再往后遍历if(curNode & (curNode-data。stuNum stuNum)break;if(curNode & (stuNum = curNodedata.stuNum) / 找到匹配的结点retu

21、rn true;preNode = curNode; / preNode指向下一个结点return false;/ 按学号号删除结点bool DelFromNum(node L, int stuNum)node preNode, curNode;if(FindFromNum(L, stuNum, preNode, curNode)) / 用curNode返回要删除的结点/ 删除结点preNode-next = curNode-next;delete curNode;return true;return false;/ 修改学生信息void Modify(Student stu)InputStu

22、(stu);/ 按学生缺课类型查找,用curNode返回查找到的结点的指针/ preNode指向curNode所指向的结点的前面一个结点bool FindFromName(node L, char courseType, node &preNode, node curNode)preNode = L;while(preNode)curNode = preNode-next;if(curNode & !strcmp(curNodedata.courseType, courseType) / 找到与courseType匹配的结点return true;preNode = curNode;retur

23、n false;/studentManage.cpp文件#include StudentManage。hint main()int n, i, k;int stuNum; / 学号char stuName20;char stuType20;node head, preNode, curNode;Student stu;int order;int chidaoCount = 0;int zaotuiCount = 0;int kuangkeCount = 0;int qingjiaCount = 0;char queke4 = ”迟到, ”早退, 旷课”, ”请假”;if(CreateList(

24、head)coutn;for(i=0; in; i+)cout请输入第 i+1个学生的信息n;InputStu(stu);InsertAscend(head, stu);cout您输入了 n 个学生的信息n”;while(1)cout”=欢迎进入学生考勤管理系统=n”;cout”1:新增学生信息(非降序插入) 2:按学号删除学生信息n”;cout”3:按学号修改学生信息 4:输出学生信息列表n;cout5:按学号查询输出学生信息n;cout6:统计学生缺课信息列表n”;cout”请选择要执行的功能指令:(菜单指令如上)”endl;coutorder;switch(order)case 1:co

25、ut=新增学生信息面板(非降序插入)=n;InputStu(stu);InsertAscend(head, stu);coutk;if(k)cout您已退出学生考勤管理系统n”;return 0;break;case 2:cout”=按学号删除学生信息=n;coutstuNum;DelFromNum(head, stuNum);coutk;if(k)cout您已退出学生考勤管理系统n”;return 0;break;case 3:cout”=按学号修改学生信息面板=n”;coutstuNum;FindFromNum(head, stuNum, preNode, curNode);Modify(

26、curNodedata);cout”是否返回系统菜单?(是输入0,否输入1退出系统)n;cink;if(k)coutk;if(k)cout您已退出学生考勤管理系统n;return 0;break;case 5:cout”=按学号查询输出学生信息=n”;coutstuNum;FindFromNum(head, stuNum, preNode, curNode);coutsetw(10)”学号”setw(10)姓名setw(10)”班级”setw(10)”课程名setw(10)”第几节”setw(10)”缺课类型”setw(18)日期”endl;print(curNodedata);cout是否返回系统菜单?(是输入0,否输入1退出系统)n;cink;if(k)cout”您已退出学生考勤管理系统n”;return 0;break;case 6:coutdata。courseType, queke0) chidaoCount+;if(curNode & !strcmp(curNode-data。courseType, queke1) zaotuiCount+;if(curNode !strcmp(curNodedata.courseType, queke2)) kuangkeCount+;if(c

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服