《学生证管理系统源代码及报告》由会员分享,可在线阅读,更多相关《学生证管理系统源代码及报告(33页珍藏版)》请在金锄头文库上搜索。
1、 目 录1实训题目与要求页码2系统设计页码3程序测试与运行结果页码4实训总结页码5程序源代码页码1.实训题目与要求1学生证管理程序题目描述:请设计一个学生证管理的程序,以方便辅导员对学生证的管理,该程序应该具有以下功能:(1)能从键盘输入某位学生的学生证信息(学生证应该包含的信息可以参考自己的学生证)。(2)给定学号,显示该学生的学生证信息。(3)给定班号,显示该班所有学生的学生证信息。(4)给定学号,修改该学生的学生证信息。(5)给定学号,删除该学生的学生证信息。题目要求:(1)按照分析、设计、编码、调试、测试的软件过程完成这个应用程序。(2)学生证应该包含的信息参考自己的学生证。(3)为程
2、序设计windows窗口,在该窗口上以按钮的形式为用户提供“菜单”,通过点击各个功能项对应的按钮完成操作。输入要求: (1)用户可以根据需求,选定相应的操作项目。进入每个操作后,通过窗口的文本框,从键盘输入相应的信息。程序根据用户输入的信息完成相应的处理,实现要求的功能。 (2)能对输入的数据进行简单的校验,例如,学生的入学时间必须是一个合法的日期格式,学号是唯一的(一个学号对应一条学生证信息)。输出要求: (1)应用程序运行后,要在屏幕上显示一个按钮形式的“菜单”。 (2)要求用户输入数据时,给出清晰、明确的提示信息,包括输入的数据内容、格式以及结束方式等。(3)在程序完成处理后,要清楚地给
3、出程序的处理结果。例如,在给定学号删除学生证信息时,如果该学生不存在,要提示没能删除,如果删除成功要提示删除成功。实现要求: (1)在程序中使用链表存储学生证信息。 (2)采用模块化程序设计的方法,将程序中的各项功能用函数实现。提示: (1)使用结构体表示学生证信息,一个结点保存一条学生证信息。 扩展功能: (1)提供一些统计功能。例如统计每个班学生的人数,统计男女生比例。 (2)学生证信息从文件读入。 (3)将学生证信息保存到文件中。点击保存按钮点击导入按钮点击删除学生信息按钮2.系统设计 输入学号.院系入学时间.姓名.卡号.文件名称输入学号院系卡号入学时间等点击输入学生信息按钮点击显示院系
4、按钮点击显示全部按钮点击修改学生信息按钮点击文件录入按钮点击显示学生信息按钮的功能。窗口在之前计算器实训中讲过,首先,必须定义一 最初拿到设计题目,用windows语言做出一个学生证管理系统,首先想到的是需要先写出一个窗口,然后在窗口上实现各种各样功能。首先定义一个WNDCLASS类型的结构体变量,一个窗口类变量表示Windows程序中的“一种类型的窗口”,定义的方法如下:WNDCLASS wndclass;其次,在定义了WNDCLASS结构体变量后必须给该变量的成员赋值,用以指定该窗口类的具体特征。再次使用API函数:RegisterClass函数注册窗口类,使用方式就是将定义的WNDCLA
5、SS的变量地址作为该函数的实参。然后建立窗口,首先,定义HWND类型的窗口变量,一个窗口变量对应着Windows应用程序中的一个具体的“窗口”,其次,创建窗口,创建窗口的方法就是API函数:CreateWindow函数。CreateWindow函数的调用方式如下:hwnd = CreateWindow(szAppName, TEXT(新窗口),WS_OVERLAPPEDWINDOW, 800, 600,NULL, NULL, hInstance, NULL )再次,显示窗口,创建了窗口后,该窗口并没有显示,需要使用API函数:ShowWindow函数将已经创建的窗口在屏幕上显示。调用方式如下:
6、ShowWindow(hWnd,nShowCmd); 之后想到,这个程序要对使用者的动作进行反应。所以需要调用函数。 在之后,看到了题目里要求必须要可以导入文件删除文件,所以想到了需要用到指针和文件。做一个学生证管理系统,应该要让使用者觉得方便,我站在老师的角度想了一下,这个程序应该要可以输入学生的信息,可以显示学生信息,可以删除学生信息,可以显示学生单独的信息,也可以显示学生全部的信息,可以使用程序查看文件目录,最后还要保存。此外这个程序还可以导入。但是缺陷就是必须需要在指定的文件夹下创建一个人txt文件,才可以导入3.程序测试与运行结果 程序写完后,可以运行,这是我写过最长的一片代码,虽然
7、很多地方都是老师,学长帮忙,但是我发现如果写代码时缺失标点,括号,在最终程序测试的时候发现错误,然后在寻找错误修改就会很麻烦,所以写代码最好一次写完,不要出错。平时应该多加练习,联系熟练以后,就不容易出错。 通过这次实训,我发现了写代码最重要的两个过程,一个是构思,另一个是就是测试,测试时可以发现很多问题,并且可以找到程序的缺陷,从而想到很多更好的点子。1. 程序运行后主页面这是一个类似于计算机上计算器的windows程序,主页面等也十分相似2.有可供输入学号.院系.入学日期.学生姓名.卡号.文件名称,左侧的学生信息下方可以输入学生的学号,所在院系,入学时间姓名,卡号,和输入文件夹名称的地方3
8、.右侧不同按钮拥有不同的功能,再输入完整的学生信息之后,在菜单栏中可以使用不同的功能键,点击显示院系,就可以在主页面中间空白位置显示学生院系信息,还可以使用导入功能导入,但是导入之前必须填写左侧的文件名称,否则不能导入4. 输入学号后,点击输入学生信息,提示学生信息已录入5.若未输入学号,点击输入学生信息,提示请输入学号6.点击显示院系,内容区显示的内容7.点击显示全部,内容区显示的内容8.点击文件录入,弹出窗口9.点击显示学生信息,显示区显示内容在点击显示学生信息之前,必须在左侧栏中输入学生信息,然后在右侧点击输入学生信息,才能在中间的显示栏中显示,否则会提示,没有该学生信息10.点击导入,
9、提示请输入文件名称 在导入之前,必须在程序的同一个文件夹下创建一个txt文档,才能够导入11.点击删除学生信息 点击删除学生信息,原本中间显示栏上的学生信息消失12.点击退出键退出5实训总结 通过这次实训,大概了解了写出一个Windows程序的过程,首先是怎么创建一个窗口,之后再在窗口中加标题栏,菜单栏等。也大概了解了Windows程序与dos程序的区别。知道了一些Windows程序的主函数,以及一些调用需要用到的函数。 虽然在程序很多地方用到了句柄,也许是句柄太抽象,所以还是不能理解句柄究竟是什么我觉得比较好理解的是对消息的处理,使用swich语句,判断接收到了什么消息,然后使用Messag
10、e box对用户进行反馈。操作文本框是一个比较容易理解,只要理解了括号内的不同位置表达什么意思,基本上就能写出来。我觉得这次实训的难点是保存,删除,读取,那一段代码时,遇到了很多困难,有些地方自己想不到,但是学长指教之后又觉得确实是这样。反思了一下,觉得还是自己没有多思考,没有多练习。还有指针,掌握的不是很好,我觉得也是一个难点。通过这次实训,我发现自己以前知道的都是一些皮毛,不能把知识连贯起来,运用在实践中。平时思考的太少,只是把知识生搬硬套,背下来,没有很好的理解,消化。平时用于C语言练习的时间太少。通过这次学习,不仅知道了很多知识,还让我知道了,以后的C语言该如何让学习程序代码(淘宝店铺
11、店铺号 7045258)#include #include #include LRESULT CALLBACK WndProc( HWND,UINT,WPARAM,LPARAM);/函数声明void create(HWND hwnd,LPARAM lParam);void print();void command();void Input();/输入学生信息 void Pdisplay();/显示学生信息void Adisplay();/显示学生信息void Revise();/修改学生信息void Delete();/删除学生信息 void save();/保存void readdata()
12、;/导入void Exit();/退出void open();/打开文件目录void display();/显示全部RECT rect;RECT rect0;RECT rect1;RECT rect2;RECT rect3;RECT rect4;RECT rect5;RECT rect6;RECT rect7;RECT rect8;RECT rect9;RECT rect10;RECT rect11;RECT rect12;RECT rect13;RECT rect14;int abcd=0;HDC hDC;HWND hwnd ;PAINTSTRUCT paint;struct pata lo
13、ng num;/学号 char pname20;/院系名称 int year;/入学日期 int month; int day; char name20;/姓名 long amount; struct pata *next;struct pata head=0, ;int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow ) static TCHAR szAppName = TEXT( demo ) ; MSG Msg ; WNDCLASS wndclass ;
14、wndclass.lpfnWndProc = WndProc ; wndclass.style = CS_HREDRAW | CS_VREDRAW ; wndclass.hInstance = hInstance ; wndclass.cbClsExtra = 0 ; wndclass.cbWndExtra = 0 ; wndclass.hbrBackground = (HBRUSH) CreateSolidBrush(RGB(0,0,0); wndclass.hCursor = LoadCursor( NULL, IDC_ARROW ) ; wndclass.hIcon = LoadIcon( NULL, IDI_APPLICATION ) ; wndclass.lpszClassName = szAppName ; wndclass.lpszMenuName = NULL ; if( !RegisterClass(&wndclass) ) MessageBox( NULL, TEXT(错误?), TEXT(错误), M