64,636
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
#include<string>
#include<iomanip>
#include<cstddef>
#include<cstdlib>
using namespace std;
struct Teachergongzi
{
string department;
int teacherNO;
string name;
float base_salary;
float post_salary;
float bonus;
Teachergongzi *next;
};
typedef Teachergongzi* TeacherGZ;
//去掉换行符
void new_line()
{
char symbol;
do{
cin.get(symbol);
}while(symbol!='\n');
}
//创建链表
void Create(TeacherGZ &head)
{
TeacherGZ top;
top=new Teachergongzi;
top->next=NULL;
cout<<"\n\n请输入您的系别/部门:";
cin>>top->department;
cout<<"\n请输入您的学号:";
cin>>top->teacherNO;
cout<<"\n请输入您的姓名:";
cin>>top->name;
cout<<"\n请输入您QQ:";
cin>>top->base_salary;
cout<<"\n请输入您的E-mail:";
cin>>top->post_salary;
cout<<"\n请输入您的预存金额(每次消费后减去消费额):";
cin>>top->bonus;
top->next=head;
head=top;
}
//查找
TeacherGZ Lookup(TeacherGZ head)
{
TeacherGZ here=head;
int no,number;
string trs;
if(here==NULL)
{
cout<<"\t\t现无任何记录!\n";
}
else
{
cout<<"\n1.按姓名 2.按学号";
cout<<"\n\n请选择:";
cin>>no;
switch(no)
{ case 1:
cout<<"\n\n请输入要查找的姓名:";
cin>>trs;
while(here->name!=trs&&here->next!=NULL)
here=here->next;
if(here->name==trs)
{ cout<<"------------------------------------------------------------------------"<<endl;
cout<<"系别"<<" | "<<"学号"<<" | "<<"姓名"<<"| "<<"QQ号码"<<"|"<<"E-mail"
<<"| "<<"存有金额"<<endl;
cout<<head->department<<" | "<<head->teacherNO<<" | "<<head->name<<"| "
<<head->base_salary<<" | "<<head->post_salary<<" | "<<head->bonus<<endl;
cout<<"------------------------------------------------------------------------"<<endl<<endl;
}
else
cout<<"\n查无此教师记录,请重输!\n\n";
break;
case 2: cout<<"\n\n请输入要查找的教师号:";
cin>>number;
while(here->teacherNO!=number&&here->next!=NULL)
here=here->next;
if(here->teacherNO==number)
{ cout<<"------------------------------------------------------------------------"<<endl;
cout<<"系别"<<" | "<<"学号"<<" | "<<"姓名"<<"| "<<"QQ号码"<<"|"<<"E-mail"
<<"| "<<"存有金额"<<endl;
cout<<head->department<<" | "<<head->teacherNO<<" | "<<head->name<<"| "
<<head->base_salary<<" | "<<head->post_salary<<" | "<<head->bonus<<endl;
cout<<"------------------------------------------------------------------------"<<endl<<endl;
}
else
cout<<"\n查无此会员记录,请重输!\n\n";
break;
default:
cout<<"\n输入数据错误,请重输!\n\n";
}
}
return here;
}
//修改
void Modify(TeacherGZ head)
{
TeacherGZ temp=head;
int no,number;
string trs;
if(temp==NULL)
{
cout<<"\t\t现无任何记录!\n";
}
else
{
cout<<"\n\n1.按姓名 2.按会员号";
cout<<"\n\n请选择:";
cin>>no;
switch(no)
{ case 1: cout<<"\n\n请输入要修改的姓名:";
cin>>trs;
while(temp->name!=trs&&temp->next!=NULL)
temp=temp->next;
if(temp->name==trs)
{ cout<<"\n\n请输入要修改的数据:"<<endl;
cout<<"请输入您的系别/部门:";
cin>>temp->department;
cout<<"请输入您的学号:";
cin>>temp->teacherNO;
cout<<"请输入您的姓名:";
cin>>temp->name;
cout<<"请输入您的QQ:";
cin>>temp->base_salary;
cout<<"请输入您的E-mail:";
cin>>temp->post_salary;
cout<<"请输入您的预存金额(每次消费后减去消费额):";
cin>>temp->bonus;
}
else
cout<<"\n查无此会员记录,请重输!\n\n";
break;
case 2: cout<<"\n\n请输入要修改的学号:";
cin>>number;
while(temp->teacherNO!=number&&temp->next!=NULL)
temp=temp->next;
if(temp->teacherNO==number)
{ cout<<"\n\n请输入要修改的数据:"<<endl;
cout<<"请输入您的系别/部门:";
cin>>temp->department;
cout<<"请输入您的学号:";
cin>>temp->teacherNO;
cout<<"请输入您的姓名:";
cin>>temp->name;
cout<<"请输入您的QQ:";
cin>>temp->base_salary;
cout<<"请输入您的E-mail:";
cin>>temp->post_salary;
cout<<"请输入您的预存金额(每次消费后减去消费额):";
cin>>temp->bonus;
}
else
cout<<"\n查无此会员记录,请重输!\n\n";
break;
default:
cout<<"\n输入数据错误,请重输!\n\n";
}
}
}
//删除
int Delete(TeacherGZ head)
{
TeacherGZ before,discard;
int no,number;
string trs;
if(head==NULL)
{
cout<<"\t\t现无任何记录!\n";
return 0;
}
else
{
discard=head;
cout<<"\n\n1.按姓名 2.按学号";
cout<<"\n\n请选择:";
cin>>no;
switch(no)
{ case 1: cout<<"\n\n请输入要删除的姓名:";
cin>>trs;
while(discard->name!=trs&&discard->next!=NULL)
{ before=discard; //before指向当前节点
discard=discard->next; //discard指向下一个节点
}
if(discard->name==trs)
{ if(discard==head) //如找到的节点为第一个节点
head=discard->next; //则head使指向第二个节点
else //否则使before所指节点的指针指向下一个节点*/
before->next=discard->next;
delete discard;
cout<<"\t\t此学号已被删除!\n";
return (1);
}
else
cout<<"\n无此会员记录,请重输!\n\n";
break;
case 2: cout<<"\n\n请输入要删除的学号:";
cin>>number;
while(discard->teacherNO!=number&&discard->next!=NULL)
{ before=discard; //before指向当前节点
discard=discard->next; //discard指向下一个节点
}
if(discard->teacherNO==number)
{ if(discard==head) //如找到的节点为第一个节点
head=discard->next; //则head使指向第二个节点
else //否则使before所指节点的指针指向下一个节点*/
before->next=discard->next;
delete discard;
cout<<"\t\t此学号已被删除!\n";
return (1);
}
else
cout<<"\n无此会员记录,请重输!\n\n";
break;
default:
cout<<"\n输入数据错误,请重输!\n\n";
}
return 0;
}
}
//借书数据????没完成
int xiaofei(TeacherGZ head)
{ int shuliang;
cout<<"请输入会员姓名:";
cout<<"请输入借书日期:";
cout<<"请输入书名:";
cout<<"1.输入完毕.2还有一本.";
cin>>shuliang;
if(shuliang==2)
cout<<"请输第2本书名:";
return 0;
}
//消费查询
//消费积分排序
//写入读出文件
//输出数据
int Output(TeacherGZ head)
{
if(head==NULL)
{
cout<<"\t\t现无任何记录!\n";
return 0;
}
else
while(head!=NULL)
{
cout<<"------------------------------------------------------------------------"<<endl;
cout<<"系别"<<" | "<<"学号"<<" | "<<"姓名"<<"| "<<"QQ号码"<<"|"<<"E-mail"
<<"| "<<"存有金额"<<endl;
cout<<head->department<<" | "<<head->teacherNO<<" | "<<head->name<<"| "
<<head->base_salary<<" | "<<head->post_salary<<" | "<<head->bonus<<endl;
cout<<"------------------------------------------------------------------------"<<endl;
head=head->next;
cout<<endl;
return 0;
}
}
//销毁链表
/*void Destroy(TeachersalaryPtr head)
{
TeachersalaryPtr pre,sat;
pre=head;
while(pre!=0)
{
sat=pre; //指针sat记录待销毁节点
pre=pre->next;
delete sat;
}
}*/
int main()
{
TeacherGZ head=NULL;
int sel=1;
cout<<"\n\n ---------------------------------------------\n";
cout<<"\t\t* 欢迎使用《新新书屋》图书出租管理系统 *\n"
<<"\t\t* 设计者 (自己加上) *\n"
<<"\t\t* 班级 (XXX自己加上) *\n"
<<"\t\t* 学号:(自己...) *\n";
cout<<" ---------------------------------------------\n\n";
while(sel!=0)
{
cout<<"\t\t*********************************************\n"
<<"\t\t* 1.新会员注册 2.查找会员信息 *\n"
<<"\t\t* 3.修改会员信息 4.删除会员信息 *\n"
<<"\t\t* 5.会员积分排行 6.查看会员消费 *\n"
<<"\t\t* 7.会员借书管理 0.退出操作 *\n"
<<"\t\t*********************************************\n"
<<"\n\n请选择您所需要的功能:";
cin>>sel;
switch(sel){
case 1:
Create(head);
break;
case 2:
Lookup(head);
break;
case 3:
Modify(head);
break;
case 4:
Delete(head);
break;
case 6:
Output(head);
break;
case 0:
sel=0;
cout<<"\n谢谢您的使用!\n";
break;
}
}
return 0;
}