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

📄 ok.txt

📁 费了很大劲做的老师布置的作业学生通讯录C++面向对象版,可以完成你的任务哦!
💻 TXT
字号:

#include <iostream> 
#include <string.h> 
#include <fstream> 
using namespace std; 

class student 
{ public :
char num[10]; 
char name[20]; 
int age;
char sex[10];
char address[50];
long tel; 
class student *next; 
}; 
class grade 
{ 
 public :
 class student * head;
  
 
void menu(); 
void init(); 
void insert(); 
int delete_f(); 
int select(); 
int xiugai(); 
int display(); 
void savefile(); 
void quit(); 
}; 

  
void grade::init() 
{ 
cout<<"************************************主菜单************************************\n"; 
cout<<"\t\t1输入学生信息\t\t\t2删除学生信息\n"; 
cout<<"\t\t3查询学生信息\t\t\t4修改学生信息\n"; 
cout<<"\t\t5显示学生信息\t\t\t6保存学生信息"; 
cout<<"\t\t\t\t\t\t\t0退出系统\n"; 
cout<<"******************************************************************************\n"; 
head=NULL; 
} 

void grade::menu() 
{ 
cout<<"************************************主菜单************************************\n"; 
cout<<"\t\t1输入学生信息\t\t\t2删除学生信息\n"; 
cout<<"\t\t3查询学生信息\t\t\t4修改学生信息\n"; 
cout<<"\t\t5显示学生信息\t\t\t6保存学生信息\n"; 
cout<<"\t\t\t\t\t\t\t0退出系统\n"; 
cout<<"******************************************************************************\n"; 
} 


void grade::insert() 
{ ofstream outfile("f1学生通讯录.txt",ios::out);
if(! outfile){cerr<<"open errpr!!"<<endl;exit(1);}
class student * p,*p1; 
p=(class student *)malloc(sizeof(class student)); 
cout<<"请输入学号,姓名,性别,年龄,电话,家庭住址:"<<endl; 
cin>>p->num>>p->name>>p->sex>>p->age>>p->tel>>p->address; 
outfile<<p->num<<"   "<<p->name<<"   "<<p->sex<<"   "<<p->age<<"   "<<p->tel<<"  "<<p->address;
if (head==NULL) {head=p;head->next=NULL;} 
else 
{ 
p1=head; 
while(p1->next!=NULL) 
p1=p1->next; 
p1->next=p; 
p->next=NULL; 
} 
} 

int grade::delete_f() 
{ 
char dnum[10];/* 要删除的学号*/ 
class student *p,*p1; 
cout<<"请你输入要删除的学号:"<<endl; 
cin>>dnum; 
if (head==NULL) {cout<<"不存在记录"<<endl;return 0;} 
if (head->next==NULL && strcmp(dnum,head->num)==0) 
 {head=NULL;cout<<"完成删除"<<endl;return 0;} 
 /* 只有一个记录且是要删除的数据*/ 
p=head; 
while (p->next!=NULL) 
{ 
p1=p->next; 
if (strcmp(dnum,head->num)==0)  
{head=head->next;cout<<"已经完成删除"<<endl;return 0;} 
/* 要删除的数据在文件头*/ 
if (strcmp(dnum,p1->num)==0)  
{p->next=p1->next;cout<<"已经完成删除"<<endl;return 0;} 
p=p->next; 
} 
cout<<"不存在记录"<<endl;return 0; 
} 

int grade::select() 
{ 
char snum[10];/* 要查询的学号*/ 
class student * p; 
cout<<"请你输入要查询的学号:"<<endl; 
cin>>snum; 
p=head; 
while(p!=NULL) 
{ 
if (strcmp(p->num,snum)==0) 
{ 
cout<<"学号: "<<p->num<<"\n姓名: "<<p->name<<"\n性别: "<<p->sex<<"\n年龄: "<<p->age<<"\n电话: "<<p->tel<<"\n家庭住址: "<<p->address<<endl; 
return 0; 
} 
p=p->next; 
} 
cout<<"不存在记录"<<endl;return 0; 
} 

int grade::xiugai() 
{ 
char mnum[10];/* 要修改的学号*/ 
class student *p; 
cout<<"请你输入要修改的学号:"<<endl; 
cin>>mnum; 
p=head; 
while(p!=NULL) 
{ 
if (strcmp(p->num,mnum)==0) 
{ 
cout<<"请输入新的姓名,性别,年龄,电话,家庭住址:"<<endl; 
cin>>p->name>>p->sex>>p->age>>p->tel>>p->address; 
cout<<"完成修改"<<endl; 
return 0; 
} 
p=p->next; 
} 
cout<<"不存在记录"<<endl;return 0; 
} 

int grade::display() 
{       ifstream infile("f1学生通讯录.txt",ios::in);
           if(! infile){cerr<<"open errpr!!"<<endl;exit(1);}

class student *p; 
p=head; 
if (head==NULL) {cout<<"不存在记录"<<endl;return 0;} 
while(p!=NULL) 
{ 
infile>>p->num>>p->name>>p->sex>>p->age>>p->tel>>p->address; 
cout<<"学号: "<<p->num<<endl<<"姓名: "<<p->name<<endl<<"性别: "<<p->sex<<endl<<"年龄: "<<p->age
<<endl<<"电话: "<<p->tel<<endl<<"家庭住址: "<<p->address<<endl; 
p=p->next;
cout<<endl; 
} 
return 0; 
} 



void grade::savefile() 
{ 
class student * p; 
ifstream infile("f1学生通讯录.txt",ios::in);//ifstream input;
if(! infile){cerr<<"open errpr!!"<<endl;exit(1);}
//input.open("学生通讯录.txt"); 
p=head; 
while(p!=head) 
{ 
infile>>p->num>>p->name>>p->sex>>p->age>>p->tel>>p->address; 
p=p->next; 
} 
cout<<"保存成功"<<endl; 
} 

int main() 
{ 
int choice; 
grade Grade; 
Grade.init(); 
while(1) 
{ 
cin>>choice; 
switch(choice) 
{ 
case 1: Grade.insert(); break; 
case 2: Grade.delete_f(); break; 
case 3: Grade.select(); break; 
case 4: Grade.xiugai(); break; 
case 5: Grade.display();break; 
case 6: Grade.savefile();break; 
case 0: return 0;  
} 
Grade.menu();  
} 
return 0; 
}

⌨️ 快捷键说明

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