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出勤管理系统程序代码 #include #include #include struct chuqin( char name[10],number[20], subject[15], timel[15], time2[15], zhuangtai[10]; chuqin *next; }; void insert (chuqin* :定义二个_皿凹1查类型指针一JI while(l) ( n=new chuqin;〃川_丝业_运算,动态公一配…:仝一交间给指 cout〈〈〃请依次输入姓名、学号、课程、上课时间、到课时间、出勤状态(第一个字母输入 N表示结束插入):\n〃; cin>>n->name; ; - _匕 if (n->name[0] = N ) 〃判断刖才一输入/勺第一…个壬一母是苴为一N ( delete n;茬输入也笏…一个上毋为,…则川_成」里 break; 〃跳_出_死循还」结束插A. } cin>>n->number>>n->subject>>n->timel>>n->time2>>n->zhuangtai; 续输入堂号M 一课程 一上课时间到一课IS间笠 if(!headl) headl=n, n->next=NULL; ±®.Xhead=n),.Jln->next.赋值为宝,…职丕指向任何存储_空间打 else n->next=headl, headl二n; /若上_理1指句韭空一,…则一将口一指他勺在储生叫由任歧顶面 } } / / void check(chuqin *head) { char number 1 [10];〃定义二仝]符里数组工臾畛1_临时存放要演业J』勺姓名 int flag=l; cout«/z请输入要查询的学号:〃; cin>>numberl;//输入安苴_询_的学号 while (head) W用也直2一循环检索直询是苴立匹配的姓名 { if (strcmp (number 1, head->number) ==0)S. strcmp_ ()__^-ij断是查宜匹配姓苦 { if(flag) ( coutnumber>namel;姓名 while(head) ( if (strcmp (namel, head->name) =0) ( cout«/z找到此人!\t〃《〃请输入此人新的信息(依次为:课程、上课时间、到课时间、 出勤状态)\n〃; cin»head->subject»head->timel>>head->time2>>head->zhuangtai; 上课时间一-到课时间 break; } head=head->next; } if (head=NULL) cout«z,未找到此人!无法修改! \n〃; } // void Delete (chuqin* int flag=l; chuqin *pl二NULL, *p2, *p3=head; cout〈〈”请输入要删除的姓名:“; cin>>namel; while(head) ( if (strcmp (namel, head~>name) =0) ( cout«/z找到此人! \t将此人的全部信息删除\n〃; if(pl==NULL) pl=head; head=head~>next; delete pl; } else if (p2->next=NULL) { pl—>next=NULL; delete p2; head二p3; } else { pl->next=p2->next; delete p2; head=p3; } flag=0;break; pl二head; head=head~>next; p2=head; if(flag) cout