c++课程设计考勤系统程序

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

◆学生管理系统:=5806073◆学生成绩管理系统:=37076140◆学生成绩管理系统:=5972675◆学生成绩管理程序(链表):=6598859C语言输入输出讨论:=7586045◆经典C源程序100例:=8618367题目二十二:设计一考勤管理系统。考勤信息记录了学生的缺课情况,它包括:缺课日期、第几节课、课程名称、学生姓名、学生学号、缺课类型(迟到、早退、请假及旷课)。系统具有以下功能:1)录入学生的缺课记录;2)修改某个学生的缺课记录;3)查询某个学生的缺课情况;4)统计某段时间内,旷课学生姓名及旷课次数,按旷课次数由多到少排序;5)统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序;6)系统以菜单方式工作。具体要求如下:1)采取模块化方式进行程序设计,要求程序的功能设计、数据结构设计及整体结构设计合理。也可根据自己对题目的理解增加新的功能模块。2)系统以菜单界面方式(可采用文本菜单界面)工作,运行界面友好。3)容错性强(能对错误输入进行判断控制)。#includeiostream#includeiomanip#includefstream#includestdio.h#includestdlib.husingnamespacestd;voidmenu();//目录函数voidinput();//输入函数voidsave();//保存函数voidmodify();//修改函数voidsearch();//查询函数voidlessonput1(inty);//用于输出课程名voidlessonput2(inti,intj);//用于输出缺课类型voidselect(intm);//选择函数voidquit();//退出函数voidpaixu1();//按学生排序voidpaixu2();//按课程排序structstudent{charname[10];intnum;intmonth[5];intday[5];intclassnum[5];charclassname[20];inttype[5];//缺课类型intf;//用于计算旷课次数}stu[20];structlesson//在排序函数2中使用{charname;intg;//用于计算旷课人次}les[6];/***************************主函数***********************************/voidmain(){intm;menu();boolflag=0;do{cinm;if(m=1&&m=6)flag=1;elsecout指令错误!请重新输入:;}while(flag==0);while(m!=6){select(m);//功能选择函数menu();flag=0;do{cinm;if((m=1&&m=6))flag=1;elsecout指令错误!请重新输入:;}while(flag==0);}quit();}/*******************************目录函数**********************************/voidmenu(){cout\t\t**************************************************\n;cout\t\t**欢迎使用本系统**\n;cout\t\t**制作人:黎超宋航张文**\n;cout\t\t**************************************************\n;cout\t\t**1.添加学生缺课信息**\n;cout\t\t**2.查询学生缺课信息**\n;cout\t\t**3.修改学生缺课信息**\n;cout\t\t**4.按学生的缺课次数排序**\n;cout\t\t**5.按课程的旷课人次排序**\n;cout\t\t**6.退出本系统**\n;cout\t\t**************************************************\n;cout请输入1~6选择功能\n;}/**********************************输入函数*********************************/voidinput(){for(inti=0;i20;i++){cout请输入学生姓名和学号endl;cinstu[i].namestu[i].num;cout请依次输入缺课日期(月-日)·课程节次(仅数字)·课程名称(输入字母a(代表语文)b(数学)c(英语)d(物理)e(化学)f(生物))·缺课类型(输入数字0(代表迟到)1(早退)2(请假)3(旷课))endl;for(intj=0;j5;j++){cinstu[i].month[j]stu[i].day[j]stu[i].classnum[j]stu[i].classname[j]stu[i].type[j];charc;cout是否继续输入该学生其他缺课信息(y或n)endl;cinc;if(c=='y')cout请继续按以上顺序输入endl;if(c=='n')break;}chark;cout是否继续输入其他学生缺课信息(y或n)endl;cink;if(k=='n')break;}save();}/******************************保存函数******************************/voidsave(){inti;ofstreamofile(stu.txt,ios::binary);for(i=0;i20;i++)ofile.write((char*)&stu[i],sizeof(structstudent));cout学生信息已保存endl;}/*******************************修改函数*****************************/voidmodify(){inti,j,c=0,k,b,d=0,m,n;ifstreamifile(stu.txt,ios::binary);if(!ifile){cout文件不能打开endl;return;}cout请输入要修改学生的学号endl;cink;cout请输入要修改学生的上课日期(月-日)endl;cinmn;cout请输入要修改学生的上课节次:endl;cinb;booly=0;do{for(i=0;i20;i++){ifile.read((char*)&stu[i],sizeof(structstudent));for(j=0;j5;j++){if(k==stu[i].num&&b==stu[i].classnum[j]&&m==stu[i].month[j]&&n==stu[i].day[j]){c=i;d=j;}}}if(c!=0&&d!=0)y=1;else{cout输入信息不存在,请重新输入学号·日期·节次endl;cinkmnb;}}while(y==0);cout请输入新修改的内容:\n;//下面输入该学生新信息cout请依次输入要修改的学生姓名和学号缺课日期(月-日)·课程节次(仅数字)·课程名称(输入字母a(代表语文)b(数学)c(英语)d(物理)e(化学)f(生物))·缺课类型(输入数字0(代表迟到)1(早退)2(请假)3(旷课))endl;cinstu[c].namestu[c].numstu[c].month[d]stu[c].day[d]stu[c].classnum[d]stu[c].classname[d]stu[c].type[d];save();}/********************************查询函数****************************/voidsearch(){inti,j;ifstreamifile(stu.txt,ios::binary);intN;cout请输入您要查找的学生学号:\n;cinN;if(ifile){for(i=0;i20;i++){ifile.read((char*)&stu[i],sizeof(structstudent));for(j=0;j5;j++){if(N==stu[i].num){if(stu[i].month[j]==0)break;cout学生的信息为:姓名学号月-日节次课程名称缺课类型;coutstu[i].namesetw(7)stu[i].numsetw(8)stu[i].month[j]stu[i].day[j]setw(8)stu[i].classnum[j]setw(12);lessonput1(stu[i].classname[j]);coutsetw(10);lessonput2(i,j);coutendl;}}}}else{cout文件无法打开\n;exit(0);}}/***********************排序函数1***********************************/voidpaixu1(){inti,j;studenttemp;for(intm=0;m20;m++)stu[m].f=0;ifstreamifile(stu.txt,ios::binary);if(ifile){for(i=0;i20;i++){ifile.read((char*)&stu[i],sizeof(structstudent));for(j=0;j5;j++){if(stu[i].type[j]==3)stu[i].f++;}}}else{cout文件不能打开endl;return;}for(intm=0;m20;m++){for(intn=0;n20-m;n++){if(stu[n].fstu[n+1].f){temp=stu[n];stu[n]=stu[n+1];stu[n+1]=temp;}}}cout排序结果:学生姓名旷课次数endl;for(intn=0;n20;n++){if(stu[n].num==0)break;coutstu[n].namesetw(15)stu[n].fendl;}}/************************排序函数2***************************************/voidpaixu2(){les[0].name='a';les[1].name='b';les[2].name='c';les[3].name='d';les[4].name='e';les[5].name='f';for(intm=0;m7;m++)les[m].g=0;inti,j;lessontemp;ifstreamifile(stu.txt,ios::binary);if(ifile){for(i=0;i20;i++){ifile.read((char*)&stu[i],sizeof(structstudent));for(j=0;j5;j++){for(intn=0

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功