VC++程序设计课程设计(出勤管理系统).doc_第1页
VC++程序设计课程设计(出勤管理系统).doc_第2页
VC++程序设计课程设计(出勤管理系统).doc_第3页
VC++程序设计课程设计(出勤管理系统).doc_第4页
VC++程序设计课程设计(出勤管理系统).doc_第5页
免费预览已结束,剩余5页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

南通大学计算机学院 计算机语言与算法实践 课程设计报 告 书设计题目 出勤管理系统专业班级 电气087 学生姓名 学 号 指导教师 胡俐蕊 日 期 2009-9-1 目 录1课程设计题目12课程设计目的13课程设计要求14课程设计报告内容14.1软件结构24.2出勤管理系统程序代码24.3该系统的运行情况64.4 设计总结与体会85参考文献8I1. 课程设计题目:出勤管理系统2. 课程设计目的:使学生掌握面向过程和面向对象程序设计的基本方法,较熟练地运用面向对象技术来分析解决问题。3. 课程设计要求:采用面向对象的程序设计方法实现。要求完成以下功能:(1) 定义相关的数据,比如:学生学号 学生姓名 课程名称 上课时间 到课时间出勤状态 旷课/病假/事假/迟到/早退(2) 能够进行以下操作:A. 能够对数据进行增、删、改、查操作。B. 能够按学号顺序列出某一课程的出勤状况。4. 课程设计报告内容(1)给出软件结构,说明各模块的功能。(2)设计相关的类,并说明该类的作用。特别要用图形说明类之间的继承关系。(3) 编写代码。4. 1软件结构本程序用结构体新定义一种数据类型,系统包含一个主函数和6个子函数(insert(),check(),rivise(),Delete(),output(),deleteallchain()),6个子函数分别用来插入、查询、修改、删除、输出、收回动态分配的空间,在主函数中通过调用子函数来实现所需功能4.2出勤管理系统程序代码#include#include#includestruct chuqin /用结构体定义一个新的数据类型出勤chuqinchar name10,number20,subject15,time115,time215,zhuangtai10;chuqin *next;/-void insert(chuqin* &head1)/创建单向链表并插入数据chuqin *n;/定义一个chuqin类型指针nwhile(1)/一个死循环 n=new chuqin;/用new运算符动态分配一个chuqin空间给指针n coutn-name;/输入姓名if(n-name0=N) /判断刚才输入的第一个字母是否为N delete n;/若输入的第一个字母为N,则用delete运算符收回刚才动态分配的空间 break;/跳出死循环,结束插入cinn-numbern-subjectn-time1n-time2n-zhuangtai;/若条件不满足,则继续输入学号、课程、上课时间到课时间等if(!head1) head1=n,n-next=NULL;/*假如head指针为空,则直接让head指针指向n指向的存储空间(head=n),将n-next赋值为空,即不指向任何存储空间*/else n-next=head1,head1=n;/若head指针非空,则将n指向的存储空间插在最前面 /-void check(chuqin *head)/子函数实现查询功能char number110;/定义一个字符串数组name1临时存放要查询的姓名int flag=1;coutnumber1;/输入要查询的学号while(head)/用while循环检索查询是否有匹配的姓名if(strcmp(number1,head-number)=0) /用函数strcmp()判断是否有匹配姓名 if(flag) cout找到!nsetw(12)姓名setw(12)学号setw(12)课程; coutsetw(12)上课时间setw(12)到课时间setw(12)出勤状态n; /*若条件为真,则输出提示信息*/ coutsetw(12)namesetw(12)numbersetw(12)subject; coutsetw(12)time1setw(12)time2setw(12)zhuangtainext;/更新head指针,是它指向下一个chuqin类型的存储空间 if(flag) cout未找到!;/假如flag值为1,则输出未找到!/-void rivise(chuqin *head)/定义子函数实现修改功能 char name110;/定义一个字符串数组name1临时存放要修改的姓名coutname1;/输入要查询的姓名 while(head) if(strcmp(name1,head-name)=0) cout找到此人!thead-subjecthead-time1head-time2head-zhuangtai;/输入新的课程、上课时间、到课时间 break;head=head-next; if(head=NULL) cout未找到此人!无法修改!n;/-void Delete(chuqin* &head)/定义子函数实现删除功能 char name110; int flag=1; chuqin *p1=NULL,*p2,*p3=head;coutname1; while(head) if(strcmp(name1,head-name)=0) coutnext; delete p1; else if(p2-next=NULL) p1-next=NULL; delete p2; head=p3; else p1-next=p2-next; delete p2; head=p3; flag=0;break; p1=head; head=head-next; p2=head;if(flag) cout未找到此人!无法删除!n;/-void output(chuqin *head)/定义子函数实现输出功能if(head=NULL) cout记录为空!;else cout所有的记录依次为:nsetw(12)姓名setw(12)学号setw(12)课程; coutsetw(12)上课时间setw(12)到课时间setw(12)出勤状态n;while(head) coutsetw(12)namesetw(12)numbersetw(12)subject;coutsetw(12)time1setw(12)time2setw(12)zhuangtainext;/-void deleteallchain(chuqin *head)/定义子函数来收回所有动态分配的存储空间chuqin *p;while(head)p=head;head=head-next;delete p;/-void main()/主函数int a;/定义一个整型变量 chuqin *head;/定义一个head指针 head=NULL;while(1)/死循环 cout请输入一个数字(1表示插入,2表示查询,3表示修改,; couta;/输入一个整型值if(a=6) break;/若该值为6则跳出整个循环 switch(a)/若a值不为6,执行一下程序 case 1: insert(head);break; case 2: check(head);break; case 3: rivise(head);break; case 4: Delete(head);break; case 5: output(head);break; default: cout输入有误,请重新输入n;/*若输入的a值不符合要求,则输出提示信息*/ deleteallchain(head);/调用函数deleteallchain()收回所有动态分配的存储空间4.3该系统的运行情况4.4 设计总结及体会本系统的编写,不仅让我对计算机编程有了更浓厚的兴趣,而且让我知道了怎么将理论与实际联系起来,将理论运用到实际生活中去,真真体会到所学知识的用去,而且本程序编写过程中,查阅了大量的资料,与老师讨论过很多问题,在实际做的过程中,我的编程水平有了很大的提高。而且,编写本系统的过程中,运用了很多C+知识,编写的过程也是学习和巩固的过程,本程序的编写让我进一步加深了对以前所学知识的理解。总之,我最大的体会就是,编程很有意思,我会进一步努力的。 参考文献:(五号,宋体加粗)1 刘维富 陈建平 葛建芳 王春

温馨提示

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

评论

0/150

提交评论