




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学生管理系统:/f?kz=5806073 学生成绩管理系统:/f?kz=37076140 学生成绩管理系统:/f?kz=5972675 学生成绩管理程序(链表):/f?kz=6598859 C语言输入输出讨论:/f?kz=7586045 经典C源程序100例:/f?kz=8618367 题目二十二:设计一考勤管理系统。考勤信息记录了学生的缺课情况,它包括:缺
2、课日期、第几节课、课程名称、学生姓名、学生学号、缺课类型(迟到、早退、请假及旷课)。系统具有以下功能:1)录入学生的缺课记录;2)修改某个学生的缺课记录;3)查询某个学生的缺课情况;4)统计某段时间内,旷课学生姓名及旷课次数,按旷课次数由多到少排序;5)统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序;6)系统以菜单方式工作。具体要求如下:1)采取模块化方式进行程序设计,要求程序的功能设计、数据结构设计及整体结构设计合理。也可根据自己对题目的理解增加新的功能模块。2)系统以菜单界面方式(可采用文本菜单界面)工作,运行界面友好。3)容错性强(能对错误输入进行判断控制)。#inc
3、lude#include#include#include#includeusing namespace std; void menu(); /目录函数void input(); /输入函数void save() ; /保存函数void modify(); /修改函数void search(); /查询函数void lessonput1 (int y); /用于输出课程名void lessonput2 (int i,int j); /用于输出缺课类型void select(int m); /选择函数void quit() ; /退出函数void paixu1(); /按学生排序void paix
4、u2(); /按课程排序struct student char name10; int num; int month5; int day5; int classnum5; char classname20; int type5; /缺课类型 int f; /用于计算旷课次数stu20;struct lesson /在排序函数2中使用 char name; int g; /用于计算旷课人次les6;/*主函数*/void main() int m;menu();bool flag=0;do cinm; if(m=1&m=6) flag=1; else coutm;if(m=1&m=6)flag=
5、1;elsecout指令错误!请重新输入:;while(flag=0);quit();/*目录函数*/void menu() couttt*n; couttt* 欢 迎 使 用 本 系 统 *n; couttt* 制作人:黎超 宋航 张文 *n; couttt*n; couttt* 1. 添加学生缺课信息 *n; couttt* 2. 查询学生缺课信息 *n; couttt* 3. 修改学生缺课信息 *n; couttt* 4. 按学生的缺课次数排序 *n; couttt* 5. 按课程的旷课人次排序 *n; couttt* 6. 退出本系统 *n; couttt*n; cout 请输入16选
6、择功能n;/*输入函数*/void input() for(int i=0;i20;i+) cout请输入学生姓名和学号stui.num; cout请依次输入缺课日期(月-日)课程节次(仅数字)课程名称(输入字母 a(代表语文) b(数学) c(英语) d(物理) e(化学) f(生物) 缺课类型(输入数字 0(代表迟到) 1(早退) 2(请假) 3(旷课)endl; for(int j=0;jstui.monthjstui.dayjstui.classnumjstui.classnamejstui.typej; char c; cout是否继续输入该学生其他缺课信息(y或n
7、)c; if(c=y) cout请继续按以上顺序输入endl; if(c=n) break; char k; cout是否继续输入其他学生缺课信息(y或n)k; if(k=n) break; save();/*保存函数*/void save() int i;ofstream ofile(stu.txt,ios:binary);for(i=0;i20;i+)ofile.write(char*)&stui,sizeof (struct student);cout学生信息已保存endl;/*修改函数*/void modify() int i,j,c=0,k,b,d=0,m,n; ifstream i
8、file(stu.txt,ios:binary); if(!ifile) cout文件不能打开endl; return ; cout请输入要修改学生的学号k;cout请输入要修改学生的上课日期(月-日)mn;cout请输入要修改学生的上课节次:b;bool y=0;dofor(i=0;i20;i+)ifile.read(char*)&stui,sizeof(struct student);for(j=0;j5;j+) if (k=stui.num&b=stui.classnumj&m=stui.monthj&n=stui.dayj) c=i; d=j; if(c!=0&d!=0) y=1;el
9、se cout输入信息不存在,请重新输入学号日期节次kmnb; while(y=0);cout请输入新修改的内容:n; /下面输入该学生新信息 cout请依次输入要修改的学生姓名和学号缺课日期(月-日)课程节次(仅数字) 课程名称(输入字母 a(代表语文) b(数学) c(英语) d(物理) e(化学) f(生物) 缺课类型(输入数字 0(代表迟到) 1(早退) 2(请假) 3(旷课)stuc.numstuc.monthdstuc.daydstuc.classnumdstuc.classnamedstuc.typed; save();/*查询函数*/void search()
10、 int i,j;ifstream ifile(stu.txt,ios:binary); int N;coutN;if(ifile) for(i=0;i20;i+)ifile.read(char*)&stui,sizeof(struct student); for(j=0;j5;j+)if(N=stui.num) if(stui.monthj=0) break; cout学生的信息为:姓名 学号 月-日 节次 课程名称 缺课类型; cout setw(7)stui.numsetw(8) stui.monthjstui.dayjsetw(8)stui.classnumjsetw
11、(12); lessonput1( stui.classnamej); cout setw(10); lessonput2 (i,j); coutendl; else cout文件无法打开n;exit(0);/*排序函数1*/void paixu1() int i,j; student temp; for(int m=0;m20;m+) stum.f=0; ifstream ifile(stu.txt,ios:binary); if(ifile) for(i=0;i20;i+) ifile.read(char*)&stui,sizeof(struct student); for(j=0;j5;
12、j+) if(stui.typej=3) stui.f+; else cout文件不能打开endl; return ; for(int m=0;m20;m+) for(int n=0;n20-m;n+) if(stun.fstun+1.f) temp=stun; stun=stun+1; stun+1=temp; cout排序结果:学生姓名 旷课次数endl; for(int n=0;n20;n+) if(stun.num=0) break; cout setw(15)stun.fendl; /*排序函数2*/void paixu2() =a;les1.na
13、me=b;=c;=d; =e;=f; for(int m=0;m7;m+) lesm.g=0; int i,j; lesson temp; ifstream ifile(stu.txt,ios:binary); if(ifile) for(i=0;i20;i+) ifile.read(char*)&stui,sizeof(struct student); for(j=0;j5;j+) for(int n=0;n6;n+) if(stui.classnamej=) lesn.g+; for(int m=0;
14、m20;m+) for(int n=0;n20-m;n+) if(lesn.glesn+1.g) temp=lesn+1; lesn+1=lesn; lesn=temp; else cout文件不能打开endl; return ; cout排序结果:课程名称 旷课人次endl; for(int n=0;n6;n+) cout ; lessonput1(); coutsetw(15)lesn.g; coutendl; /*选择函数*/void select(int m ) switch(m) case 1: input(); break; case 2: search(); break; case 3: modify(); break; case 4: paixu1(); break; case 5: paixu2(); break; case 6: quit(); break; /*退出函数*/void quit() cout谢谢使用本系统!n;exit(0);/*课名输出函数*/void lessonput1 (int y) switch(y) case a:cout语文; break;case b:cout数学; break;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《三角形中的余弦定理:九年级数学几何教案》
- 生命的意义600字(10篇)
- 《物理力学实验操作示范:力学实验小技巧》
- 金融科技赋能普惠金融:2025年金融科技在乡村振兴战略中的应用研究
- 土壤污染修复技术2025:效果评价与成本效益优化策略报告
- 文化艺术中心建筑2025年初步设计屋顶花园设计评估报告
- 2025年生态修复项目资金申请与生态补偿机制报告
- 科技年度工作计划汇编(3篇)
- 合同法单选多选模板
- 跨境电商税收筹划服务合同范本
- 国家开放大学《监督学》形考任务( 1-4)试题和答案解析
- 《遗爱寺》-完整版课件
- 三相三线电能表
- 试卷交接签字单
- 加油站相邻企业安全应急救援互助协议
- 传媒公司合作合同
- 测量-极坐标法讲义
- 思想道德与法治课件:第六章 第一节 社会主义法律的特征和运行
- 五年级数学下册测试题(高清打印版)
- 露天矿采坑边坡稳定性评价报告
- 初中毕业典礼毕业季博士帽蓝色创意PPT模板
评论
0/150
提交评论