1、1学生考勤管理系统报告导读:就爱阅读网友为您分享以下“学生考勤管理系统报告”的资讯,希望对您有所帮助,感谢您对 的支持!结束语 整个系统的设计过程对于我来说算是个学习、探索的过程,通过实践和对比别人开发程序的过程。在整个设计过程中,出现过很多的问题,很多繁琐的东西都需要反复的修改,主要是前期工作不彻底,对系统的需求分析的要求认识不够清楚,使得在后边的工作中不得不经常反复去修改。使我体会到设置中每一步的重要性。所以在分析一个问题时,我们需要站在一个有远见的高度。 通过此次设计,我不但对 C 语言编程有了更深刻的认识,积累了使用软件工程的思想来开发软件的经验,更重要的是学会了在对待问题时应该考虑
2、到哪些方面和怎么解决问题。 2虽然时间紧迫但我学会了很多,也感到自身知识的贫乏,希望在日后的努力中能做出更完善的系统。 11 致 谢 这次 C 语言的程序设计,对于我来说是一个挑战。我在C 语言的学习过程中的困难并不只在程序的设计中有所体现,每一个函数都设计好了,也调试好了,把它们分开运行并没有错误,但是当把它们组合成一个程序时,便是一个一个地出现错误;把这个问题解决了,另一个新问题又来了。这不能不说是对知识的欠缺。通过这次的程序设计,我懂得了无论什么事都要去做才会发现问题,才有可能去解决问题。对知识的学习,不能潜偿辄止,要深入去学习,去了解,这样才会有所收获。有许多东西,许多事,不是想像中的
3、那么容易,不去实践,永远也不会有提高,尤其是学习计算机。同时,在这次课程设计的过程中,我认识到学好计算机要重视实践操作,不仅仅是学习 C 语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,不能只是学习和重视书本上的理论知识,所以日后在学习过程中,我会更加注视实践操作,使自己更好地学好计算机这门课程。 3以前做实验题目的时候总是感觉很难,因为根本就不知道从哪里开始。这次课程设计让我对编程有了新的认识,也是我知道了只有自己亲自动手才能学到更多东西。 拿到题目的时候也是很困惑但仔细琢磨后也不是想象中那么难,觉得就是上课讲到的一些内容,是自己先把自己吓住了。 后来,参照书上的和网上的诸多例
4、子,一个模块一个模块的编写,调试,一个功能一个功能去完善。发现越做越顺利,由于以前的实验中对于改错的经验积累和几个学得不错的同学的帮助,我的程序中的错误也一个一个的顺利解决。 再后来,等我的程序完全做好以后,我竟然可以独立的帮同学修改一些以前根本不知所以然的错误,其实,从这次实验中我认识到,我距离高手还很远,编程有很多的乐趣也有很多的技巧性和知识性。我将在以后的日子里继续认真的学习知识,积累经验,让自己的编程能力提高。 总之,我决得编程就是要请自动手,孰能生巧,感谢学校给我们这次机会使我们通过这次试验学到了很多东西。 12 参考文献 41 谭浩强.C 语言程序设计(第三版).北京:清华大学出版
5、社 2 林碧英.C 语言程序设计教程 . 北京:中国电力出版社,2006 3 美赫伯特 .希尔特,王子恢等译.C 语言大全. 北京:电子工业出版社.2006 4 姜灵芝,余健.C 语言课程设计案例精选. 北京:清华大学出版社,2008 13 错误!未指定书签。考勤管理程序的设计与实现 附录 1用户手册 主菜单 图 1 主菜单 1.建立学生缺课记录 图 2 建立学生缺课记录 2.修改学生缺课记录 错误!未指定书签。考勤管理程序的设计与实现 图 3 修改学生缺课记录 53.查询学生缺课记录 图 4 查询学生缺课记录 学 院 数据结构 课程设计任务书 课程设计题目: 考勤管理程序的设计与实现 系 别
6、 数学与计算机科学系 班级信管 1 学生姓名 学号 指导教师 职称 讲师 课程设计进行地点: 任 务 下 达 时 间: 20 11 年 12 月 19 日 起止日期: 2011 年 12 月 19 日起至 2011 年 12 月 23 日止 1 6一、课程设计的目的 课程设计比教学实验复杂一些,涉及的深度广些并更加接近实用。目的一方面是通过课程设计的综合训练,帮助学生系统掌握该门课程的主要内容,更好地完成教学任务;另一方面,通过课程设计使学生进一步加深对课程内容的理解,利用程序设计的基本思想进行程序的开发,进一步掌握编程方法和技巧,培养学生的实际分析问题、编程和动手能力,提高学生用程序的思想来
7、解决实际问题的能力。二、课程设计要求 1、遵守课程设计时间安排,按时上机。 2、认真查找相关的资料,理解相关的知识内容。 3、认真调试程序,组员之间应加强团队合作,取长补短,共同分析问题解决问题。 4、根据设计题目规定的具体要求进行具体规范操作。 5、认真撰写课程设计报告,避免相互抄袭。 三、对课程设计说明书撰写内容、格式、字数的要求 1课程设计报告是体现和总结课程设计成果的载体,主要内容包括:设计题目、设计目的、实验器材、设计原理及内容、设计具体步骤、遇到的问题及解决方法、设计总结、参考文献等。一般不应少于 3000 字。 2在适当位置配合相应的实验原理图、实验数据表、问题分析流程图等图表进
8、行说明。应做到文理通顺,内容正7确完整,书写工整,装订整齐。 3设计总结部分主要写本人完成工作简介以及自己的设计体会,包括通过课程设计学到了什么,哪里遇到了困难,解决的办法以及今后的目标。 4课程设计报告打印时采用 A4 纸,页边距均为20mm,正文采用宋体小四号字,行间距 20 磅。文中大标题采用黑体小三号字,一级节标题采用黑体四号字,二级节标题采用黑体小四号字,表题与图题采用宋体五号字。 5课程设计报告装订顺序为:封面、任务书、成绩评定表、目录、正文、参考文献。 四、设计题目 2 五、成绩评定 评定成绩根据系统功能、界面效果,系统操作的方便性、灵活性等方面进行,主要从三个方面进行考虑: 1
9、、对问题的理解程度; 2、成果的好坏; 3、设计报告。 评定结果:不及格、及格、中、良好、优秀。 六、时间进度安排 顺序 1 阶段日期 2011.11.182011.11.19 2011.11.202011.12.07 2011.12.082011.12.09 2011.12.102011.12.12 2011.12.132011.12.19 2011.12.202011.12.22 2011.12.132011.12.24 计 划 完 成 内 容 8确定设计课题 备注 2 资料查询 3 概要设计 4 数据结构设计 5 功能模块开发 6 功能模块调试 7 系统运行和修改 七、主要参考文献 3
10、学 院 数 学 与 计 算 机 科 学 系 考勤管理程序设计与实现课程设计成绩评定表 教研室: 班级: 学生姓名: 指 导 教 师 评 审 意 见 评价内容 具 体 要 求 权重 0.1 0.2 0.2 5 5 5 评 分 4 4 4 3 3 3 加权分 2 2 2 调 研 能独立查阅文献,收集资料;能制定课程论 证 设计方案和日程安排。 工作能力 态 度 工 作 量 工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作, 按期圆满完成规定的设计任务,工作量饱满,难度适宜。 说明书说明书立论正确,论述充分,结论严谨合的质 理,文字通顺,技术用语准确,符号统一,0.5 量 编号齐全,图
11、表完备,书写工整规范。 指导教师评审成绩 (加权分合计乘以 12) 指 导 教 师 签 名: 评 阅 教 师 评 审 意 见 评价内容 具 体 要 求 权重 0.2 0.5 分 5 4 3 2 加权分合计 年 月 日 评 分 5 5 4 4 3 3 加权分 2 2 查 阅 查阅文献有一定广泛性;有综合归纳资料文 献 的能力 工 作 工作量9饱满,难度适中。 量 说明书说明书立论正确,论述充分,结论严谨合的质 理,文字通顺,技术用语准确,符号统一,0.3 量 编号齐全,图表完备,书写工整规范。 评阅教师评审成绩 (加权分合计乘以 8) 评 阅 教 师 签 名: 课 程 设 计 总 评 成 绩 分
12、 5 4 3 2 加权分合计 年 月 日 分 1 目 录 1. 绪论.1 1.1 课题背景 .1 1.2 课题目的和要求.1 1.3 课题意义. 1 2. 系统分析.2 2.1 功能需求. 2 2.2 数据需求.10. 2 2.3 性能需求 .2 3. 总体设计.3 3.1 功能模块设计 3 3.2 系统设计方案 . 3 4. 详细设计.4 4.1 建立学生缺课记录子模块 4 4.2 修改学生缺课记录子模块 . 5 4.3 修改学生缺课记录子模块 . 6 4.4 查看单科旷课记录子模块 . 6 4.5 查看学生旷课记录子模块 . 7 4.6 载入学生旷课记录子模块 . 8 5.调试与11测试.
13、10 5.1 调试 .10 5.2 测试 . 10 结束语.11 致谢.12 参考文献.13 附录 1用户手册 . 附录 2源程序 . 2 第三章 总体设计 3.1 功能模块设计 12根据分析整个系统主要划分为 7 个功能模块,分别执行要求中的功能。数据管理中实现对学生的基本信息、课程的基本信息、学生缺课的查询、添加、删除和修改,以及具体缺课缺课内容,是迟到、早退、请假、旷课。查询管理通过根据学生姓名,课程姓名 时间段儿等信息,查询单个学生的缺课记录,单科课的旷课记录,单个学生的旷课记录。功能模块图如图 1 所示。 学生考勤管理程序建立学生缺课记录修改学生缺课记录查询学生缺课记录查看单科旷课记
14、录查看学生旷课记录载入学生旷课记录储存学生旷课记录 图 1 功能模块图 3.2 系统设计方案 此程序是过程性语言设计的。运用多种条件语句,主体采用的是链表指针。系统的设计采用了数组语句、选择语句和循环语句,在需要处理大量同类数据时,这样就使程序书写更加简洁。程序使用了布尔函数。选择语句多采用 if 多分支选择结构与 switch 语句。首先计算 switch 表达式,然后在 caes 子句中寻找值相等的常量表达式,并以此为入口符号,由此开始顺序执行。循环语句采用了 for 语句等、do-while 语句,for 语句用于已知循环次数的循环结构,括号中的三个量分别用来表示循环变量初值、循环终值和
15、循环增量。do-while 语句先循环后判断, Break 语句在13switch 语句中,保证多分支情况的正确执行,在循环语句中,强制终止本层循环。保存和读取函数是典型的函数功能,一个程序是由若干个函数组成的,保存和读取函数是和其他函数互相调用的。 3 第四章 详细设计 4.1 修改学生缺课记录子模块 根据要修改的学生姓名以及科目名称找到相应的信息,再选择要修改的项目进行单项修改,如图 2 所示。 开始 char xiugai_name50;char xiugai_xueke_name50;int k;printf(请输入要修改的学生姓名与学科名称:scanf(,xiugai_xueke_n
16、ame);struct student *p1,*p2; p2=(struct student *)malloc(LEN); p1=head;p1=p1-next;strcmp(xiugai_name,p1-name)!=0char chaxun_name50;struct student *p;p=head;printf(请输入要查询的人名:scanf(_name);iname)=0 输出 p 所指向的结构体数据结束 图 3 查找缺课记录 5 4.3 查看单科旷课记录子模块 根据学科名称和时间范围查出所有在该范围内旷课的学生以及次数 如图 4 所示。 开始 struct student *p
17、1,*p2,*p3; char lesson50;long look_time1,look_time2;int xunhuan_num=0;p3=(struct student *)malloc(LEN);p1=head;p2=p1-nextxunhuan_numkuangke_nump1-kuangke_numYp1=head;p2=p1-next;xunhuan_num+;p1=p2;p2=p2-next;交换 p1 与 p2指向数据 printf(请输入要查看的学科名称:scanf(printf(15请输入要查看的时间范围 scanf(p1=head;p1!=NULLp1=p1-next
18、;strcmp(lesson,p1-lesson_name)=0struct student *p1;char zhongjian_name50;long look_time1,look_time2;printf(请输入第%d 个学科名称: scanf(ai.people_num=0;printf(请输入要查看的时间范围由小到大scanf(p1=head;i=0;Yitime N(strcmp(ai.xueke_name,p1-lesson_name)=0Yai.people_num+=p1-kuangke_num;Yj 4.5 载入学生旷课记录子模块 可以载入实现储存在当前文件夹中 txt
19、文件中所储存的数据 如图 6 所示。 7 16开始 int n,i,j,zhongjian;struct student *p1;char zhongjian_name50;long look_time1,look_time2;printf(请输入第%d 个学科名称: scanf(ai.people_num=0;printf(请输入要查看的时间范围由小到大scanf(p1=head;i=0;Yitime N(strcmp(ai.xueke_name,p1-lesson_name)=0Yai.people_num+=p1-kuangke_num;Yj 4.5 载入学生旷课记录子模块 可以载入实现
20、储存在当前文件夹中 txt 文件中所储存的数据 如图 6 所示。 7 开始 struct student *p1=NULL,*p2=NULL,*head=NULL;struct student student_ziliao100;int i=0,n=0;打开文件!feof(fp1)将文件里的数据存入结构体数组通过结构体数组建立链表结束 图 6 载入学生旷课记录 4.6 储存学生旷课记录子模快 进入系统界面,顺序的完成各项操作,进行数据的输入,信息的保存调用相应的函数打开相应的地址,查询各项信息。如图 7 所示。 178 图 7 储存学生旷课记录 9 第五章 调试与测试 5.1 调试 此程序是用
21、 VC 程序编写,调试过程中在菜单中选择乍看学生旷课记录,程序不执行。因为没有加入选择的 case 语句。后在 switch 后加一个 case 就可以自动执行了。 5.2 测试 由于程序的源代码是在记事本文本中复制到 VC 中的,有些 printf 后比较长的语句会被放到下一行,使程序出现多处类似的错误,经过在 VC 中的修改,程序得以正常的运行。5.3 结论 课程设计顺利完成,题目所要求的功能也都一一实现,可以对学生的缺课信息进行添加,修改,删除以及查询的显示。不过这个程序还有些不够完善,例如不能往当前文18件夹中的 txt 文件中添加记录。 10 结束语 整个系统的设计过程对于我来说算是
22、个学习、探索的过程,通过实践和对比别人开发程序的过程。在整个设计过程中,出现过很多的问题,很多繁琐的东西都需要反复的修改,主要是前期工作不彻底,对系统的需求分析的要求认识不够清楚,使得在后边的工作中不得不经常反复去修改。使我体会到设置中每一步的重要性。所以在分析一个问题时,我们需要站在一个有远见的高度。 通过此次设计,我不但对 C 语言编程有了更深刻的认识,积累了使用软件工程的思想来开发软件的经验,更重要的是学会了在对待问题时应该考虑到哪些方面和怎么解决问题。 虽然时间紧迫但我学会了很多,也感到自身知识的贫乏,希望在日后的努力中能做出更完善的系统。 11 19错误!未指定书签。考勤管理程序的设
23、计与实现 图 3 修改学生缺课记录 3.查询学生缺课记录 图 4 查询学生缺课记录 学生考勤管理系统 4.查看单科旷课记录 图 5 查看单科旷课记录 5.查看学生旷课记录 图 6 查看学生旷课记录 6.储存学生旷课记录 学生考勤管理系统 20图 7 储存学生旷课记录 7.载入学生旷课记录 图 8 载入学生旷课记录 8. 退出程序 学生考勤管理系统 图 9 退出程序 学生考勤管理系统 附录 2源程序 #include #include #include #define NULL 0 #define LEN sizeof(struct student) int student_num; FILE
24、*fp1; struct xueke char xueke_name50; ; struct xueke a10; struct student char name50; ; void chaxun(struct student *head) int i; char chaxun_name50; printf( 请输入要查询的人名 【若没有这个人则不显示】:21long time; int lesson_time; char lesson_name50; int chidao_num; int zaotui_num; int qingjia_num; int kuangke_num; stru
25、ct student *next; int people_num; scanf( struct student *p; 学生考勤管理系统 附录 2源程序 #include #include #include #define NULL 0 #define LEN sizeof(struct student) int student_num; FILE *fp1; struct xueke char xueke_name50; ; struct xueke a10; struct student char name50; ; void chaxun(struct student *head) in
26、t i; char chaxun_name50; printf( 请输入要查询的人名 【若没有这个人则不显示】:long time; int lesson_time; char lesson_name50; int chidao_num; int zaotui_num; int qingjia_num; int kuangke_num; struct student *next; int people_num; scanf( 22struct student *p; 学生考勤管理系统 if(head=NULL) printf( 联系人为空 p=head; for(i=0;iif(strcmp(
27、chaxun_name,p-name)=0) printf( 缺课时间 :%ld 学生姓名:%s 课程名称:%s 第%d节 迟到次数:%d 早退次数:%d 请假次数 :%d 旷课次 数:%dn%um,p-qingjia_num,p-kuangke_num); struct student *xiugai(struct student *head) char xiugai_name50; char xiugai_xueke_name50; int k; printf( 请输入要修改的学生姓名与学科名称【格式:学生姓名(空格) 学科名称】:scanf(struct student *p1,*p2;
28、 p2=(struct student *)malloc(LEN); p1=head; if(head=NULL) printf(没有学生信息n return(head); p=p-next; 23while(strcmp(xiugai_name,p1-name)!=0 if(strcmp(xiugai_name,p1-name)=0 24case 2: printf( 请输入新的学生姓名 scanf(break; case 3: printf( 请输入新的课程名称 scanf(break; case 4: printf( 请输入新的第几节缺课 scanf(break; case 5: pri
29、ntf( 请输入新的迟到次数 scanf(break; case 6: 学生考勤管理系统 printf( 请输入新的早退次数 scanf(break; case 7: printf( 请输入新的请假次数 scanf(break; case 8: printf( 请输入新的旷课次数 scanf(break; return(head); struct student *creat() 25int i,b; struct student *head,*p1,*p2; printf(请输入要建立资料的学生人数:scanf(head=p2=NULL; p1=(struct student *)mallo
30、c(LEN); printf( 【输入格式:缺课时间 (空格) 学生姓名(空格)课程名称(空格) 第几节(空格 )迟到次数(空格) 早退次数( 空格)请假次数(空格) 旷课次数】n printf( 请输入第 1 名学生信息:scanf(e, head=p1; p2=p1; student_num+; for(i=1;i 学生考勤管理系统 p1=(struct student*)malloc(LEN); printf(请输入第%d 名学生信息:26scanf(e, p2-next=p1; p2=p1; student_num+; p2-next=NULL; return(head); void
31、print(struct student *head) struct student *p; p=head; if(p=NULL) printf( 没有学生信息 nwhile(p!=NULL) printf(缺课时间:%ld 学生姓名:%s 课程名称:%s 第%d 节 迟到次数 :%d 早退次数:%d 请假次数 :%d 旷课次数:%dn%um,p-qingjia_num,p-kuangke_num); struct student *tongji_lesson(struct student *head) struct student *p1,*p2,*p3; char lesson50; long look_time1,look_time2; int xunhuan_num=0; p3=(struct student *)malloc(LEN); if(head=NULL) p=p-next; 27百度搜索“就爱阅读”,专业资料,生活学习,尽在就爱阅读网,您的在线图书馆百度搜索“就爱阅读”,专业资料、生活学习,尽在就爱阅读网 ,您的在线图书馆!