c课程设计学生考勤管理系统资料报告材料

上传人:痛*** 文档编号:99607442 上传时间:2022-06-01 格式:DOC 页数:31 大小:821KB
收藏 版权申诉 举报 下载
c课程设计学生考勤管理系统资料报告材料_第1页
第1页 / 共31页
c课程设计学生考勤管理系统资料报告材料_第2页
第2页 / 共31页
c课程设计学生考勤管理系统资料报告材料_第3页
第3页 / 共31页
资源描述:

《c课程设计学生考勤管理系统资料报告材料》由会员分享,可在线阅读,更多相关《c课程设计学生考勤管理系统资料报告材料(31页珍藏版)》请在装配图网上搜索。

1、文档大 连 科 技 学 院面向对象程序设计(A)课程设计题 目学生考勤管理系统报告 学生 xxx 专业班级 软件工程12-1 指导教师 孝贵 职 称讲师 所在单位 信息科学系软件工程教研室 教学部主任 王立娟 完成日期 2014年7月6日课程设计报告单学号XxxXxx专业班级软件工程12-1考核项目评分备注1平时工作态度与遵守纪律情况10分2掌握根本理论、关键知识、根本技能的程度和阅读参考资料的水平10分3独立工作能力、综合运用所学知识分析和解决问题能力与实际工作能力提高的程度20分4完成课程设计说明书与软件的情况与水平小组分工情况、规性、整洁清楚、表示完整性、思路清晰程度、工作量与实际运行情

2、况和创新性60分总评成绩综 合 评 定:优、良、中、与格、不与格 指导教师签字:年 月 日面向对象程序设计(A)课程设计任务书一、课程设计任务与要求:任务:针对小型信息管理系统或假设干综合性设计题目,选择一种软件开发模型,完成从需求分析、系统设计、系统实现,软件测试的全过程。要求: (1) 根据软件系统开发的一般原如此,完成相应系统的功能设计,完成主要功能模块的程序实现并进展测试训练,给出代码运行结果和相应的设计文档。可以分组进展,但所有学生必须经历整个系统的开发全过程,以便加深对系统开发全过程的认识。2提交课程设计报告。3指标: 要求完成课程设计报告3000字以上(约二十页);完成所设计的题

3、目,设计题目的语句行数的和在200行语句以上。二、工作量2周10个工作日时间三、计划安排第1个工作日:查找相关资料、书籍,阅读示例文档,选择题目。第2个工作日第4个工作日:设计程序结构、模块图。第5个工作日第9个工作日:完成程序的编码,并且自己调试、测试。穿插进展课程设计报告的撰写。第10个工作日:上交课程设计报告,由教师检查软件测试效果、检查课程设计报告,给出学生成绩。指导教师签字: 年 月 日27 / 31目录某某科技学院1题目:11.需求分析12.概要设计13.详细设计24.编码95.调试分析116.测试结果与运行效果117.系统开发所用到的技术13参考文献15附录全部代码16题目:c+

4、课程设计学生考勤管理系统报告1.录入学生的缺课记录;2修改某个学生的缺课记录;3查询某个学生的缺课情况;4统计某段时间,某门课旷课学生与旷课次数,按旷课次数由多到少排序; 5统计某段时间,有学生旷课的课程与旷课人次,按旷课人次由多到少排序;6.系统以菜单方式工作。程序实践是本科生重要教学环节之一。通过程序实践,强化学生的计算机应用技能,使学生验证、巩固和充实所学的理论知识, 加深对相关容的理解,拓宽知识面,培养学生的创新精神和实践能力学生考勤管理程序可以大大减缓学生考勤人员的工作量, 方便了平时上课学生的出勤率的管理。根据分析整个系统主要划分为7个功能模块,分别执行要求中的功能。数据管理中可以

5、对学生的根本信息、课程的根本信息、学生缺课的查询、添加、删除和修改。查询管理通过根据学生,课程 时间段儿等信息,查询单个学生的缺课记录,单科课的旷课记录,单个学生的旷课记录。功能模块图如图1所示:图2-1功能模块图这个程序是过程性语言设计的。运用多种条件语句,主体采用的是链表指针。系统的设计采用了数组语句、选择语句和循环语句,在需要处理大量同类数据时,这样就使程序书写更加简洁。程序使用了布尔函数。选择语句多采用if多分支选择结构与switch语句。首先计算switch表达式,然后在caes子句中寻找值相等的常量表达式,并以此为入口符号,由此开始顺序执行。循环语句采用了for语句等、do-whi

6、le语句,for语句用于循环次数的循环结构,括号中的三个量分别用来表示循环变量初值、循环终值和循环增量。do-while语句先循环后判断, Break语句在switch语句中,保证多分支情况的正确执行,在循环语句中,强制终止本层循环。保存和读取函数是典型的函数功能,一个程序是由假设干个函数组成的,保存和读取函数是和其他函数互相调用的。数据结构设计struct xuekechar xueke_name50;int people_num;这是定义了一个xueke结构体,用来存放一个学科名与其相应的旷课人数;struct studentchar name50;long time;int lesson

7、_time;char lesson_name50;int chidao_num;int zaotui_num;int qingjia_num;int kuangke_num;struct student *next;这是定义了一个student的结构体,用来存放一个学生的考勤记录,其中有,字符数组name50,lesson_name50,分别存放学生名字,缺课课程名字;int型变量lesson_time,chidao_num,zaotui_num,qingjia_num, kuangke_num,分别来存放,缺课节次,迟到次数,早退次数,请假次数,旷课次数 long型变量time,记录时间。主

8、模块设计建立学生缺课记录子模块要建立的学生人数,学生根本信息包括缺课时间、学生、课程名称、节次、迟到次数、早退次数、请假次数、旷课次数可用creat函数如图1. 图3-1建立学生缺课记录子模块修改学生缺课记录子模块,根据要修改的学生以与科目名称找到相应的信息,再选择要修改的项目进展单项修改, 如图2:图3-2修改学生缺课记录子模块修改学生缺课记录子模块,根据人名可以查出该学生的所有缺课记录,如图3:图3-3修改学生缺课记录子模块查看单科旷课记录子模块,根据学科名称和时间围查出所有在该围旷课的学生以与次数 :如图4图3-4查看单科旷课记录子模块查看学生旷课记录子模块,根据要查询的学科名称与时间段

9、查出在改时间段该门课上旷课的人数, 如图5图3-5查看学生旷课记录子模块载入学生旷课记录子模块,可以载入实现储存在当前文件夹中txt文件中所储存的数据, 如图6图3-6载入学生旷课记录子模块储存学生旷课记录子模快,进入系统界面,顺序的完成各项操作,进展数据的输入,信息的保存调用相应的函数打开相应的地址,查询各项信息。如图7图3-7储存学生旷课记录子模快4.编码void main()struct student *head;int a,b,c;zhuye: cout$ 欢迎使用学生考勤管理系统 V1.0.0 $n; cout 1_进入管理nnn;cout 2_查看系统相关信息nnn;couta;

10、if(a=1)do cout*n;cout 1_建立学生缺课记录n;cout 2_修改学生缺课记录n;cout 3_查询学生缺课记录n;cout 4_查看单科旷课记录n;cout 5_查看学生旷课记录n;cout 6_载入学生旷课记录n;cout 7_储存学生旷课记录n;cout 8_退出考勤管理程序n;coutb;switch(b)case 1:head=creat();print(head);break;case 2:head=xiugai(head);print(head);break;case 3:chaxun(head);break;case 4:head=tongji_lesson

11、(head);break;case 5:head=tongji_student(head);break;case 6:head=zairu();print(head);break;case 7:chucun(head);break;while(b!=8);else cout*欢迎使用本系统 *n; coutc;5.调试分析在调试过程中出现了许多错误,并经过一系列分析之后 ,终于把错误改正。程序错误主要出现在逻辑上。编译无语法错误,而在运行时出现异常,使程序不能运行下去,这是常见且难以解决的错误,需要不断地实践且总结经验。在该整个程序中,主要出现的错误主要出现在指针方面。尤其是对链表中的结点的一

12、系列删除操作中,假设链表为定义头结点,如此需分删除链表第一个结点而不是第一个结点这两种情况进展编程。另外,对于数据成员的输入,需要按一定的要求来输入,虽然有一些输入提示信息,但由于输入操作符的限制,还是因输入错误导致而导致程运行出现不合理的结果。6.测试结果与运行效果运行开始菜单图6-1 开始菜单主菜单图6-2 主菜单建立学生缺课记录图6-3建立学生缺课记录储存学生旷课记录图6-4储存学生旷课记录7.系统开发所用到的技术应用语言C+注释:C+是在C语言引入了面向机制而形成的一种程序设计语言,程序结构灵活,代码简洁清晰,可移植性强,支持数据抽象,面向对象程序设计和泛型程序设计。所以它是一种应用广

13、泛的系统语言。参考文献1 红梅,于明,程序设计实验教程,中国铁道,20042徐武,周启涛,卉娟,Visual C+与Oracle数据库编程案例,电子工业,20043网冠科技,Visual C+ 6.0时尚编程百例,机械工业,20034 科技,Visual C+ 6.0程序设计与开发技术大全,人民邮电,20045 广正工作室 C+ Builder实用教程M. 机械工业 1998年6 Matt Tells 高级编程指南C+ BuilderM. 中国水利水电 1998年附录 全部代码#include /cstdio是将stdio.h的容用C+头文件的形式表示出来#include#include /m

14、alloc的全称是memory allocation,中文叫动态存分配,当无法知道存具体位置的时候,想要绑定真正的存空间,就需要用到动态的分配存。#include /当调用库函数,客户程序提供的是string类型参数,而库函数部实现用的是c-串,因此需要将string对象,转化为char*对象,而c_str()提供了这样一种方法,它返回一个客户程序可读不可改的指向字符数组的指针。#include /I/O流控制头文件#define NULL 0#define guding 10#define LEN sizeof(struct student)using namespace std;int s

15、tudent_num;FILE *fp1;struct xuekechar xueke_name50;int people_num;struct studentchar name50;long time;int lesson_time;char lesson_name50;int chidao_num;int zaotui_num;int qingjia_num;int kuangke_num;struct student *next;void chaxun(struct student *head)int i;char chaxun_name50;coutchaxun_name;struct

16、 student *p;if(head=NULL)cout联系人为空;p=head;for(i=0;iname)=0)cout缺课时间:time 学生:name 课程名称:lesson_name 节次:lesson_timeendl 迟到次数:chidao_num 早退次数:zaotui_num 请假次数:qingjia_num 旷课次数:kuangke_numnext; struct student *xiugai(struct student *head)char xiugai_name50;char xiugai_xueke_name50;int k;coutxiugai_namexiu

17、gai_xueke_name;struct student *p1,*p2; p2=(struct student *)malloc(LEN);p1=head;if(head=NULL)coutname)!=0|strcmp(xiugai_xueke_name,p1-lesson_name)!=0)&(p1-next!=NULL)p1=p1-next; if(strcmp(xiugai_name,p1-name)=0&strcmp(xiugai_xueke_name,p1-lesson_name)=0) cout= 修改信息 =n; cout 1-修改缺课时间 n;cout 2-修改学生 n;

18、cout 3-修改课程名称 n;cout 4-修改第几节缺课 n;cout 5-修改迟到次数 n;cout 6-修改早退次数 n;cout 7-修改请假次数 n;cout 8-修改旷课次数 nn;coutk;switch(k)case 1:coutp1-time;break;case 2:coutp1-name;break;case 3:coutp1-lesson_name;break;case 4:coutp1-lesson_time;break;case 5:coutp1-chidao_num;break;case 6:coutp1-zaotui_num;break;case 7:cout

19、p1-qingjia_num;break;case 8:coutp1-kuangke_num;break; return head;struct student *creat()int i,b;struct student *head,*p1,*p2; coutb;head=p2=NULL;p1=(struct student *)malloc(LEN);cout【输入格式:缺课时间(空格)学生(空格)课程名称(空格)第几节(空格)迟到次数(空格)早退次数(空格)请假次数(空格)旷课次数】n;coutp1-timep1-namep1-lesson_namep1-lesson_timep1-ch

20、idao_nump1-zaotui_nump1-qingjia_nump1-kuangke_num;head=p1;p2=p1;student_num+=1;for(i=1;ib;i+)p1=(struct student*)malloc(LEN);cout请输入第i+1p1-timep1-namep1-lesson_namep1-lesson_timep1-chidao_nump1-zaotui_nump1-qingjia_nump1-kuangke_num;p2-next=p1;p2=p1;student_num+=1; p2-next=NULL; return head;void pri

21、nt(struct student *head)struct student *p;p=head;if(p=NULL)cout没有学生信息n;while(p!=NULL) cout缺课时间:time 学生:setw(10)name 课程名称:lesson_name 节次:lesson_timeendl 迟到次数:chidao_num 早退次数:zaotui_num 请假次数:qingjia_num 旷课次数:kuangke_numnext;struct student *tongji_lesson(struct student *head)struct student *p1,*p2,*p3;

22、char lesson50;long look_time1,look_time2;int xunhuan_num=0;p3=(struct student *)malloc(LEN);if(head=NULL)coutnext;while(xunhuan_numkuangke_nump1-kuangke_num)p3-chidao_num=p2-chidao_num;p3-kuangke_num=p2-kuangke_num;p3-qingjia_num=p2-qingjia_num;p3-zaotui_num=p2-zaotui_num;p3-lesson_time=p2-lesson_ti

23、me;p3-time=p2-time;strcpy(p3-lesson_name,p2-lesson_name);strcpy(p3-name,p2-name);p2-chidao_num=p1-chidao_num;p2-kuangke_num=p1-kuangke_num;p2-qingjia_num=p1-qingjia_num;p2-zaotui_num=p1-zaotui_num;p2-lesson_time=p1-lesson_time;p2-time=p1-time;strcpy(p2-lesson_name,p1-lesson_name);strcpy(p2-name,p1-n

24、ame);p1-chidao_num=p3-chidao_num;p1-kuangke_num=p3-kuangke_num;p1-qingjia_num=p3-qingjia_num;p1-zaotui_num=p3-zaotui_num; p1-lesson_time=p3-lesson_time;p1-time=p3-time;strcpy(p1-lesson_name,p3-lesson_name);strcpy(p1-name,p3-name);p1=p2;p2=p2-next;p1=head;p2=p1-next;xunhuan_num+;coutlesson;coutlook_t

25、ime1look_time2;p1=head; while(p1!=NULL)if(strcmp(lesson,p1-lesson_name)=0&look_time1time&p1-time=look_time2)cout学生:name 旷课次数:kuangke_numnext; return head;struct student *tongji_student(struct student *head) struct xueke a10;int n,i,j,zhongjian;struct student *p1;char zhongjian_name50;long look_time1

26、,look_time2;if(head=NULL)cout没有学生信息n;return head; coutn;for(i=0;in;i+)cout请输入第i+1ai.xueke_name;ai.people_num=0; coutlook_time1look_time2;p1=head;for(i=0;in;i+)while(p1!=NULL&look_time1time&p1-timelesson_name)ai.people_num+=p1-kuangke_num; p1=p1-next;p1=head; for(j=0;jn-1;j+) for(i=0;in-1-j;i+)if(ai.

27、people_num0) zhongjian=ai+1.people_num;ai+1.people_num=ai.people_num;ai.people_num=zhongjian;strcpy(zhongjian_name,ai+1.xueke_name);strcpy(ai+1.xueke_name,ai.xueke_name);strcpy(ai.xueke_name,zhongjian_name);for(i=0;in;i+)cout学科名称:ai.xueke_name 旷课次数:ai.people_numendl;return head;return head;struct st

28、udent *zairu()struct student *p1=NULL,*p2=NULL,*head=NULL;struct student student_ziliao100;int i=0,n=0;if(fp1=fopen(xueshengziliao.txt,rb+)=NULL) printf(cannot open filen);return(head); while(!feof(fp1)if(fread(&student_ziliaoi,LEN,1,fp1)!=1)if(feof(fp1)fclose(fp1); break; printf(file read errorn);i

29、+;n=i;student_num=n;p1=p2=(struct student *)malloc(LEN);head=p1;for(i=0;ichidao_num=student_ziliaoi.chidao_num;p1-kuangke_num=student_ziliaoi.kuangke_num;strcpy(p1-lesson_name,student_ziliaoi.lesson_name);p1-lesson_time=student_ziliaoi.lesson_time;strcpy(p1-name,student_ziliaoi.name);p1-qingjia_num=

30、student_ziliaoi.qingjia_num;p1-time=student_ziliaoi.time;p1-zaotui_num=student_ziliaoi.zaotui_num;p2-next=p1;p2=p1;p1=(struct student*)malloc(LEN); p2-next=NULL;return(head);void chucun(struct student *head)struct student *p1;p1=head;fp1=fopen(xueshengziliao.txt,wb+);while(p1!=NULL)fwrite(p1,LEN,1,f

31、p1);p1=p1-next; fclose(fp1);cout 储存成功n;void main()struct student *head;int a,b,c;zhuye: cout$ 欢迎使用学生考勤管理系统 V1.0.0 $n; cout 1_进入管理nnn;cout 2_查看系统相关信息nnn;couta;if(a=1)do cout*n;cout 1_建立学生缺课记录n;cout 2_修改学生缺课记录n;cout 3_查询学生缺课记录n;cout 4_查看单科旷课记录n;cout 5_查看学生旷课记录n;cout 6_载入学生旷课记录n;cout 7_储存学生旷课记录n;cout 8

32、_退出考勤管理程序n;coutb;switch(b)case 1:head=creat();print(head);break;case 2:head=xiugai(head);print(head);break;case 3:chaxun(head);break;case 4:head=tongji_lesson(head);break;case 5:head=tongji_student(head);break;case 6:head=zairu();print(head);break;case 7:chucun(head);break;while(b!=8);else cout*欢迎使用本系统 *n; coutc; if(c=1) goto zhuye;

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!