




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
HUBEIUNIVERSITYOFAUTOMOTIVETECHNOLOGYC语言程序设计实训报告实训题目:学分管理程序专业:计算机科学与技术班级:K1273-5姓名:涂瑞成绩:完成日期:2014年7月8日指导教师:张吴波目录1.实训题目与要求…………………32.系统设计…………43.程序测试与运行结果……………74.实训总结…………105.程序源代码………121.实训题目与要求学分管理程序问题描述:请设计一个学生的学分管理程序,以方便教务部门对学生已完成学分的管理。假设每位学生必须完成根底课50学分、专业课50学分、选修课24学分、人文类课程8个学分、实验性课程20学分才能毕业。因此在管理学分时,要考虑每个学分所属于的课程类别。其中各类别的课程所完成的学分最多不会超过100分。该程序应该具有以下功能:(1)能从键盘输入某位学生的信息〔不包含学分〕。(2)给定学号,显示该学生的所完成的学分。(3)给定学号,能修改该学生所完成的学分。(4)给定学号,将学生从程序中删除。(5)能显示已完成学分可以毕业的学生。题目要求:(1)按照分析、设计、编码、调试、测试的软件过程完成这个应用程序。(2)学分信息应该包括学生信息〔学号、姓名、班级、入学时间〕、根底课学分、专业课学分、选修课学分、人文类课程学分、实验性课程学分。(3)为程序设计windows窗口,在该窗口上以按钮的形式为用户提供“菜单”,通过点击各个功能项对应的按钮完成操作。输入要求:(1)用户可以根据需求,选定相应的操作工程。进入每个操作后,通过窗口的文本框,从键盘输入相应的信息。程序根据用户输入的信息完成相应的处理,实现要求的功能。(2)能对输入的数据进行简单的校验,例如,学生的学分是[0,100]范围内的数,入学时间必须是合法的日期,学号是唯一的〔一个学号对应一个学生的学分信息〕。输出要求:(1)应用程序运行后,要在屏幕上显示一个按钮形式的“菜单”。(2)要求用户输入数据时,给出清晰、明确的提示信息,包括输入的数据内容、格式以及结束方式等。(3)在程序完成处理后,要清楚地给出程序的处理结果。例如,在给定学号修改学生学分时,如果该学生不存在,要提示不能修改,如果修改成功要提示修改成功。实现要求:(1)在程序中使用链表存储学生的学分信息。(2)采用模块化程序设计的方法,将程序中的各项功能用函数实现。提示:(1)使用结构体表示学生的学分信息,一个结点保存一条学分信息。扩展功能:(1)提供一些统计功能。例如统计每个班学生已完成学分可以毕业人数。统计每类别课程的平均学分等。(2)学生的学分信息从文件读入。(3)将学生的学分信息保存到文件中。2.系统设计WindowsWindows编程WindowsWindows操作系统是一种基于图形界面的多任务〔即:同时执行多个程序〕操作系统。一个Windows应用程序是被Windows调用或在Windows下运行的一个程序。Windows编程与Dos的区别:学分管理系统学分管理系统函数家族WinMaincreateShowWindowshowallcommanddeletestudentshowbiyecleartextinitstudentxiugaixuefenbaocunclearcacheseexuefenWinMaincreateShowWindowshowallcommanddeletestudentshowbiyecleartextinitstudentxiugaixuefenbaocunclearcacheseexuefenUpdateWindoUpdateWindow【函数介绍】1.voidcreate(HWNDhwnd,LPARAMlParam);注册窗口函数2.ShowWindow(hWnd,nShowCmd);显示窗口3.voidcommand();命令消息4.UpdateWindow(hWnd);更新窗口5.voidinitstudent();初始化链表6.voidbaocun();保存7.voidshowall();显示所有学生信息8.voidcleartext();清空文本框9.voidclearcache();清空缓存10.voidshowbiye();显示可以毕业的学生11.voiddeletestudent();删除学生12.voidseexuefen();查询学分13.voidxiugaixuefen();修改学分3.程序测试与运行结果运行界面:保存界面:显示所有学生信息界面:查询学分界面:修改学分界面:删除学生界面:4.实训总结对这个系统需求分析,学分管理系统需要有保存学生信息、删除学生信息、查询学分、修改学分、显示所有学生信息、显示可以毕业的学生等根本功能。在实训中,我将各种功能模块化,以便进行设计。具体模块如下:保存信息模块、删除信息模块、输入信息模块、显示信息模块、清空文本框模块。然后根据各模块分别设计程序。万事开头难,在本次实训过程中,刚开始写这个程序的时候感觉很吃力,用了结构体,但却不知道自己要编写的函数怎样和结构体联系起来,弄了很久,总是有错误,去问其他同学,他们也不知道,后来苦思冥想了几个小时,才发现是变量类型不同,结构体中定义的变量都是int型或long型,而win程序从文本框中获取的内容是字符串型的,变量类型不同,所以无法直接赋值,导致编译错误。后来我用atoi函数把字符串转换为整型之后再赋值,就成功了。整个程序中,我最先编的函数是保存函数,编这个函数时,我启用了指针followp来进行挂链,挂链语句为followp->next=newstudent,其实这个比拟简单,难点在于对学生信息的限制条件,比方对入学时间的限制,对学分范围的限制等等,这些都要编在程序中,这就需要在合理的位置使用if语句进行判断,由于限制条件比拟多,就要使用多个if语句来判断,甚至是if里面再if,多个if语句嵌套判断,最后终于成功了。再程序的整体设计中,我还定义了一个全局变量assistp,为了其他功能便于实现,我让assistp始终指着头结点的下一个结点,但在判断学号是否重复的过程中,我使用了assistp来查找学号,所以当保存功能结束时,assistp已经不再指着headp的下一个结点,所以在保存功能结束前,一定要让assistp归位,所以应再加一句assistp=headp->next,这样assistp在其他功能中使用时也不会出错,保持了程序的健壮性和稳定性。很多时候,程序一编译,就会出现很多错误,心里非常凌乱,但是当自己把一个个错误改正来以后,会常常的舒一口气,然而,到连接时,十有八九会出问题,一般是逻辑上的问题,由于是需要前后改动程序的,所以会出现语句的出现先后问题,这时,就需要冷静,静下心年来,慢慢思考。有时候一个小小的错误会消耗我几个小时时间,甚至是好几天,百思不得其解,然而,有时也会过一会儿就会理解。有时候,当自己看着一个程序,不知道错在哪里的时候,别人一眼就看出来问题的所在。这就是当局者迷,旁观者清吧。这一次编写实训题目的程序又让我感受到学程序可以锻炼缜密的思维。因为以前编写的程序代码都比拟少,出现一些错误都是很容易被检查出来的,但是这次实训却是几百行的语句,而且是Windows编程,更是难以检查,似乎也没有经验告诉你该怎么去检查,那一刹那感觉到很急,但又不知如何是好,可是又不轻易的向老师询问,因为好似蛮简单,总相信自己能够检查出来,结果花了大量的时间。这次实训也让我明白了:不在乎你的根底怎么样,只要多练习,必能做到勤能补拙,编出一个自己满意的界面,一个满意的程序出来的。有时候程序会检测出一大堆错误。有时程序本身不存在语法错误,也能够顺利运行,但是运行结果显然是错误的,不是我所期望的。开发环境所提供的编译系统无法发现这种程序逻辑错误,只能靠自己的上机经验分析判断错误所在。程序的调试是一个技巧性很强的工作,对于初学者来说,尽快掌握程序调试方法是非常重要的。5.程序源代码#include<windows.h>LRESULTWINAPIWinProc(HWNDhWnd,UINTMsg,WPARAMwParam,LPARAMlParam);//函数声明voidinitstudent();//初始化voidbaocun();//保存voidshowall();//显示所有学生信息voidcleartext();//清空文本框voidclearcache();//清空缓存voidshowbiye();//显示可以毕业的学生voiddeletestudent();//删除学生voidseexuefen();//查询学分voidxiugaixuefen();//修改学分RECTrect1;RECTrect2;RECTrect3;RECTrect4;RECTrect5;RECTrect6;RECTrect7;RECTrect8;RECTrect9;RECTrect10;RECTrect11;RECTrect12;HDChDC;HWNDhWnd;PAINTSTRUCTpaint;staticcharstr1[20],str2[20],str3[100],str4[20],str5[20],str6[20],str7[20],str8[20],str9[20],str10[100],str11[20],str13[20],str12[10000],str14[10000];structstudent{ longxuehao; charname[20]; charbanji[20]; intyear; intmonth; intdate; intjichu; intzhuanye; intxuanxiu; intrenwen; intshiyan; student*next;};structstudent*headp,*followp,*assistp;voidinitstudent()//初始化{ headp=newstudent; headp->next=NULL; followp=headp; assistp=headp->next;}intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnShowCmd){char*cName="myWindow";//定义个字符指针表示窗口类的名字WNDCLASSwc;//定义变量MSGMsg;wc.cbClsExtra=0;wc.cbWndExtra=0;wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);;//设置窗口背景为白色wc.hCursor=NULL;//窗口的光标不设置wc.hIcon=NULL;//窗口图标设置wc.hInstance=hInstance;//当前程序的句柄,hInstance是由主函数传递wc.lpfnWndProc=WinProc;//窗口处理过程的窗口函数。wc.lpszClassName=(LPSTR)cName;//窗口类的名字。wc.lpszMenuName=NULL;//目录名,不设置wc.style=CS_HREDRAW|CS_VREDRAW;//窗口类的风格RegisterClass(&wc);//在系统中注册窗口hWnd=CreateWindow(cName,TEXT("学分管理系统"),WS_OVERLAPPEDWINDOW,25,25,1330,690,NULL,NULL,hInstance,NULL);ShowWindow(hWnd,nShowCmd);//显示窗口UpdateWindow(hWnd);//更新窗口 initstudent();while(GetMessage(&Msg,NULL,0,0)){TranslateMessage(&Msg);//翻译消息DispatchMessage(&Msg);//分派消息}returnMsg.message;//程序结束后返回消息}LRESULTWINAPIWinProc(HWNDhWnd,UINTMsg,WPARAMwParam,LPARAMlParam){//处理消息过程 staticHWNDbtnHwnd; staticHWNDinputHwnd1; staticHWNDinputHwnd2; staticHWNDinputHwnd3; staticHWNDinputHwnd4; staticHWNDinputHwnd5; staticHWNDinputHwnd6; staticHWNDinputHwnd7; staticHWNDinputHwnd8; staticHWNDinputHwnd9; staticHWNDinputHwnd10; staticHWNDinputHwnd11; staticHWNDinputHwnd12; staticHWNDhwndbutton13; staticHWNDhwndbutton14; staticHWNDhwndbutton15; staticHWNDhwndbutton16; staticHWNDhwndbutton17; staticHWNDhwndbutton18; staticHWNDhwndbutton19;switch(Msg)//对消息进行判断{ caseWM_PAINT: hDC=BeginPaint(hWnd,&paint);//获取设备上下文 rect1.top=20;//设置矩形框的属性 rect1.right=120; rect1.bottom=40; rect1.left=20; rect2.top=20;//设置矩形框的属性 rect2.right=580; rect2.bottom=40; rect2.left=480; rect3.top=20;//设置矩形框的属性 rect3.right=1040; rect3.bottom=40; rect3.left=940; rect4.top=70;//设置矩形框的属性 rect4.right=120; rect4.bottom=90; rect4.left=20; rect5.top=70;//设置矩形框的属性 rect5.right=620; rect5.bottom=90; rect5.left=480; rect6.top=70;//设置矩形框的属性 rect6.right=1040; rect6.bottom=90; rect6.left=940; rect7.top=120;//设置矩形框的属性 rect7.right=160; rect7.bottom=140; rect7.left=20; rect8.top=120;//设置矩形框的属性 rect8.right=620; rect8.bottom=140; rect8.left=480; rect9.top=120;//设置矩形框的属性 rect9.right=1060; rect9.bottom=140; rect9.left=940; rect10.top=70;//设置矩形框的属性 rect10.right=190; rect10.bottom=90; rect10.left=170; rect11.top=70;//设置矩形框的属性 rect11.right=270; rect11.bottom=90; rect11.left=250; rect12.top=70;//设置矩形框的属性 rect12.right=350; rect12.bottom=90; rect12.left=330; DrawText(hDC,"姓名:",-1,&rect1,DT_SINGLELINE|DT_LEFT|DT_VCENTER); DrawText(hDC,"班级:",-1,&rect2,DT_SINGLELINE|DT_LEFT|DT_VCENTER); DrawText(hDC,"学号:",-1,&rect3,DT_SINGLELINE|DT_LEFT|DT_VCENTER); DrawText(hDC,"入学时间:",-1,&rect4,DT_SINGLELINE|DT_LEFT|DT_VCENTER); DrawText(hDC,"根底课学分:",-1,&rect5,DT_SINGLELINE|DT_LEFT|DT_VCENTER); DrawText(hDC,"专业课学分:",-1,&rect6,DT_SINGLELINE|DT_LEFT|DT_VCENTER); DrawText(hDC,"选修课学分:",-1,&rect7,DT_SINGLELINE|DT_LEFT|DT_VCENTER); DrawText(hDC,"人文类课程学分:",-1,&rect8,DT_SINGLELINE|DT_LEFT|DT_VCENTER); DrawText(hDC,"实验类课程学分:",-1,&rect9,DT_SINGLELINE|DT_LEFT|DT_VCENTER); DrawText(hDC,"年",-1,&rect10,DT_SINGLELINE|DT_CENTER|DT_VCENTER); DrawText(hDC,"月",-1,&rect11,DT_SINGLELINE|DT_CENTER|DT_VCENTER); DrawText(hDC,"日",-1,&rect12,DT_SINGLELINE|DT_CENTER|DT_VCENTER); EndPaint(hWnd,&paint); return0; caseWM_CREATE: //响应窗口的创立事件 inputHwnd1=CreateWindow(TEXT("edit"),NULL,WS_CHILD|WS_VISIBLE|WS_BORDER|ES_LEFT|ES_MULTILINE,110,20,240,20,hWnd,(HMENU)1,((LPCREATESTRUCT)lParam)->hInstance,NULL); inputHwnd2=CreateWindow(TEXT("edit"),NULL,WS_CHILD|WS_VISIBLE|WS_BORDER|ES_LEFT|ES_MULTILINE,600,20,240,20,hWnd,(HMENU)2,((LPCREATESTRUCT)lParam)->hInstance,NULL); inputHwnd3=CreateWindow(TEXT("edit"),NULL,WS_CHILD|WS_VISIBLE|WS_BORDER|ES_LEFT|ES_MULTILINE,1060,20,240,20,hWnd,(HMENU)3,((LPCREATESTRUCT)lParam)->hInstance,NULL); inputHwnd4=CreateWindow(TEXT("edit"),NULL,WS_CHILD|WS_VISIBLE|WS_BORDER|ES_RIGHT|ES_MULTILINE,110,70,60,20,hWnd,(HMENU)4,((LPCREATESTRUCT)lParam)->hInstance,NULL); inputHwnd5=CreateWindow(TEXT("edit"),NULL,WS_CHILD|WS_VISIBLE|WS_BORDER|ES_LEFT|ES_MULTILINE,600,70,240,20,hWnd,(HMENU)5,((LPCREATESTRUCT)lParam)->hInstance,NULL); inputHwnd6=CreateWindow(TEXT("edit"),NULL,WS_CHILD|WS_VISIBLE|WS_BORDER|ES_LEFT|ES_MULTILINE,1060,70,240,20,hWnd,(HMENU)6,((LPCREATESTRUCT)lParam)->hInstance,NULL); inputHwnd7=CreateWindow(TEXT("edit"),NULL,WS_CHILD|WS_VISIBLE|WS_BORDER|ES_LEFT|ES_MULTILINE,110,120,240,20,hWnd,(HMENU)7,((LPCREATESTRUCT)lParam)->hInstance,NULL); inputHwnd8=CreateWindow(TEXT("edit"),NULL,WS_CHILD|WS_VISIBLE|WS_BORDER|ES_LEFT|ES_MULTILINE,600,120,240,20,hWnd,(HMENU)8,((LPCREATESTRUCT)lParam)->hInstance,NULL); inputHwnd9=CreateWindow(TEXT("edit"),NULL,WS_CHILD|WS_VISIBLE|WS_BORDER|ES_LEFT|ES_MULTILINE,1060,120,240,20,hWnd,(HMENU)9,((LPCREATESTRUCT)lParam)->hInstance,NULL); inputHwnd10=CreateWindow(TEXT("edit"),NULL,WS_CHILD|WS_VISIBLE|WS_BORDER|ES_LEFT|ES_MULTILINE,20,180,1280,400,hWnd,(HMENU)10,((LPCREATESTRUCT)lParam)->hInstance,NULL); inputHwnd11=CreateWindow(TEXT("edit"),NULL,WS_CHILD|WS_VISIBLE|WS_BORDER|ES_RIGHT|ES_MULTILINE,190,70,60,20,hWnd,(HMENU)11,((LPCREATESTRUCT)lParam)->hInstance,NULL); inputHwnd12=CreateWindow(TEXT("edit"),NULL,WS_CHILD|WS_VISIBLE|WS_BORDER|ES_RIGHT|ES_MULTILINE,270,70,60,20,hWnd,(HMENU)12,((LPCREATESTRUCT)lParam)->hInstance,NULL);hwndbutton13=CreateWindow(TEXT("BUTTON"),TEXT("保存"),WS_CHILD|WS_VISIBLE,170,600,60,30,hWnd,(HMENU)13,((LPCREATESTRUCT)lParam)->hInstance,NULL);hwndbutton14=CreateWindow(TEXT("BUTTON"),TEXT("查询学分"),WS_CHILD|WS_VISIBLE,230,600,70,30,hWnd,(HMENU)14,((LPCREATESTRUCT)lParam)->hInstance,NULL);hwndbutton15=CreateWindow(TEXT("BUTTON"),TEXT("修改学分"),WS_CHILD|WS_VISIBLE,300,600,70,30,hWnd,(HMENU)15,((LPCREATESTRUCT)lParam)->hInstance,NULL);hwndbutton16=CreateWindow(TEXT("BUTTON"),TEXT("删除学生"),WS_CHILD|WS_VISIBLE,370,600,70,30,hWnd,(HMENU)16,((LPCREATESTRUCT)lParam)->hInstance,NULL);hwndbutton17=CreateWindow(TEXT("BUTTON"),TEXT("显示所有可以毕业的学生"),WS_CHILD|WS_VISIBLE,440,600,200,30,hWnd,(HMENU)17,((LPCREATESTRUCT)lParam)->hInstance,NULL);hwndbutton18=CreateWindow(TEXT("BUTTON"),TEXT("显示所有学生信息"),WS_CHILD|WS_VISIBLE,640,600,140,30,hWnd,(HMENU)18,((LPCREATESTRUCT)lParam)->hInstance,NULL);hwndbutton19=CreateWindow(TEXT("BUTTON"),TEXT("清空文本框"),WS_CHILD|WS_VISIBLE,780,600,100,30,hWnd,(HMENU)19,((LPCREATESTRUCT)lParam)->hInstance,NULL); return0; { switch(LOWORD(wParam)) { case13: clearcache(); baocun(); return0; case14: clearcache(); seexuefen(); return0; case15: clearcache(); xiugaixuefen(); return0; case16: clearcache(); deletestudent(); return0; case17: clearcache(); cleartext(); showbiye(); return0; case18: clearcache(); cleartext(); showall(); return0; case19: clearcache(); cleartext(); return0; } return0; }PostQuitMessage(0);//退出消息队列return0;//返回0,结束函数} //如果是其余的消息,调用默认消息处理函数,将消息该函数处理并将返回值返回returnDefWindowProc(hWnd,Msg,wParam,lParam);}voidclearcache()//清空缓存{ ZeroMemory(str1,sizeof(str1)); ZeroMemory(str2,sizeof(str2)); ZeroMemory(str3,sizeof(str3)); ZeroMemory(str4,sizeof(str4)); ZeroMemory(str5,sizeof(str5)); ZeroMemory(str6,sizeof(str6)); ZeroMemory(str7,sizeof(str7)); ZeroMemory(str8,sizeof(str8)); ZeroMemory(str9,sizeof(str9)); ZeroMemory(str10,sizeof(str10)); ZeroMemory(str11,sizeof(str11)); ZeroMemory(str12,sizeof(str12)); ZeroMemory(str13,sizeof(str13)); ZeroMemory(str14,sizeof(str14));}voidcleartext()//清空文本框{ SetDlgItemText(hWnd,1,str4); SetDlgItemText(hWnd,2,str4); SetDlgItemText(hWnd,3,str4); SetDlgItemText(hWnd,4,str4); SetDlgItemText(hWnd,5,str4); SetDlgItemText(hWnd,6,str4); SetDlgItemText(hWnd,7,str4); SetDlgItemText(hWnd,8,str4); SetDlgItemText(hWnd,9,str4); SetDlgItemText(hWnd,10,str4); SetDlgItemText(hWnd,11,str4); SetDlgItemText(hWnd,12,str4);}voidbaocun()//保存{ structstudent*newstudent; newstudent=newstudent; GetDlgItemText(hWnd,3,str1,sizeof(str1)/sizeof(char)); newstudent->xuehao=atol(str1); if(newstudent->xuehao==0) { MessageBox(NULL,TEXT("保存失败!您输入的学号不合法,请检查学号是否正确!"),TEXT("提示"),MB_OK); deletenewstudent; } else { while(assistp!=NULL&&assistp->xuehao!=newstudent->xuehao) { assistp=assistp->next; } if(assistp==NULL) { GetDlgItemText(hWnd,1,newstudent->name,sizeof(str1)/sizeof(char)); GetDlgItemText(hWnd,2,newstudent->banji,sizeof(str1)/sizeof(char)); GetDlgItemText(hWnd,4,str5,sizeof(str1)/sizeof(char)); GetDlgItemText(hWnd,5,str6,sizeof(str1)/sizeof(char)); GetDlgItemText(hWnd,6,str7,sizeof(str1)/sizeof(char)); GetDlgItemText(hWnd,7,str8,sizeof(str1)/sizeof(char)); GetDlgItemText(hWnd,8,str9,sizeof(str1)/sizeof(char)); GetDlgItemText(hWnd,9,str10,sizeof(str1)/sizeof(char)); GetDlgItemText(hWnd,11,str11,sizeof(str1)/sizeof(char)); GetDlgItemText(hWnd,12,str13,sizeof(str1)/sizeof(char)); newstudent->year=atoi(str5); newstudent->jichu=atoi(str6); newstudent->zhuanye=atoi(str7); newstudent->xuanxiu=atoi(str8); newstudent->renwen=atoi(str9); newstudent->shiyan=atoi(str10); newstudent->month=atoi(str11); newstudent->date=atoi(str13); newstudent->next=NULL; if(newstudent->year<1999||newstudent->year>2014||newstudent->month<1||newstudent->month>12||newstudent->date<1||newstudent->date>31) { MessageBox(NULL,TEXT("保存失败!您输入的入学时间超出范围,请注意入学时间的范围为1999年1月1日至2014年12月31日,请检查更正后再保存!"),TEXT("提示"),MB_OK); deletenewstudent; } elseif(newstudent->jichu<0||newstudent->jichu>100||newstudent->zhuanye<0||newstudent->zhuanye>100||newstudent->xuanxiu<0||newstudent->xuanxiu>100||newstudent->renwen<0||newstudent->renwen>100||newstudent->shiyan<0||newstudent->shiyan>100) { MessageBox(NULL,TEXT("保存失败!您输入的学分超出范围,请注意学分的范围为0至100,请检查更正后再保存!"),TEXT("提示"),MB_OK); deletenewstudent; } else { followp->next=newstudent; followp=followp->next; MessageBox(NULL,TEXT("保存成功!"),TEXT("提示"),MB_OK); } } else { strcat(str3,"保存失败!学号为"); ltoa(newstudent->xuehao,str4,10); strcat(str3,str4); strcat(str3,"的学生已存在,请勿重复保存!"); MessageBox(NULL,str3,"提示",MB_OK); deletenewstudent; } } assistp=headp->next;}voidshowall()//显示所有学生信息{ student*searchp; searchp=headp->next; while(searchp!=NULL) { strcat(str12,"姓名:"); strcat(str12,searchp->name); strcat(str12,""); strcat(str12,"班级:"); strcat(str12,searchp->banji); strcat(str12,""); strcat(str12,"学号:"); ltoa(searchp->xuehao,str1,10); strcat(str12,str1); strcat(str12,""); strcat(str12,"入学时间:"); ltoa(searchp->year,str2,10); strcat(str12,str2); strcat(str12,"年"); ltoa(searchp->month,str3,10); strcat(str12,str3); strcat(str12,"月"); ltoa(searchp->date,str4,10); strcat(str12,str4); strcat(str12,"日"); strcat(str12,""); strcat(str12,"根底课学分:"); ltoa(searchp->jichu,str5,10); strcat(str12,str5); strcat(str12,""); strcat(str12,"专业课学分:"); ltoa(searchp->zhuanye,str6,10); strcat(str12,str6); strcat(str12,""); strcat(str12,"选修课学分:"); ltoa(searchp->xuanxiu,str7,10); strcat(str12,str7); strcat(str12,""); strcat(str12,"人文类课程学分:"); ltoa(searchp->renwen,str8,10); strcat(str12,str8); strcat(str12,""); strcat(str12,"实验类课程学分:"); ltoa(searchp->shiyan,str9,10); strcat(str12,str9); strcat(str12,"\r\n"); strcat(str12,"\r\n"); searchp=searchp->next; } SetDlgItemText(hWnd,10,str12);}voidshowbiye()//显示可以毕业的学生{ student*midp; midp=headp->next; while(midp!=NULL) { if(midp->jichu<50||midp->zhuanye<50||midp->xuanxiu<24||midp->renwen<8||midp->shiyan<20) { midp=midp->next; } else { strcat(str14,"姓名:"); strcat(str14,midp->name); strcat(str14,""); strcat(str14,"班级:"); strcat(str14,midp->banji); strcat(str14,""); strcat(str14,"学号:"); ltoa(midp->xuehao,str1,10); strcat(str14,str1); strcat(str14,""); strcat(str14,"入学时间:"); ltoa(midp->year,str2,10); strcat(str14,str2); strcat(str14,"年"); ltoa(midp->month,str3,10); strcat(str14,str3); strcat(str14,"月"); ltoa(midp->date,str4,10); strcat(str14,str4); strcat(str14,"日"); strcat(str14,""); strcat(str14,"根底课学分:"); ltoa(midp->jichu,str5,10); strcat(str14,str5); strcat(str14,""); strcat(str14,"专业课学分:"); ltoa(midp->zhuanye,str6,10); strcat(str14,str6); strcat(str14,""); strcat(str14,"选修课学分:"); ltoa(midp->xuanxiu,str7,10); strcat(str14,str7); strcat(str14,""); strcat(str14,"人文类课程学分:"); ltoa(midp->renwen,str8,10); strcat(str14,str8); strcat(str14,""); strcat(str14,"实验类课程学分:"); ltoa(midp->shiyan,str9,10); strcat(str14,str9); strcat(str14,""); strcat(str14,"状态:可毕业"); strcat(str14,"\r\n"); strcat(str14,"\r\n"); midp=midp->next; } } SetDlgItemText(hWnd,10,str14);}voiddeletestudent()//删除学生{ longs; student*deletep,*shadowp; shadowp=headp; deletep=headp->next; GetDlgItemText(hWnd,3,str1,sizeof(str1)/sizeof(char)); s=atol(str1); if(s==0) { MessageBox(NULL,TEXT("请输入正确的学号后再删除!"),TEXT("提示"),MB_OK); } else { while(deletep!=NULL&&deletep->xuehao!=s) { deletep=deletep->next; shadowp=shadowp->next; } if(deletep!=NULL) { if(deletep->next==NULL) { shadowp->next=NULL; deletedeletep; assistp=headp->next; followp=shadowp; MessageBox(NULL,TEXT("删除成功!"),TEXT("提示"),MB_OK); } else { shadowp->next=deletep->next; deletedeletep; assistp=headp->next; MessageBox(NULL,TEXT("删除成功!"),TEXT("提示"),MB_OK); } } else { strcat(str3,"学号为"); strcat(str3,str1); strcat(str3,"的学生不存在,无法删除!"); MessageBox(NULL,str3,TEXT("提示"),MB_OK); } }}voidseexuefen()//查询学分{ longs; GetDlgItemText(hWnd,3,str1,sizeof(str1)/sizeof(char)); s=atol(str1); if(s==0) { MessageBox(NULL,TEXT("请输入正确的学号后再查询!"),TEXT("提示"),MB_OK); } else { while(assistp!=NULL&&assistp->xuehao!=s) { assistp=assistp->next; } if(assistp!=NULL) { ltoa(assistp->date,str2,10); ltoa(assistp->jichu,str3,10); ltoa(assistp->month,str4,10); ltoa(assistp->renwen,str5,10); ltoa(assistp->shiyan,str6,10); ltoa(assistp->xuanxiu,str7,10); ltoa(assistp->year,str8,10); ltoa(assistp->zhuanye,str9,10); SetDlgItemText(hWnd,1,assistp->name); SetDlgItemText(hWnd,2,assistp->banji); SetDlgItemTex
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水阁杨梅山施工方案
- 广告门头施工方案
- 石材粘接施工方案
- 火烧板台阶施工方案
- 桥梁亮化工程施工方案
- 室外管道安装施工方案
- TSJNX 002-2024 西安市水平衡测试报告编制规范
- 二零二五年度物流信息承运合同模板
- 二零二五年度承揽合同中增值税税率变动应对策略
- 二零二五年度交通事故人伤赔偿公益援助协议
- 擀筋课件教学课件
- 城市污水处理厂改造施工方案
- 八项规定解读
- 医院工程改造工程施工组织设计方案
- 英语人称代词和物主代词练习题(附答案)
- 2024年高等教育法学类自考-00369警察伦理学考试近5年真题集锦(频考类试题)带答案
- 社交媒体对消费者行为的影响调研报告
- 计算机一级考试WPS试题及答案
- 快乐读书吧《孤独的小螃蟹》整本书阅读指导课教学设计-2023-2024学年语文二年级上册统编版
- 生猪屠宰兽医卫生检验人员理论考试题库及答案
- 《Windows server操作系统》Windows Server 2019全套教学课件
评论
0/150
提交评论