17、n输入/增添第”〈CRecord[renshu+i]。Name;
}
renshu+=m;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
18、///
//按学号排序
void Record::Order()
{ int s,z;
long t;
char r[20];
s=renshu;
for(int i=0;i〈s;i++)
{for(int j=i+1;j〈s;j++)
if(CRecord[i].ID>=CRecord[j].ID)
{ strcpy(r,CRecord[i].Name);
strcpy(CRecord[i]。Name,CRecord[j].Name);
strcpy(CRecord[j]。Name,r);
t=CR
19、ecord[i]。ID;CRecord[i]。ID=CRecord[j].ID;CRecord[j]。ID=t;
z=CRecord[i]。chidao;CRecord[i].chidao=CRecord[j].chidao; CRecord[j]。chidao=z;
z=CRecord[i]。zaotui; CRecord[i]。zaotui=CRecord[j].zaotui; CRecord[j]。zaotui=z;
z=CRecord[i]。qingjia; CRecord[i]。qingjia=CRecord[j]。qingjia; CRecord[j]。qingjia=
20、z;
z=CRecord[i]。kuangke;CRecord[i]。kuangke=CRecord[j]。kuangke; CRecord[j]。kuangke=z;
}
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//设置学生考勤信息
void Record::PutRecord()
{ int i;
21、 double long id;
if(renshu<=0)
cout<〈”\n\n\n\n\t目前没有任何学生信息请先输入学生个人信息再进行此操作!\n\n”;
else
{ cout〈〈”\n请输入所查学生学号: ";
cin〉〉id;
for(i=0;i〈renshu;i++)
{
if(CRecord[i]。ID==id)
break;
}
if(i>=renshu)
cout〈<"\n没有你所查找的记录!\n”;
else
{
cout<〈”\n该学生的原始信息记录是
22、\n";
cout<〈"\n\t学号姓名迟到早退请假旷课"〈〈endl;
ShowDate(i);
cout〈〈"\n信息记录:\n”;
int m=0;
while(!m)
{ int n;
cout〈〈"\n\t请输入选择缺课类型: ( 1迟到 2早退 3请假 4旷课 ) : ”;
cin〉〉n;
switch(n)
{
case 1:
cout<〈”\n请输入迟到次数: ”;
cin>〉
23、n;
CRecord[i].chidao+=n;
break;
case 2:
cout〈〈”\n请输入早退次数: ”;
cin〉>n;
CRecord[i].zaotui+=n;
break;
case 3:
cout<〈"\n请输入请假次数: ";
cin〉>n;
CRecord[i]。qingjia+=n;
break;
case 4:
cout<〈"\n请输入旷课次数: ”;
cin>〉n;
24、
CRecord[i].kuangke+=n;
break;
default:
break;
}
cout〈〈”\n\t继续输入该生考情请输0否则输任意值: ”;
cin〉〉m;
}
cout〈<”\n该学生现在的信息记录是: \n";
cout〈<"\n\t学号姓名迟到早退请假旷课”〈〈endl;
ShowDate(i);
}
}
}
///////////////////////////////////////////
25、////////////////////////////////////////////////////////////////////////////////////////////////
//修改学生信息
void Record::ModifyDate()
{ int i,j=1;
long id;
if(renshu<=0)
cout<〈"\n\n\n\n\t目前没有任何学生信息请先输入学生个人信息再进行此操作!\n\n”;
else
while(j==1)
{ system(”cls");
cout〈〈”\n请输入要
26、修改学生的学号: ";
cin〉>id;
for(i=0;i〈renshu;i++)
{
if(CRecord[i]。ID==id)
break;
}
if(i〉=renshu)
{ cout<〈”\n\t\t没有你所查找的记录!\n";
cout〈〈”\n重新查询修改请输0否则输任意值:”;
cin〉〉i;
if(i==0)
j=1;
else
{ system(”cls”);
cout〈〈”\n\n\n\n \t\t\t 信息修改失败!\n\n";
27、break;
}
}
else
{
cout〈<”\n该学生的原始信息是:\n”;
cout〈〈”\n\t学号姓名迟到早退请假旷课"〈〈endl;
ShowDate(i);
cout〈〈”\n信息修改: \n”;
char name[]={0};
int n=0;
while(n==0)
{ cout<〈”\n\t选择修改内容: ( 1学号 2姓名 3迟到 4早退 5请假 6旷课) : ”;
cin〉〉n;
switc
28、h(n)
{ case 1:
cout<<”\n新的学号:”;
cin〉〉id;
CRecord[i]。ID=id;
break;
case 2:
cout<<"\n新的姓名:";
cin〉〉name;
strcpy(CRecord[i]。Name,name);
break;
case 3:
cout〈〈”\n输入迟到次数:”;
cin〉〉n;
CRecord[i].chidao=n;
29、 break;
case 4:
cout<〈"\n输入早退次数:";
cin>>n;
CRecord[i].zaotui=n;
break;
case 5:
cout〈〈"\n输入请假次数:”;
cin〉>n;
CRecord[i]。qingjia=n;
break;
case 6:
cout<〈”\n输入旷课次数:”;
cin〉>n;
CRecord[i].kuangke=n;
break;
default:
break;
}
30、 cout〈〈”\n\t该学生修改后的信息是:\n";
cout〈〈”\n\t学号姓名迟到早退请假旷课”〈〈endl;
ShowDate(i);
cout〈<”\n\n 继续修改该生请输入0 修改其他学生请输入1 否则请输入其他任意值: ”;
cin〉〉j;
if(j==0)
n=0;
else if(j==1)
break;
else
{ j=2;
system(”cls");
cout〈<”\n\n\n\n \t\t\t 该学信息
31、修改成功!\n\n";
break;
}
}
}
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//删除学生信息
void Record::DelRecord()
{ int i=0,j,z;
long t,id;
char r[]={0},A,a=’Y’,
32、b=’N';
if(renshu〈=0)
cout〈〈"\n\n\n\n\t目前没有任何学生信息请先输入学生个人信息再进行此操作!\n\n";
else
{ cout〈<”\n删除所有学生信息情输1,删除个别学生信息请输2: ”;
cin〉>j;
if(j==1)
{ cout<〈"\n是否删除所有同学信息:确认(Y)/取消(N): ”;
cin>〉A;
if(A==a||A==a+32)
{ renshu=0;
cout〈<”\n\n\n\t\t\t所有信息删除成功!\n\n";
}
33、else if(A==b||A==b+32)
cout〈<”\n\n\t\t\t你取消了对所有信息的删除!\n\n";
else
cout<〈”\n\n\t\t\t输入错误!删除失败!\n\n”;
}
else if(j==2)
while(!i)
{ system("cls");
cout〈〈"\n请输入要删除学生的学号: ”;
cin〉〉id;
for(i=0;i〈renshu;i++)
{
if(CRecord[i].ID==id)
break;
}
if
34、i〉=renshu)
cout〈〈”\n没有你所查找的记录!\n”;
else
{ cout〈〈”\n该学生的原始信息是:\n”;
cout<<”\n\t学号姓名迟到早退请假旷课”<〈endl;
ShowDate(i);
cout<<"\n是否删除该学生的信息: ”
〈〈"确认(Y)/取消(N): ";
cin〉〉A;
if(A==a||A==a+32)
{ j=renshu—1;
strcpy(r,CRecord[i].Name);
strcpy(
35、CRecord[i]。Name,CRecord[j]。Name);
strcpy(CRecord[renshu—1]。Name,r);
t=CRecord[i]。ID;CRecord[i]。ID=CRecord[j].ID;CRecord[j]。ID=t;
z=CRecord[i]。chidao;CRecord[i].chidao=CRecord[j]。chidao;CRecord[j].chidao=z;
36、 z=CRecord[i]。zaotui;CRecord[i]。zaotui=CRecord[j]。zaotui;CRecord[j]。zaotui=z; z=CRecord[i]。qingjia ; CRecord[i].qingjia=CRecord[j].qingjia;CRecord[j]。qingjia=z;
z=CRecord[i]。kuangke;CRecord[i]。kuangke=CRecord[j]。
37、kuangke;
CRecord[j]。kuangke=z; renshu——;
cout〈<”\n\n\t\t该学生删除信息删除成功!\n\n";
}
else if(A==b||A==b+32)
cout〈〈"\n\n\t\t你取消了对该生信息的删除!\n\n";
else
cout<<”\n\n\t\t输入错误!删除失败!\n\n”;
}
cout〈〈"\n继续删除学生信息请输0 否则请输任意值: ”;
cin>>i;
if(i)
cout<〈"\n\n\n\n\t\
38、t\t你取消了对学生信息的继续删除!\n";
}
else
cout〈<”\n\n\t\t\t输入错误!操作失败!\n\n”;
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//按学号输出某个学生的信息
void Record::FindRecord()
{ int i;
long id;
int a
39、0;
if(renshu<=0)
cout〈<”\n\n\n\n\t目前没有任何学生信息请先输入学生个人信息再进行此操作!\n\n";
else
{ cout〈<”\n请输入你要查找的学生学号: ";
cin〉〉id;
for(i=0;i40、〈〈”\n没有你所查找的记录!";
cout〈〈endl;
return;
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//输出全班学生的信息
void Record::ShowRecord()
{ int i;
Order();
if(renshu〈=0)
cout<<”\n\n\n\n\t目前没有任何学生信息请先输入
41、学生个人信息再进行此操作!\n\n";
else
{ cout〈<”\n输出全班一学期的考情情况”〈42、/////////////////
//从文本中读取信息
void Record::ReadDate()
{ int i=0;
char lingshi[]={0};
fstream file(”\\Record。txt”);
if(!file)
{ ofstream file1(”\\Record。txt");
file1.close();
}
else
file。close();
ifstream file2(”\\Record。txt”);
file2>
43、>lingshi>>lingshi〉>lingshi〉>lingshi〉〉lingshi〉〉lingshi;
while(!file2.eof())
{ file2>〉CRecord[i].ID;
file2>〉CRecord[i]。Name;
file2>〉CRecord[i]。chidao;
file2>〉CRecord[i].zaotui;
file2〉〉CRecord[i].qingjia;
file2>〉CRecord[i]。kuangke;
i++;
}
if(i==0)
renshu=i;
else
{ i——
44、
renshu=i;
}
file2。close();
return;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//向文本中保存信息
void Record::SaveData()
{
int i=0;
Order();
ofstream file("\\Record。txt”);
f
45、ile<〈"学号\t”<〈”姓名\t"〈<"迟到\t”〈〈”早退\t"<<"请假\t"〈〈”旷课"〈46、e。close();
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//测试主函数
main()
{ Record Stu,Enter;
int a=1;
Enter。Entersystem();
Stu。ReadDate();
while(a)
{ system(”cls”);
// c
47、out<〈”\n\t****************08级物理系光信班****************\n";
cout<〈”\n\t****************上课考勤管理系统****************\n\n”;
cout〈<"\n\t*************** 1: 输入/增添学生名 **************\n\n”;
cout〈<”\t*************** 2: 修改学生信息 ***************\n\n”;
cout〈〈"\t*************** 3: 单人考勤信息 *******
48、********\n\n";
cout<〈”\t*************** 4: 全班考情信息 ***************\n\n”;
cout〈<”\t*************** 5: 输入学生考情 ***************\n\n";
cout〈<”\t*************** 6: 删除学生信息 ***************\n\n”;
cout〈〈"\t*************** 7: 修改登录密码 ***************\n\n”;
cout〈〈"\t*************** 8: 退出
49、 ***************\n\n”;
cout〈<"请选择 : ”;
int choose=0;
cin〉>choose;
system(”cls”);
switch(choose)
{case 1:
Stu.SetDate();
break;
case 2:
Stu。ModifyDate();
break;
case 3:
Stu.FindRecord();
50、break;
case 4:
Stu。ShowRecord();
break;
case 5:
Stu。PutRecord();
break;
case 6:
Stu。DelRecord();
break;
case 7:
Stu。SetPwd();
break;
case 8:
Stu.SaveData();
exit(0);
defaul