📄 modify.cpp
字号:
#include "main.h"
extern bool saved;
extern char currentfile[128];
//================= ChangeCourseCoefficient ====================
FuncRunResult changecoursecoefficient(int x)
{
cout<<"设置 "<<s.GetCourseName(x,true)<<" 课程的学分(0 为放弃):"<<flush;
int coe=0;
if (cin>>coe && coe>0)
{
cin.ignore();
s.SetCourseCoefficient(x,coe,true);
cout<<"更改成功。"<<flush;
saved=false;
sleep(333);
return FRR_SUCCEED;
}
else
{
return FRR_SKIP;
}
}
//================= ChangeCourseName ====================
FuncRunResult changecoursename(int x)
{
cout<<"将课程 "<<s.GetCourseName(x,true)<<" 的名称改为(直接回车为放弃):"<<flush;
char str[512]={0};
cin.getline(str,512);
if (str[0]==0) return FRR_SKIP;
s.SetCourseName(x,str,true);
cout<<"更改成功。"<<flush;
saved=false;
sleep(333);
return FRR_SUCCEED;
}
//================= ChangeCoursePos ====================
int changecoursepos(int x)
{
int i;
for (i=0; i<s.GetCourseCount(); i++) cout<<setw(s.GetColumnWidth(i,true)-(i==0?4:2))<<'('<<i+1<<')';
cout<<'\n';
for (i=0; i<s.GetCourseCount(); i++) cout<<setw(s.GetColumnWidth(i,true))<<s.GetCourseName(i,true);
cout<<"\n\n将 "<<s.GetCourseName(x,true)<<" 的位置放到第几列?(1-"<<s.GetCourseCount()<<",0 为放弃) "<<flush;
int pos=0;
if (cin>>pos && pos>0 && pos<=s.GetCourseCount())
{
cin.ignore();
pos--;
int* sortarray=s.CourseSort(), tmp=sortarray[x], i;
if (pos>x) for (i=x; i<=pos-1; i++) sortarray[i]=sortarray[i+1];
if (pos<x) for (i=x-1; i>=pos; i--) sortarray[i+1]=sortarray[i];
sortarray[pos]=tmp;
cout<<"更改成功。"<<flush;
saved=false;
sleep(333);
return pos;
}
else
{
cin.ignore();
return -1;
}
}
//================= ChangeNumberName ====================
FuncRunResult changenumbername(int x, int y)
{
cout<<"将"<<(x==-2?"学号":"姓名")<<"改为(直接回车为放弃):"<<flush;
char str[512]={0};
cin.getline(str,512);
if (str[0]==0) return FRR_SKIP;
if (x==-2) s.SetStuNum(y,str,true); else s.SetStuName(y,str,true);
saved=false;
cout<<"更改成功。"<<flush;
sleep(333);
return FRR_SUCCEED;
}
//================= ContinuousChange ====================
void continuouschange(int startx, int starty, int& endx, int& endy)
{
int x=startx, y=starty;
bool exit=false;
char ss[32]={0}, *sss=NULL;
double ns=0.0;
showheader();
cout<<"连续输入学生信息:\n\n要跳过某项,请直接回车;\n要返回主界面,请在输入成绩是输入任一字母并回车。\n\n有效成绩的输入范围是 0.00 到 999.99,\n另外 -1 表示缺考,-2 表示未选该课(在计算平均分和平均积点时会特殊考虑),\n超出这个范围的输入将被忽略。\n\n";
for (; !exit; x++)
{
exit=false;
if (s.GetCourseCount()==x) { x=-2; y++; } else;
if (s.GetStudentCount()==y) { y=s.GetStudentCount()-1; break; } else;
cout<< s.GetStuName(y,true) << " (" << s.GetStuNum(y,true) << ") 的 ";
if (x==-2)
{
cout<<"学号 要改成什么?";
cin.getline(ss,32);
if (ss[0]!=0) { s.SetStuNum(y,ss,true); saved=false; }
}
else if (x==-1)
{
cout<<"姓名 要改成什么?";
cin.getline(ss,32);
if (ss[0]!=0) { s.SetStuName(y,ss,true); saved=false; }
}
else
{
cout<< s.GetCourseName(x,true) << " 成绩是 " << s.GetScore(y,x,true,true) << " ,要改它为多少?";
cin.getline(ss,64);
if (ss[0]!=0)
{
ns=strtod(ss,&sss);
if (ss==sss) break;
s.SetScore(y,x,ns,true,true);
saved=false;
}
}
}
endx=0; endy=starty;
}
//================= DelCourse ====================
FuncRunResult delcourse(int x)
{
cout<<"真的要删除 "<<s.GetCourseName(x,true)<<" 课程吗?Y/N "<<flush;
int ch=scankey(0,0,'Y','y','N','n',KEY_ESC,0);
if (ch=='y')
{
cout<<'y'<<endl;
s.DelCourse(x,true);
cout<<"删除成功。"<<flush;
saved=false;
sleep(333);
return FRR_SUCCEED;
}
else
{
return FRR_SKIP;
}
}
//================= DelStudent ====================
FuncRunResult delstudent(int y)
{
cout<<"真的要删除这位学生吗?Y/N "<<flush;
int ch=scankey(0,0,'Y','y','N','n',KEY_ESC,0);
if (ch=='y')
{
cout<<'y'<<endl;
s.DelStudent(y,true);
cout<<"删除成功。"<<flush;
saved=false;
sleep(333);
return FRR_SUCCEED;
}
else
{
return FRR_SKIP;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -