⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lwx.c

📁 这是我自己做的C学生管理系统
💻 C
📖 第 1 页 / 共 2 页
字号:
						sNew->next=0;
						SetWindowText(hEditWnd2,sNew->per.StuNum);//学号
						SetWindowText(hEditWnd3,sNew->per.StuName);//姓名
						sprintf(C,"%s",(sNew->per.StuAge));
						SetWindowText(hEditWnd4,C);//年龄
						sprintf(C,"%s",(sNew->per.StuSex));
						SetWindowText(hEditWnd5,C);//性别
						sprintf(C,"%s",(sNew->per.StuPhone));
						SetWindowText(hEditWnd6,C);//电话
						sprintf(C,"%s",(sNew->per.StuOICQ));
						SetWindowText(hEditWnd7,C);//OICQ	
						//显示的是最后一个记录
						if(sHead==0)
						{
							sHead=sNew;
						}
						else
						{
							for(sp=sHead;sp->next!=0;)
							{
								sp=sp->next;
							}
							sp->next=sNew;
						}
						j++;
					}
					p=p->next;
					
				}
				sAbsCount=j;
				sprintf(C,"%d",j);
				SetWindowText(hEditWnd8,C);
				selectNum=0;
			}
			nRet=1;
		}
		if(LOWORD(wParam)==IDC_BUTTON1)
		{
			//当前记录数减去1
			if(sAbsCount>1)
			{
				sAbsCount--;
				for(sp=sHead,i=0;sp!=0;)
				{
					i++;
					if(i==sAbsCount)
					{break;}
					sp=sp->next;
				}
				SetWindowText(hEditWnd2,sp->per.StuNum);//学号
				SetWindowText(hEditWnd3,sp->per.StuName);//姓名
				sprintf(C,"%d",(sp->per.StuAge));
				SetWindowText(hEditWnd4,C);//年龄
				sprintf(C,"%d",(sp->per.StuSex));
				SetWindowText(hEditWnd5,C);//性别
				sprintf(C,"%d",(sp->per.StuPhone));
				SetWindowText(hEditWnd6,C);//电话
				sprintf(C,"%f",(sp->per.StuOICQ));
				SetWindowText(hEditWnd7,C);//OICQ
			}
		}

		if(LOWORD(wParam)==IDC_BUTTON2)
		{
			//当前记录数加上1
			if(sAbsCount<j)
			{
				sAbsCount++;
				for(sp=sHead,i=0;sp!=0;)
				{
				i++;
				if(i==sAbsCount)
				{break;}
				sp=sp->next;
				}
				SetWindowText(hEditWnd2,sp->per.StuNum);//学号
				SetWindowText(hEditWnd3,sp->per.StuName);//姓名
				sprintf(C,"%d",(sp->per.StuAge));
				SetWindowText(hEditWnd4,C);//年龄
				sprintf(C,"%d",(sp->per.StuSex));
				SetWindowText(hEditWnd5,C);//性别
				sprintf(C,"%d",(sp->per.StuPhone));
				SetWindowText(hEditWnd6,C);//电话
				sprintf(C,"%f",(sp->per.StuOICQ));
				SetWindowText(hEditWnd7,C);//OICQ
			}
		}

		if(LOWORD(wParam)==IDCANCEL) 
		{
			//先将sHead链表删除,再关对话框
			sHead=NULL;
			EndDialog(hDlgWnd,IDCANCEL);
		}
		break;
	default:break;
	}
	return 0;
}

//窗口回调函数
LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
	HDC hdc=NULL;
	PAINTSTRUCT ps;
	HBRUSH hBrush,hBkBrush,hOldBrush;
	HPEN hPen,hNullPen,hOldPen,hPen1;
	RECT rc;
	POINT pt;
	FILE *fp;
	int i,val,hal;
	int wmID,wmEvent,ReVal,isSave;
	char cn[20],x[100];
	switch(message)
	{
	case WM_DESTROY:
		if(Change==1)
				{
					ReVal=MessageBox(hWnd,"是否保存?","消息",MB_YESNO);
					if(ReVal==IDYES)
					{
						fp=fopen("read.save","w+");
						if(fp!=0)
						{
							for(p=head;p!=0;)
							{
								fprintf(fp,"%10s%10s%10s%10s%10s%10s\n",p->per.StuNum,p->per.StuName,p->per.StuAge,p->per.StuSex,p->per.StuPhone,p->per.StuOICQ);
								p=p->next;
							}
						}
						fclose(fp);
					}
				}
		 PostQuitMessage(0);
		 break;
	case WM_PAINT:
		hdc=BeginPaint(hWnd,&ps);
		//创建画笔
		hPen = CreatePen(PS_SOLID,1,RGB(0,0,255));
		hNullPen = GetStockObject(NULL_PEN);
		//创建画刷
		hBrush = CreateSolidBrush(RGB(200,60,0));
		hBkBrush = CreateSolidBrush(RGB(180,180,255));

		//画背景
		hOldPen = SelectObject(hdc,hNullPen);
		hOldBrush = SelectObject(hdc,hBkBrush);

		//获取客户区大小
		GetClientRect(hWnd,&rc);
		val = (rc.right - rc.left) / COL;	
		hal = (rc.bottom - rc.top) / ROW;
		Rectangle(hdc,rc.left,rc.top,rc.right,rc.bottom);

		//画第一行

		SelectObject(hdc,hBrush);	//第一行背景色

		for(i = 0;i <= COL;i++)
		{
			Rectangle(hdc,rc.left + i * (val),rc.top,rc.left+ (i+1) * val,rc.top + hal);
		}
		//背景色
		SetBkColor(hdc,RGB(200,60,0));
		//字体色
		SetTextColor(hdc,RGB(0,0,0));
		TextOut(hdc,rc.left + val/2-16,hal/2-6,"学号",strlen("学号"));
		TextOut(hdc,rc.left + val + val/2-16,hal/2-7,"姓名",strlen("姓名"));
		TextOut(hdc,rc.left + val*2 + val/2-24,hal/2-7,"年龄",strlen("年龄"));
		TextOut(hdc,rc.left + val*3 + val/2-24,hal/2-7,"性别",strlen("性别"));
		TextOut(hdc,rc.left + val*4 + val/2-36,hal/2-7,"联系电话",strlen("联系电话"));
		TextOut(hdc,rc.left + val*5 + val/2-24,hal/2-7,"OICQ",strlen("OICQ"));

		for(p=head,ReCount=0;p!=0;)//先确定记录个数
		{
			ReCount++;
			p=p->next;
		}
		if(ReCount%(ROW-2)==0)//确定总页面数
		{
			PageCount=ReCount/(ROW-2);
		}
		else
		{
			PageCount=ReCount/(ROW-2)+1;
		}
		if(head!=NULL)//有记录,则显示出来
		{
			SetBkColor(hdc,RGB(180,180,255));
			//先让p指到该页面要显示的第一个记录
			for(i=1,p=head;i<14*(AbsPage-1)+1;i++)
			{
				p=p->next;
			}
			for(i=14*(AbsPage-1)+1;p!=NULL;)
			{	//显示记录各项结果
				if(i%14!=0)
				{
					TextOut(hdc,rc.left + val/2-16,(i%14)*hal+hal/2-6,p->per.StuNum,strlen(p->per.StuNum));
					TextOut(hdc,rc.left + val + val/2-16,(i%14)*hal+hal/2-7,p->per.StuName,strlen(p->per.StuName));
					sprintf(cn,"%s",(p->per.StuAge));
					TextOut(hdc,rc.left + val*2 + val/2-16,(i%14)*hal+hal/2-7,cn,strlen(cn));
					sprintf(cn,"%s",(p->per.StuSex));
					TextOut(hdc,rc.left + val*3 + val/2-16,(i%14)*hal+hal/2-7,cn,strlen(cn));
					sprintf(cn,"%s",(p->per.StuPhone));
					TextOut(hdc,rc.left + val*4 + val/2-16,(i%14)*hal+hal/2-7,cn,strlen(cn));
					sprintf(cn,"%s",(p->per.StuOICQ));
					TextOut(hdc,rc.left + val*5 + val/2-16,(i%14)*hal+hal/2-7,cn,strlen(cn));
				}
				else
				{
					TextOut(hdc,rc.left + val/2-16,14*hal+hal/2-6,p->per.StuNum,strlen(p->per.StuNum));
					TextOut(hdc,rc.left + val + val/2-16,14*hal+hal/2-7,p->per.StuName,strlen(p->per.StuName));
					sprintf(cn,"%s",(p->per.StuAge));
					TextOut(hdc,rc.left + val*2 + val/2-16,14*hal+hal/2-7,cn,strlen(cn));
					sprintf(cn,"%s",(p->per.StuSex));
					TextOut(hdc,rc.left + val*3 + val/2-16,14*hal+hal/2-7,cn,strlen(cn));
					sprintf(cn,"%s",(p->per.StuPhone));
					TextOut(hdc,rc.left + val*4 + val/2-16,14*hal+hal/2-7,cn,strlen(cn));
					sprintf(cn,"%s",(p->per.StuOICQ));
					TextOut(hdc,rc.left + val*5 + val/2-16,14*hal+hal/2-7,cn,strlen(cn));
				}
				if(i!=(AbsPage*14))
				{
					//画线
					hPen1=CreatePen(PS_SOLID,3,RGB(200,60,0));
					SelectObject(hdc,hPen1);
					MoveToEx(hdc,rc.left,rc.top+((i+1)%14)*hal,&pt);
					LineTo(hdc,rc.right,rc.top+((i+1)%14)*hal);//画横线
					//画竖线
					MoveToEx(hdc,rc.left+val,rc.top+(i%14)*hal,&pt);
					LineTo(hdc,rc.left+val,rc.top+((i+1)%14)*hal);
					MoveToEx(hdc,rc.left+2*val,rc.top+(i%14)*hal,&pt);
					LineTo(hdc,rc.left+2*val,rc.top+((i+1)%14)*hal);
					MoveToEx(hdc,rc.left+3*val,rc.top+(i%14)*hal,&pt);
					LineTo(hdc,rc.left+3*val,rc.top+((i+1)%14)*hal);
					MoveToEx(hdc,rc.left+4*val,rc.top+(i%14)*hal,&pt);
					LineTo(hdc,rc.left+4*val,rc.top+((i+1)%14)*hal);
					MoveToEx(hdc,rc.left+5*val,rc.top+(i%14)*hal,&pt);
					LineTo(hdc,rc.left+5*val,rc.top+((i+1)%14)*hal);
					DeleteObject(hPen1);
				}
				if(i==(AbsPage*14) && i!=0)
				{
						//画线
					hPen1=CreatePen(PS_SOLID,3,RGB(200,60,0));
					SelectObject(hdc,hPen1);
					MoveToEx(hdc,rc.left,rc.top+15*hal,&pt);
					LineTo(hdc,rc.right,rc.top+15*hal);//画横线
					//画竖线
					MoveToEx(hdc,rc.left+val,rc.top+14*hal,&pt);
					LineTo(hdc,rc.left+val,rc.top+15*hal);
					MoveToEx(hdc,rc.left+2*val,rc.top+14*hal,&pt);
					LineTo(hdc,rc.left+2*val,rc.top+15*hal);
					MoveToEx(hdc,rc.left+3*val,rc.top+14*hal,&pt);
					LineTo(hdc,rc.left+3*val,rc.top+15*hal);
					MoveToEx(hdc,rc.left+4*val,rc.top+14*hal,&pt);
					LineTo(hdc,rc.left+4*val,rc.top+15*hal);
					MoveToEx(hdc,rc.left+5*val,rc.top+14*hal,&pt);
					LineTo(hdc,rc.left+5*val,rc.top+15*hal);
					DeleteObject(hPen1);
				}
				if((i==(AbsPage*14)-1))
				{
							//画线
					hPen1=CreatePen(PS_SOLID,3,RGB(200,60,0));
					SelectObject(hdc,hPen1);
					MoveToEx(hdc,rc.left,rc.top+14*hal,&pt);
					LineTo(hdc,rc.right,rc.top+14*hal);//画横线
					//画竖线
					MoveToEx(hdc,rc.left+val,rc.top+13*hal,&pt);
					LineTo(hdc,rc.left+val,rc.top+14*hal);
					MoveToEx(hdc,rc.left+2*val,rc.top+13*hal,&pt);
					LineTo(hdc,rc.left+2*val,rc.top+14*hal);
					MoveToEx(hdc,rc.left+3*val,rc.top+13*hal,&pt);
					LineTo(hdc,rc.left+3*val,rc.top+14*hal);
					MoveToEx(hdc,rc.left+4*val,rc.top+13*hal,&pt);
					LineTo(hdc,rc.left+4*val,rc.top+14*hal);
					MoveToEx(hdc,rc.left+5*val,rc.top+13*hal,&pt);
					LineTo(hdc,rc.left+5*val,rc.top+14*hal);
					DeleteObject(hPen1);
				}

				i++;
				if(i>14*AbsPage) break;
				p=p->next;
			}
		}
		//显示出总的记录条数,页面数,当前页号
		SetBkColor(hdc,RGB(180,180,255));
		sprintf(x,"总记录数:  %d  总页数:  %d  当前页数:  %d  ",ReCount,PageCount,AbsPage);
		TextOut(hdc,rc.left,rc.bottom-hal/2,x,strlen(x));
		EndPaint(hWnd,&ps);
		break;
	case WM_COMMAND://菜单操作
		wmID=LOWORD(wParam);
		wmEvent=HIWORD(wParam);
		switch(wmID)
		{
		case IDC_SICNEW://点击新建
			DialogBox(hInst,MAKEINTRESOURCE(IDD_DIALOG1),hWnd,(DLGPROC)DialogBoxProcADD);
			if(nRet==1)
			{
				GetClientRect(hWnd,&rc);
				InvalidateRect(hWnd,NULL,TRUE);
			}
			break;
		case IDC_SICDEL://点击删除
			DialogBox(hInst,MAKEINTRESOURCE(IDD_DIALOG2),hWnd,(DLGPROC)DialogBoxProcDEL);
			if(nRet==1)
			{
				if(head!=0)
				{
					GetClientRect(hWnd,&rc);
					InvalidateRect(hWnd,NULL,TRUE);
				}
			}
			break;
		case IDC_SICMODIFY://点击更改
			DialogBox(hInst,MAKEINTRESOURCE(IDD_DIALOG3),hWnd,(DLGPROC)DialogBoxProcMODIFY);
			if(nRet==1)
			{
				GetClientRect(hWnd,&rc);
				InvalidateRect(hWnd,NULL,TRUE);
			}
			break;
		case IDC_SICFIND://点击查找
		    DialogBox(hInst,MAKEINTRESOURCE(IDD_DIALOG4),hWnd,(DLGPROC)DialogBoxProcFIND);
			if(nRet==1)
			{
				GetClientRect(hWnd,&rc);
				InvalidateRect(hWnd,NULL,TRUE);
			}
			break;
		case IDC_SICSAVE://点击保存
			isSave=MessageBox(hWnd,"是否要保存?","操作",MB_YESNO);
			if(isSave==IDYES)
			{
				fp=fopen("read.save","w+");
				if(fp!=0)
				{
					for(p=head;p!=0;)
					{
						fprintf(fp,"%10s%10s%10s%10s%10s%10s\n",p->per.StuNum,p->per.StuName,p->per.StuAge,p->per.StuSex,p->per.StuPhone,p->per.StuOICQ);
						p=p->next;
					}
				}
				fclose(fp);
				Change=0;
			}
				break;
		case IDC_SICEND://点击退出
			ReVal=MessageBox(hWnd,"你真的要退出?","消息",MB_YESNO);
			if(ReVal==IDYES) 
			{
				if(Change==1)
				{
					ReVal=MessageBox(hWnd,"是否保存?","消息",MB_YESNO);
					if(ReVal==IDYES)
					{
						fp=fopen("read.save","w+");
						if(fp!=0)
						{
							for(p=head;p!=0;)
							{
								fprintf(fp,"%10s%10s%10s%10s%10s%10s\n",p->per.StuNum,p->per.StuName,p->per.StuAge,p->per.StuSex,p->per.StuPhone,p->per.StuOICQ);
								p=p->next;
							}
						}
						fclose(fp);
					}
				}
				exit(1);
			}
			break;
		case IDC_SICUP://点击上页
			if(AbsPage>1)
			{
				AbsPage--;
				GetClientRect(hWnd,&rc);
				InvalidateRect(hWnd,NULL,TRUE);
			}
			break;
		case IDC_SICNEXT://下一页
			if(AbsPage<PageCount)
			{
				AbsPage++;
				GetClientRect(hWnd,&rc);
				InvalidateRect(hWnd,NULL,TRUE);
			}
			break;
		case IDC_SICABOUT://点击关于主题
			DialogBox(hInst,MAKEINTRESOURCE(IDD_DIALOG5),hWnd,(DLGPROC)DialogBoxProcNEW);
			break;
		}
		break;
	default:
		return DefWindowProc(hWnd,message,wParam,lParam);
	}
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -