⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 teacher.cpp

📁 學生信息管理系統,學生信息管理系統
💻 CPP
字号:
// teacher.cpp: implementation of the teacher class. 
// 
////////////////////////////////////////////////////////////////////// 

#include "teacher.h" 
#include "color.h" 
////////////////////////////////////////////////////////////////////// 
#include <iostream.h> 
#include<stdio.h> 
#include<stdlib.h> 
#include<string.h> 
#include<iomanip.h> 
////////////////////////////////////////////////////////////////////// 
extern int choice; 
extern color c; 
////////////////////////////////////////////////////////////////////// 
// Construction/Destruction 
////////////////////////////////////////////////////////////////////// 

teacher::teacher() 
{ 

} 

teacher::~teacher() 
{ 

} 
void teacher::input() 
{ 
c.setcolor(10); 
cout<<endl; 
cout<<"请输入教师的基本信息:"<<endl; 
cout<<endl; 
cout<<"编 号: "; 
cin.getline(ser_num,80); 
cout<<"姓 名: "; 
cin.getline(name,80); 
cout<<"职 称: "; 
cin.getline(post,80); 
cout<<"教研室 : "; 
cin.getline(staff_room,80); 
cout<<"主讲课程: "; 
cin.getline(maintch_course,80); 
cout<<"研究方向: "; 
cin.getline(research_direction,80); 
} 
void teacher::output() 
{ 
c.setcolor(10); 
cout<<setiosflags(ios::left)<<setw(7)<<ser_num<<setw(7)<<name<<\ 
setw(7)<<post<<setw(9)<<staff_room<<setw(11)<<maintch_course<<\ 
setw(11)<<research_direction<<endl; 
} 
////////////////////////////////////////////////////////////////////// 
// teacher_fun Class 
////////////////////////////////////////////////////////////////////// 

////////////////////////////////////////////////////////////////////// 
// Construction/Destruction 
////////////////////////////////////////////////////////////////////// 

teacher_fun::teacher_fun() 
{ 

} 

teacher_fun::~teacher_fun() 
{ 

} 

void teacher_fun::maintenance() 
{ 
c.setcolor(9); 
cout<<endl; 
cout<<"----------------------------------------------------"<<endl; 
cout<<" 欢迎进入教师基本信息的维护系统"<<endl; 
cout<<"===================================================="<<endl; 
void menu5(); 
int x; 
while(1) 
{ 
menu5(); 
cin>>x; 
switch(x) 
{ 
case 1: 
char str[2];//吃回车 
cin.getline(str,2);//吃回车 
file(); 
break; 
case 2: 
modify();//修改 
break; 
case 3: 
del();//删除 
break; 
case 4: 
browse();//浏览 
break; 
case 5: 
search();//查询 
break; 
case 6: 
break; 
case 0: 
exit(0); 
default: 
c.setcolor(15); 
cout<<"--------------------------------------------------"<<endl; 
cout<<" 输入有误!"<<endl; 
}if(x==6)break; 
} 
} 

//教师基本信息录入 
void teacher_fun::file() 
{ 
system("cls"); 
if(choice==1) 
{ 
c.setcolor(5); 
teacher tech; 
FILE *fp; 
if((fp=fopen("teacher.dat","ab+"))==NULL) 
{ 
cout<<"can't open file teacher.dat"; 
exit(0); 
} 
char ch;//控制循环 
do 
{ 
tech.input(); 
fwrite(&amt;tech,sizeof(teacher),1,fp); 
cout<<"继续输入请按 y,否则请按其他键: "; 
cin>>ch; 
char str[2];//吃回车 
cin.getline(str,2);//吃回车 
}while(ch=='y'); 
fclose(fp); 
if((fp=fopen("teacher.dat","rb"))==NULL) 
{ 
cout<<"can't open file teacher.dat"; 
exit(0); 
} 
cout<<"编号 姓名 职称 教研室 主讲课程 研究方向"<<endl; 
cout<<endl; 
while(fread(&amt;tech,sizeof(teacher),1,fp)==1) 
tech.output(); 
fclose(fp); 
} 
else 
{ 
c.setcolor(7); 
cout<<" 你不是管理员,无权录入信息。"<<endl; 
} 
} 


//教师基本信息修改 
void teacher_fun::modify() 
{ 
system("cls"); 
if(choice==1) 
{ 
c.setcolor(11); 
cout<<endl; 
cout<<"----------------------------------------------------"<<endl; 
cout<<" 教师基本的信息修改"<<endl; 
cout<<"****************************************************"<<endl; 
teacher tech; 
FILE *fp; 
if((fp=fopen("teacher.dat","rb+"))==NULL)//打开文件 
{ 
cout<<"can't open file teacher.dat"; 
exit(0); 
} 
char ser_num[8]; //要输入修改教师的编号 
int flag=0;//控制循环 
cout<<"请输入要修改的教师编号:"; 
cin>>ser_num; 
char str[2];//吃回车 
cin.getline(str,2);//吃回车 
cout<<"编号 姓名 职称 教研室 主讲课程 研究方向"<<endl; 
cout<<endl; 
while(fread(&amt;tech,sizeof(teacher),1,fp)==1)//显示要修改教师的信息 
if(strcmp(ser_num,tech.getser_num())==0) 
tech.output(); 
fclose(fp);//关闭文件 
int wide=sizeof(tech); 
if((fp=fopen("teacher.dat","rb+"))==NULL)//打开文件 
{ 
cout<<"can't open file teacher.dat"; 
exit(0); 
} 
while(fread(&amt;tech,sizeof(teacher),1,fp)==1) 
{ 
if(strcmp(ser_num,tech.getser_num())==0) 
{ 
fseek(fp,-wide,1); 
cout<<endl; 
tech.input(); 
fwrite(&amt;tech,sizeof(teacher),1,fp); 
flag=1; 
} 
if(flag==1)break; 
} 
if(flag==0) 
{ 
c.setcolor(12); 
cout<<" **不存在此教师的信息**"<<endl; 
} 
fclose(fp);//关闭文件 
} 
else 
{ 
c.setcolor(12); 
cout<<" 你不是管理员,无权进行修改。"<<endl; 
} 
} 

//教师基本信息删除 
void teacher_fun::del() 
{ 
system("cls"); 
if(choice==1) 
{ 
c.setcolor(9); 
cout<<"----------------------------------------------------"<<endl; 
cout<<" 教师基本信息删除"<<endl; 
cout<<"****************************************************"<<endl; 
int i; 
teacher tech[10]; 
char judge; 
long int filesize,recount; 
FILE *fp; 
if((fp=fopen("teacher.dat","rb"))==NULL)//打开文件 
{ 
cout<<"can't open file teacher.dat"; 
exit(0); 
} 
fseek(fp,0,2); 
filesize=ftell(fp); 
rewind(fp); 
recount=filesize/sizeof(teacher); 
for(i=0;i<recount;i++) 
fread(&amt;tech[i],sizeof(teacher),1,fp); 
fclose(fp); 
char ser_num[20]; 
cout<<"请输入你要删除的教师的编号:"; 
cin>>ser_num; 
for(i=0;i<recount;i++) 
{ 
if(strcmp(ser_num,tech[i].getser_num())==0) 
{ 
cout<<"编号 姓名 职称 教研室 主讲课程 研究方向"<<endl; 
cout<<endl; 
tech[i].output(); 
cout<<"确实要删除此教师的信息吗?(y/n)"; 
cin>>judge; 
} 
if(judge=='y'||judge=='Y')break; 
} 
if(judge=='y'||judge=='Y') 
{ 
fp=fopen("teacher.dat","wb"); 
for(i=0;i<recount;i++) 
if(strcmp(ser_num,tech[i].getser_num())!=0) 
fwrite(&amt;tech[i],sizeof(teacher),1,fp); 
fclose(fp); 
c.setcolor(13); 
cout<<" **删除成功**"<<endl; 
} 
cout<<"继续删除请按 Y,否则请按其他键: "; 
char a;//判断是否继续删除 
cin>>a; 
if(a=='y'||a=='Y') 
del(); 
} 
else 
{ 
c.setcolor(9); 
cout<<" 你不是管理员,无权删除信息。"<<endl; 
} 
} 

//教师基本信息浏览 
void teacher_fun::browse() 
{ 
system("cls"); 
FILE *fp; 
teacher tech; 
if((fp=fopen("teacher.dat","rb"))==NULL) 
{ 
cout<<"can't open file teacher.dat"; 
exit(0); 
} 
c.setcolor(9); 
cout<<"编号 姓名 职称 教研室 主讲课程 研究方向"<<endl; 
cout<<endl; 
while(fread(&amt;tech,sizeof(teacher),1,fp)==1) 
tech.output(); 
fclose(fp); 
} 


//教师基本信息查询 
void teacher_fun::search() 
{ 
system("cls"); 
teacher tech;//定义对象 
FILE *fp; 
char ser_num[8]; //要输入的教师编号 
int flag=0; //判断是否有此教师信息 
c.setcolor(9); 
cout<<"请输入要查询的教师编号: "; 
cin>>ser_num; 
if((fp=fopen("teacher.dat","rb"))==NULL) 
{ 
cout<<"can't open file teacher.dat"<<endl; 
exit(0); 
} 

while(fread(&amt;tech,sizeof(teacher),1,fp)==1) 
if(strcmp(ser_num,tech.getser_num())==0) 
{ 
cout<<"编号 姓名 职称 教研室 主讲课程 研究方向"<<endl; 
cout<<endl; 
tech.output(); 
flag=1; 
} 
if(flag==0) 
{ 
c.setcolor(8); 
cout<<" 不存在此教师的信息!"<<endl; 
} 
fclose(fp); 
} 


void menu5() 
{ 
c.setcolor(10); 
cout<<endl; 
cout<<"----------------------------------------------------"<<endl; 
cout<<"1. 教师基本信息增加 2. 教师基本信息修改"<<endl; 
cout<<"3. 教师基本信息删除 4. 教师基本信息浏览"<<endl; 
cout<<"5. 教师基本信息查询 6. 返回上级菜单"<<endl; 
cout<<"0. 退出系统"<<endl; 
cout<<"----------------------------------------------------"<<endl; 
cout<<"请做出选择(0-6): "; 
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -