📄 main.cpp
字号:
char buf[30];
if (!GetList(handle)->tag) return;
sprintf(buf,"总共有%d条记录.",GetList(handle)->count);
strcpy(GetLabel(GetList(handle)->tag)->Caption,buf);
}
void OnEditHouseOK(){
int i;
char *name=GetEdit(EditHouse.Edit1)->Text;
if (!name[0]){
MessageBox("请输入宿舍楼号!","提示");
return;
}
if (!CheckValue(GetEdit(EditHouse.Edit6)->Text)) {
MessageBox("金额输入不合法","提示!");
return;
}
if (!CheckValue(GetEdit(EditHouse.Edit5)->Text)) {
MessageBox("床位数输入不合法","提示!");
return;
}
if (!CheckValue(GetEdit(EditHouse.Edit4)->Text)) {
MessageBox("房间数输入不合法","提示!");
return;
}
pHouse p;
pHouse pre;
if (GetWindow(EditHouse.handle)->tag){
p=pHouse(GetWindow(EditHouse.handle)->tag);
pre=p->pre;
} else {
pre=head;
p=head->next;
while (p) {
if (strcmp(p->name,name)==0) {
if (DlgBox("该宿舍楼已存在,是否覆盖?","询问")) break;
return;
}
pre=p;
p=p->next;
}
}
bool isnew=false;
if (!p){
p=(pHouse)malloc(sizeof *p);
memset(p,0,sizeof *p);
p->pre=pre;
pre->next=p;
isnew=true;
}
strcpy(p->name,name);
strcpy(p->manager,GetEdit(EditHouse.Edit2)->Text);
strcpy(p->phone,GetEdit(EditHouse.Edit3)->Text);
strcpy(p->rooms,GetEdit(EditHouse.Edit4)->Text);
strcpy(p->beds,GetEdit(EditHouse.Edit5)->Text);
strcpy(p->cost,GetEdit(EditHouse.Edit6)->Text);
if (isnew){
Pchar str[6];
str[0]=p->name;
str[1]=p->manager;
str[2]=p->phone;
str[3]=p->cost;
TotOfHouse++;
ListAdd(HouseList,str,(int)p);
}
UpdateList(HouseList);
CloseWindow(EditHouse.handle);
Changed=true;
}
void AddHouseClick(){
GetEdit(EditHouse.Edit1)->Text[0]=0;
GetEdit(EditHouse.Edit2)->Text[0]=0;
GetEdit(EditHouse.Edit3)->Text[0]=0;
GetEdit(EditHouse.Edit4)->Text[0]=0;
GetEdit(EditHouse.Edit5)->Text[0]=0;
GetEdit(EditHouse.Edit6)->Text[0]=0;
GetWindow(EditHouse.handle)->tag=0;
ShowWindow(EditHouse.handle);
}
void EditHouseClick(){
if (!GetList(HouseList)->SelectTag) return;
GetWindow(EditHouse.handle)->tag=GetList(HouseList)->SelectTag;
pHouse p=(pHouse)GetList(HouseList)->SelectTag;
strcpy(GetEdit(EditHouse.Edit1)->Text,p->name);
strcpy(GetEdit(EditHouse.Edit2)->Text,p->manager);
strcpy(GetEdit(EditHouse.Edit3)->Text,p->phone);
strcpy(GetEdit(EditHouse.Edit4)->Text,p->rooms);
strcpy(GetEdit(EditHouse.Edit5)->Text,p->beds);
strcpy(GetEdit(EditHouse.Edit6)->Text,p->cost);
ShowWindow(EditHouse.handle);
}
void DelHouseClick(){
pList List=GetList(HouseList);
if (!List->SelectTag) return;
if (!DlgBox("该操作将删除此宿舍所有同学?","询问")) return;
pHouse House=(pHouse)(List->SelectTag);
int i;
for (i=List->Selected;i<List->count;i++){
memcpy(List->Text[i],List->Text[i+1],sizeof List->Text[i+1]);
List->tags[i]=List->tags[i+1];
}
List->count--;
List->SelectTag=List->Selected=0;
DelHouse(House);
TotOfHouse--;
UpdateList(HouseList);
DrawWindow(HouseWindow);
}
void FindHouseButtonClick(){
char *Text=GetEdit(FindHouseEdit)->Text;
if (!Text[0]) return;
pList List=GetList(HouseList);
List->count=0;
List->Show=0;
List->Selected=0;
List->SelectTag=0;
pHouse p;
Pchar str[6];
for (p=head->next;p;p=p->next){
if (strstr(p->name,Text) ||
strstr(p->manager,Text) ||
strstr(p->phone,Text) ||
strstr(p->cost,Text)){
str[0]=p->name;
str[1]=p->manager;
str[2]=p->phone;
str[3]=p->cost;
ListAdd(HouseList,str,(int)p);
}
}
UpdateList(HouseList);
DrawWindow(HouseWindow);
}
void ShowAllHouse(){
pList List=GetList(HouseList);
List->count=0;
List->Show=0;
List->Selected=0;
List->SelectTag=0;
pHouse p;
Pchar str[6];
for (p=head->next;p;p=p->next){
str[0]=p->name;
str[1]=p->manager;
str[2]=p->phone;
str[3]=p->cost;
ListAdd(HouseList,str,(int)p);
}
UpdateList(HouseList);
}
void ShowAllHouseClick(){
ShowAllHouse();
DrawWindow(HouseWindow);
}
void OnEditStuOK(){
int i,j;
char *name=GetEdit(EditStu.Edit1)->Text;
char *num=GetEdit(EditStu.Edit2)->Text;
char *house=GetEdit(EditStu.Edit9)->Text;
if (!name[0]){
MessageBox("请输入姓名!","提示");
return;
}
if (!num[0]){
MessageBox("请输入学号!","提示");
return;
}
if (!house[0]){
MessageBox("请输入宿舍楼号!","提示");
return;
}
if (!CheckValue(GetEdit(EditStu.Edit2)->Text)){
MessageBox("学号必须为数字!","提示");
return;
}
if (!CheckDate(GetEdit(EditStu.Edit7)->Text)){
MessageBox("入学日期输入非法!","提示");
return;
}
pStu p;
pStu pre;
pHouse v;
if (GetWindow(EditStu.handle)->tag){
p=pStu(GetWindow(EditStu.handle)->tag);
pre=p->pre;
} else {
v=head->next;
while (v) {
if (strcmp(v->name,house)==0)
break;
v=v->next;
}
if (!v) {
if (DlgBox("无此宿舍楼,是否添加?","询问")){
strcpy(GetEdit(EditHouse.Edit1)->Text,house);
GetEdit(EditHouse.Edit2)->Text[0]=0;
GetEdit(EditHouse.Edit3)->Text[0]=0;
GetEdit(EditHouse.Edit4)->Text[0]=0;
GetEdit(EditHouse.Edit5)->Text[0]=0;
GetEdit(EditHouse.Edit6)->Text[0]=0;
GetWindow(EditHouse.handle)->tag=0;
ShowWindow(EditHouse.handle);
}
return;
}
pre=NULL;
p=v->first;
while (p){
if (strcmp(num,p->num)==0){
if (!DlgBox("学号已经存在,是否覆盖?","询问"))
return;
break;
}
pre=p;
p=p->next;
}
}
bool isnew=false;
if (!p){
p=(pStu)malloc(sizeof *p);
memset(p,0,sizeof *p);
p->pre=pre;
if (pre)
pre->next=p;
else
v->first=p;
p->phouse=v;
isnew=true;
}
strcpy(p->name,GetEdit(EditStu.Edit1)->Text);
strcpy(p->num,GetEdit(EditStu.Edit2)->Text);
strcpy(p->sex,GetEdit(EditStu.Edit3)->Text);
strcpy(p->birthday,GetEdit(EditStu.Edit4)->Text);
strcpy(p->type,GetEdit(EditStu.Edit5)->Text);
strcpy(p->LengthOfEdu,GetEdit(EditStu.Edit6)->Text);
strcpy(p->InYear,GetEdit(EditStu.Edit7)->Text);
strcpy(p->Class,GetEdit(EditStu.Edit8)->Text);
strcpy(p->roomnum,GetEdit(EditStu.Edit10)->Text);
strcpy(p->phone,GetEdit(EditStu.Edit11)->Text);
strcpy(p->EMail,GetEdit(EditStu.Edit12)->Text);
strcpy(p->room,p->phouse->name);
strcat(p->room,p->roomnum);
sscanf(GetEdit(EditStu.Edit7)->Text,"%d-%d",&p->year,&p->month);
UpdateStuLack(p);
if (isnew){
Pchar str[6];
str[0]=p->name;
str[1]=p->num;
str[2]=p->Class;
str[3]=p->room;
str[4]=p->lack;
v->count++;
ListAdd(StuList,str,(int)p);
}
UpdateList(StuList);
CloseWindow(EditStu.handle);
Changed=true;
}
void AddStuClick(){
GetEdit(EditStu.Edit1)->Text[0]=0;
GetEdit(EditStu.Edit2)->Text[0]=0;
GetEdit(EditStu.Edit3)->Text[0]=0;
GetEdit(EditStu.Edit4)->Text[0]=0;
GetEdit(EditStu.Edit5)->Text[0]=0;
GetEdit(EditStu.Edit6)->Text[0]=0;
GetEdit(EditStu.Edit7)->Text[0]=0;
GetEdit(EditStu.Edit8)->Text[0]=0;
GetEdit(EditStu.Edit9)->Text[0]=0;
GetEdit(EditStu.Edit10)->Text[0]=0;
GetEdit(EditStu.Edit11)->Text[0]=0;
GetEdit(EditStu.Edit12)->Text[0]=0;
GetWindow(EditStu.handle)->tag=0;
ShowWindow(EditStu.handle);
}
void EditStuClick(){
if (!GetList(StuList)->SelectTag) return;
GetWindow(EditStu.handle)->tag=GetList(StuList)->SelectTag;
pStu p=(pStu)GetList(StuList)->SelectTag;
strcpy(GetEdit(EditStu.Edit1)->Text,p->name);
strcpy(GetEdit(EditStu.Edit2)->Text,p->num);
strcpy(GetEdit(EditStu.Edit3)->Text,p->sex);
strcpy(GetEdit(EditStu.Edit4)->Text,p->birthday);
strcpy(GetEdit(EditStu.Edit5)->Text,p->type);
strcpy(GetEdit(EditStu.Edit6)->Text,p->LengthOfEdu);
strcpy(GetEdit(EditStu.Edit7)->Text,p->InYear);
strcpy(GetEdit(EditStu.Edit8)->Text,p->Class);
strcpy(GetEdit(EditStu.Edit9)->Text,p->phouse->name);
strcpy(GetEdit(EditStu.Edit10)->Text,p->roomnum);
strcpy(GetEdit(EditStu.Edit11)->Text,p->phone);
strcpy(GetEdit(EditStu.Edit12)->Text,p->EMail);
ShowWindow(EditStu.handle);
}
void DelStuClick(){
pList List=GetList(StuList);
if (!List->SelectTag) return;
if (!DlgBox("确认删除该学生?","询问")) return;
pStu p=(pStu)(List->SelectTag);
p->phouse->count--;
DelStu(p);
int i;
for (i=List->Selected;i<List->count;i++){
memcpy(List->Text[i],List->Text[i+1],sizeof List->Text[i+1]);
List->tags[i]=List->tags[i+1];
}
List->count--;
List->SelectTag=List->Selected=0;
UpdateList(StuList);
DrawWindow(StuWindow);
}
void FindStuButtonClick(){
char *Text=GetEdit(FindStuEdit)->Text;
if (!Text[0]) return;
pList List=GetList(StuList);
List->count=0;
List->Show=0;
List->Selected=0;
List->SelectTag=0;
pHouse v;
pStu p;
Pchar str[6];
for (v=head->next;v;v=v->next)
for (p=v->first;p;p=p->next){
if (strstr(p->name,Text) ||
strstr(p->num,Text) ||
strstr(p->sex,Text) ||
strstr(p->birthday,Text) ||
strstr(p->type,Text) ||
strstr(p->LengthOfEdu,Text) ||
strstr(p->InYear,Text) ||
strstr(p->Class,Text) ||
strstr(p->room,Text) ||
strstr(p->EMail,Text) ||
strstr(p->phone,Text)){
str[0]=p->name;
str[1]=p->num;
str[2]=p->Class;
str[3]=p->room;
str[4]=p->lack;
ListAdd(StuList,str,(int)p);
}
}
UpdateList(StuList);
DrawWindow(StuWindow);
}
void ShowLackClick(){
pList List=GetList(StuList);
List->count=0;
List->Show=0;
List->Selected=0;
List->SelectTag=0;
pHouse v;
pStu p;
Pchar str[6];
for (v=head->next;v;v=v->next)
for (p=v->first;p;p=p->next){
if (atof(p->lack)>0){
str[0]=p->name;
str[1]=p->num;
str[2]=p->Class;
str[3]=p->room;
str[4]=p->lack;
ListAdd(StuList,str,(int)p);
}
}
UpdateList(StuList);
DrawWindow(StuWindow);
}
void ShowAllStudent(){
pList List=GetList(StuList);
List->count=0;
List->Show=0;
List->Selected=0;
List->SelectTag=0;
pHouse v;
pStu p;
Pchar str[6];
for (v=head->next;v;v=v->next)
for (p=v->first;p;p=p->next){
strcpy(p->room,p->phouse->name);
strcat(p->room,p->roomnum);
str[0]=p->name;
str[1]=p->num;
str[2]=p->Class;
str[3]=p->room;
str[4]=p->lack;
ListAdd(StuList,str,(int)p);
}
UpdateList(StuList);
}
void ShowAllStuClick(){
ShowAllStudent();
DrawWindow(StuWindow);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -