vc程序设计课程设计出勤管理系统
南魄大样材尊机岩浣 计算机语言与算法实践课程设计 报告书 设计题目出勤管理系统 专业班级电气087 学生姓名 学 号 指导教师胡俐蕊 日 期 2009-9-1 1课程设计题目1 2课程设计目的1 3课程设计要求1 4课程设计报告内容1 4. 1软件结构2 4. 2出勤管理系统程序代码2 4. 3该系统的运行情况6 4.4设计总结与体会8 5参考文献8 1. 课程设计题目出勤管理系统 2. 课程设计目的 使学生掌握面向过程和面向对象程序设计的基本方法,较熟练地运用面向对象技术 来分析解决问题。 3. 课程设计要求 采用面向对象的程序设计方法实现。 要求完成以下功能 ⑴定义相关的数据,比如 学生学号 学生姓名 课程名称 上课时间 到课时间 出勤状态[旷课/病假/事假/迟至IJ/早退] 2能够进行以下操作 A. 能够对数据进行增、删、改、查操作。 B. 能够按学号顺序列出某一课程的出勤状况。 4. 课程设计报告内容 1 给出软件结构,说明各模块的功能。 2 设计相关的类,并说明该类的作用。特别要用图形说明类之间的继承关系。 3 编写代码。 4. 1软件结构 本程序用结构体新定义一种数据类型,系统包含一个主函数和6个子函数 insert , check , rivise , Delete , output , deleteallchain , 6 个子 函数分别用来插入、查询、修改、删除、输出、收回动态分配的空间,在主函数中通过 调用子函数来实现所需功能 4. 2出勤管理系统程序代码 includeiostream. h includestring. h includeiomanip. h struct chuqin char name[10],number[20], subject[15], timel[15], time2[15], zhuangtai[10]; chuqin *next; }; void insert chuqin* headl项徙衣』插入敬_据 { chuqin *n;定义二个_皿凹1查类型指针一JI whilel nnew chuqin;〃川_丝业_运算,动态公一配仝一交间给指 cout〈〈〃请依次输入姓名、学号、课程、上课时间、到课时间、出勤状态第一个字母输入 N表示结束插入\n〃; cinn-name; ; - _匕 if n-name[0] N 〃判断刖才一输入/勺第一个壬一母是苴为一N delete n;茬输入也笏一个上毋为,则川_成」里 break; 〃跳_出_死循还」结束插A. } cinn-numbern-subjectn-timeln-time2n-zhuangtai; 续输入堂号M 一课程一上课时间到一课IS间笠 ifheadl headln, n-nextNULL; .Xheadn,.Jln-next.赋值为宝,职丕指向任何存储_空间打 else n-nextheadl, headl二n; /若上_理1指句韭空一,则一将口一指他勺在储生叫由任歧顶面 } } / / void checkchuqin *head { char number 1 [10];〃定义二仝]符里数组工臾畛1_临时存放要演业J』勺姓名 int flagl; cout/z请输入要查询的学号〃; cinnumberl;//输入安苴_询_的学号 while head W用也直2一循环检索直询是苴立匹配的姓名 { if strcmp number 1, head-number 0S. strcmp_ __-ij断是查宜匹配姓苦 { ifflag coutz,找到 \n,zsetw12 X 〃姓名 /zsetw12〈 〃学号,zsetw12 〈〃课程〃; coutsetw12 /z上课时间 /zsetw12 z/ 到课时间 z/setw12 /z 出勤状态 \n,z; } /_*若条件为其,则输出提丞信息打 coutsetw12 head-namesetw 12 head-numbersetw 12 head-subject; coutsetw12 head-timelsetw12head-time2setw12 head-zhuangta iendl; flagO; } head二head-next;//更新head指针,是它指向下一个chuqin类型的存储空间 } if flag coutz/ 未找到〃;ili } void rivisechuqin *head〃定义壬函数实现修改功能 { char name1[10];n刨田』角时存放要修改的姓名 cout/z请输入修改的姓名〃; cinnamel;姓名 whilehead if strcmp namel, head-name 0 cout/z找到此人\t〃〃请输入此人新的信息依次为课程、上课时间、到课时间、 出勤状态\n〃; cinhead-subjecthead-timelhead-time2head-zhuangtai; 上课时间一-到课时间 break; } headhead-next; } if headNULL coutz,未找到此人无法修改 \n〃; } // void Delete chuqin* head〃定义了g[数实现删除以能 char namel[10]; int flagl; chuqin *pl二NULL, *p2, *p3head; cout〈〈”请输入要删除的姓名; cinnamel; whilehead if strcmp namel, headname 0 cout/z找到此人 \t将此人的全部信息删除\n〃; ifplNULL plhead; headheadnext; delete pl; } else if p2-nextNULL { plnextNULL; delete p2; head二p3; } else { pl-nextp2-next; delete p2; headp3; } flag0;break; pl二head; headheadnext; p2head; ifflag cout