c++学生信息的线性表的基本操作

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
int i; cout<<setw(12)<<"学号"<<setw(6)<<"姓名"<<setw(10)<<"专业班级"<<setw(8)<<"高数 "<<setw(8)<<"英语"
<<setw(8)<<"C++"<<setw(8)<<"总成绩"<<endl; if(j<0) {
for(i=0;i<L->len;i++)
cout<<setw(12)<<L->xuehao[i]<<setw(6)<<L->name[i]<<setw(10)<<L->banji[i]<<setw(8) <<L->math[i]<<setw(8)<<L->english[i]
<<setw(8)<<L->cplus[i]<<setw(8)<<L->total[i]<<endl; cout<<"共有"<<ListLength(L)<<"个学生的信息"<<endl; } else
} case '5':
{ if(ListEmpty(L)) { cout<<"顺序表中无信息。"<<endl; break; } else { Display(L,-1); break; }
} case '6':
{ save(L); exit(0);
} default :
{ cout<<"您的输入有误,请重新输入:"; cin>>i;
Display(L,i),j++;
if(!j) cout<<"无该学生信息。"<<endl;
}
int main()
{
SqList *L;
InitList(L);
char i,j;
for(;i!=6;)
{
cout<<"--------------------学生信息管理---------------------"<<endl
cin>>i;
switch(i)
{
case '1' :
{
if(ListFull(L))
{ cout<<"顺序表已满,无法继续输入。"<<endl;
break;
}
else
{
Input(L,-1);
break;
}
}
case '2':
{
if(ListFull(L))
{ cout<<"顺序表已满,无法继续输入。"<<endl;
cout<<setw(12)<<L->xuehao[j]<<setw(6)<<L->name[j]<<setw(10)<<L->banji[j]<<setw(8) <<L->math[j]<<setw(8)<<L->english[j]
<<setw(8)<<L->cplus[j]<<setw(8)<<L->total[j]<<endl; } void Input(SqList *L,int j) {
{
string num;
int j=0,n=0;
cout<<"请输入要删除的学生的学号:";
cin>>num;
for(int i=0;i<L->len;i++)
if(L->xuehao[i]==num)
ቤተ መጻሕፍቲ ባይዱ
{
for(j=i;j<L->len;j++)
{
strcpy(L->xuehao[j],L->xuehao[j+1]);
strcpy(L->name[j],L->name[j+1]);
strcpy(L->banji[j],L->banji[j+1]);
L->math[j]=L->math[j+1];
L->english[j]=L->english[j+1];
L->cplus[j]=L->cplus[j+1];
L->total[j]=L->total[j+1];
} else {
cin>>L->xuehao[j]>>L->name[j]>>L->banji[j]>>L->math[j]>>L->english[j]>>L->cplus[j]; L->total[j]=L->math[j]+L->english[j]+L->cplus[j]; L->len++;
} cout<<"信息输入完成!"<<endl; } void Insert(SqList * &L) { int i,j; cout<<"共有"<<ListLength(L)<<"名学生"<<endl
<<"你要添加到哪个位置:"; for(;;) {
cin>>i; if(i>L->len) cout<<"您的输入有误,请重新输入:"; else break; } for(j=L->len;j>i-1;j--) { strcpy(L->xuehao[j],L->xuehao[j-1]); strcpy(L->name[j],L->name[j-1]); strcpy(L->banji[j],L->banji[j-1]); L->math[j]=L->math[j-1]; L->english[j]=L->english[j-1]; L->cplus[j]=L->cplus[j-1]; L->total[j]=L->total[j-1]; } Input(L,i-1); } void Delete(SqList * &L)
f1<<L->xuehao[i]<<' '<<L->name[i]<<' '<<L->banji[i]<<' '<<L->english[i]<<' '<<L->cplus[i]<<' '<<L->total[i]<<endl;
f1.close(); } void InitList(SqList *&L) {
break;
}
else
{
Insert(L);
break;
}
}
case '3':
{
if(ListEmpty(L))
{
cout<<"顺序表已空,无法继续删除。"<<endl;
break;
}
else
{
Delete(L);
break;
}
|"<<endl
} case '4':
{ if(ListEmpty(L)) { cout<<"顺序表中无信息。"<<endl; break; } else { Find(L); break; }
<<"|
1.输入学生信息
2.增加学生信息
<<"|
3.删除学生信息
4.查看学生信息
|"<<endl |"<<endl
<<"|
5.查看所有学生信息
6.储存信息并退出
<<"-----------------------------------------------------"<<endl; cout<<"请输入编号:";
} } cout<<"是否继续?y/n"; for(;;) {
cin>>j; if(j=='y')
break;
else if(j=='n') { save(L); exit(0); } else cout<<"您的输入有误,请重新输入:";
} } return 0; }
int i=0; L=(SqList *)malloc(sizeof(SqList)); fstream f1("Sq.txt",ios::in); if(!f1)
L->len=0; else {
f1>>L->len; for(i=0;i<L->len;i++)
'<<L->math[i]<<'
f1>>L->xuehao[i]>>L->name[i]>>L->banji[i]>>L->math[i]>>L->english[i]>>L->cplus[i]>> L->total[i];
char c; cout<<" 请 按 要 求 输 入 相 关 信 息 "<<endl<<setw(12)<<" 学 号 "<<setw(6)<<" 姓 名 "<<setw(10)<<"专业班级"<<setw(8)<<"高数"<<setw(8)<<"英语"
<<setw(8)<<"C++"<<endl; if(j<0)
for(;c!='n';) {
cin>>L->xuehao[L->len]>>L->name[L->len]>>L->banji[L->len]>>L->math[L->len]>>L->e
nglish[L->len]>>L->cplus[L->len]; L->total[L->len]=L->math[L->len]+L->english[L->len]+L->cplus[L->len]; L->len++; cout<<"输入成功,是否继续输入? y/n"; cin>>c; if (c!='y'&&c!='n') { cout<<"您输入的信息有误!请重新输入:"; cin>>c; }
#include <iostream> #include <fstream> #include <iomanip> #include <string> using namespace std; #define MaxSize 150 typedef struct {
int len; char xuehao[MaxSize][30]; char name[MaxSize][30]; char banji[MaxSize][30]; float math[MaxSize]; float english[MaxSize]; float cplus[MaxSize]; float total[MaxSize]; }SqList; void save(SqList *L) { fstream f1("Sq.txt",ios::out); f1<<L->len<<endl; int i=0; for(i=0;i<L->len;i++)
}
L->len--;
n++;
}
if(!n) cout<<"没有该学号的学生!"<<endl;
}
void Find(SqList *L)
{
string num;
int j=0;
cout<<"请输入要查询的学生的学号"<<endl;
cin>>num;
for(int i=0;i<L->len;i++)
if(L->xuehao[i]==num)
} f1.close(); }
int ListEmpty(SqList *L) {
return (L->len==0); } int ListFull(SqList *L) {
return (L->len==MaxSize); } int ListLength(SqList *L) {
return (L->len); } void Display(SqList *L,int j) {
相关文档
最新文档