您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > Windows编程大作业
Windows编程课程作业(2010-2011学年第2学期)课程名称:Windows编程技术学号:学生姓名:专业班级:学院:学生成绩:1引言项目背景随着人们只是层次的提高,图书馆成为日常生活中不可缺少的一部分。而图书馆的存书量和业务量庞大,仅仅靠传统的记账管理是不可行的。图书管理系统应运而生,并逐渐成为信息化建设的重要组成部分。图书管理系统为学校或社会型图书馆的管理员提供所有借阅者信息,以及管内图书库存信息。对借书与还书两大功能进行合理操纵。在很大程度上方便了图书管理工作。于是在课程设计方面选择了图书管理系统作为Windows编程课程设计的题目。2需求分析2.1程序功能(1)读者信息的添加,删除,查找,修改,清空(2)图书信息的添加,查找(3)读者借书,还书功能2.2数据读者信息:读者编号,姓名,联系电话图书信息:图书编号,名称,数量,类别借阅信息:读者编号,图书编号2.3环境开发环境:MicrosoftVisualC++6.0运行环境:(1)硬件要求:CPU奔腾4处理器以上(2)软件要求:XP/Vista操作系统3总体设计3.1总体架构整个图书馆里系统分为四个模块。分别为,读者信息模块,图书信息模块,图书借阅模块和读者还书模块。各模块的主要功能如下:图书管理系统读者信息相关模块图书信息相关模块读者借书模块读者还书模块读者信息添加模块读者信息查找模块读者信息删除模块读者信息修改模块读者信息清空模块图书信息添加模块图书信息查找模块确认读者信息模块确认读者借书模块确认读者信息模块确认读者借书模块3.2模块划分(1)读者信息相关模块设计在此模块中,创建一个新类,命名为ReaderInfomation,顾名思义,用来编写进行对读者信息各种操作的代码。函数及变量一览如下:实现读者信息相关操作,对于总对话框的设计如下图:读者信息添加模块此模块的功能是将借阅者信息保存到系统中,在这个模块中实现了对读者编号,姓名和联系电话的添加,并带有重号提醒功能。添加成功的读者信息可以在读者信息总览列表框中显示出来。参考程序段如下:voidCReaderItem::OnBottonAddReader()//添加读者信息{//TODO:AddyourcontrolnotificationhandlercodehereCStringf_reader_name,f_reader_num,f_reader_phone,f_add_whole;CString/*读者编号校验变量*/check_reader_num;//在编辑框中获取读者信息GetDlgItem(IDC_EDIT_READER_NUM)-GetWindowText(f_reader_num);//读者编号校验变量获得输入的编号check_reader_num=f_reader_num;//插入重号处理操作for(inti=0;ireader_num;i++){if(reader[i].GetReaderNum()==check_reader_num){MessageBox(该读者编号已存在,请核对!);//清空读者编号校验变量check_reader_num=&&&&&&&&&;return;}}GetDlgItem(IDC_EDIT_READER_NAME)-GetWindowText(f_reader_name);GetDlgItem(IDC_EDIT_READER_PHONE)-GetWindowText(f_reader_phone);//添加读者信息-并保存到读者信息对象中reader[reader_num].SaveReaderInformation(f_reader_num,f_reader_name,f_reader_phone);//初始化读者可借书籍数目reader[reader_num].InitReader_borrow_book_num();//初始化后,读者可借书籍数目总数为10//读者总数+1reader_num++;//读者总数+1//连接总串f_add_whole=f_reader_num++f_reader_name++f_reader_phone;//在添加读者信息列表框显示m_all_reader_show.AddString(f_add_whole);MessageBox(添加成功!);}读者信息查找模块此模块的功能实在已添加的读者信息中通过输入的读者编号找到想要查找对应的读者信息。并带有刷新查找列表框,排除在同一列表框显示多人混淆目标的情况,以及对查无对应读者信息的提示处理。具体程序段如下:voidCReaderItem::OnBottonFindReader()//查找读者信息{//TODO:AddyourcontrolnotificationhandlercodehereCStringf_reader_num,f_add_whole;CString/*读者编号校验变量*/check_reader_num;intcheck_flag=0;//查找结果标志,0为没找到,1为找到//清空列表框m_find_reader_show.ResetContent();//在编辑框中获取读者信息GetDlgItem(IDC_EDIT_READER_NUM)-GetWindowText(f_reader_num);//读者编号校验变量获得输入的编号check_reader_num=f_reader_num;for(inti=0;ireader_num;i++)//进行查找{if(reader[i].GetReaderNum()==check_reader_num){//获取读者信息reader[i].GetReaderItem(f_add_whole);//显示在列表框中m_find_reader_show.AddString(reader[i].GetReaderItem(f_add_whole));//置找到标志为1check_flag=1;//清空读者编号校验变量check_reader_num=&&&&&&&&&;}}if(check_flag==0)MessageBox(对不起,查无此读者!);}读者信息删除模块此模块对要清除的读者信息进行删除,不但从列表框能清楚对应读者的信息,也能在内存中实际删除信息,实现显示与控制同步的过程。并带有提示请使用者确定是否删除的选择权。具体程序段如下:voidCReaderItem::OnBottonDelReader2()//删除读者信息函数{//TODO:Addyourcontrolnotificationhandlercodehereintcursel=m_all_reader_show.GetCurSel();//光标锁定if(cursel==-1){MessageBox(没有选中);return;}else{if(IDYES==MessageBox(是否删除,删除对话框,MB_ICONHAND|MB_YESNO)){for(intk=cursel;kreader_num-1;k++)reader[k]=reader[k+1];m_all_reader_show.DeleteString(cursel);reader_num--;}}}读者信息修改模块此模块是对读者信息进行修改,通过选中列表框的读者信息条目,用双击鼠标消息响应来弹出修改窗口,让使用者将修改的数据重新填入,并将修改后的数据重新显示在列表框内。具体程序段如下:voidCReaderItem::OnDblclkAllReaderList()//修改读者信息引入函数{//TODO:AddyourcontrolnotificationhandlercodehereUpdateData();CStringstradd;cursel_ch=m_all_reader_show.GetCurSel();//选定的行CChangechange;change.DoModal();m_all_reader_show.DeleteString(cursel_ch);//删除原行m_all_reader_show.AddString(reader[cursel_ch].GetReaderItem(stradd));//显示新信息UpdateData(false);}//双击后,将弹出新对话框,如下图:对于上图中修改对话框的程序段,如下:voidCChange::OnBottonChange(){//TODO:AddyourcontrolnotificationhandlercodehereCStringf_reader_name,f_reader_num,f_reader_phone,f_add_whole;CString/*读者编号校验变量*/check_reader_num;//在编辑框中获取读者信息GetDlgItem(IDC_EDIT_READER_NUM)-GetWindowText(f_reader_num);//读者编号校验变量获得输入的编号check_reader_num=f_reader_num;//插入重号处理操作for(inti=0;ireader_num;i++){if(reader[i].GetReaderNum()==check_reader_num&&(i!=cursel_ch)){MessageBox(该读者编号已存在,请核对!);//清空读者编号校验变量check_reader_num=&&&&&&&&&;return;}}GetDlgItem(IDC_EDIT_READER_NAME)-GetWindowText(f_reader_name);GetDlgItem(IDC_EDIT_READER_PHONE)-GetWindowText(f_reader_phone);//将新信息存到读者对象中reader[cursel_ch].SetReaderItem(f_reader_num,f_reader_name,f_reader_phone);CDialog::OnOK();}读者信息清空模块此模块只清空除读者信息总览列表框以外的控件内信息。只要点击清除按钮,就可以实现此功能。具体程序段如下:voidCReaderItem::OnBottonCleanReader()//清空读者信息显示函数{//TODO:Addyourcontrolnotificationhandlercodehere//清编辑框GetDlgItem(IDC_EDIT_READER_NUM)-SetWindowText();GetDlgItem(IDC_EDIT_READER_NAME)-SetWindowText();GetDlgItem(IDC_EDIT_READER_PHONE)-SetWindowText();//清列表框//m_all_reader_show.ResetContent();m_find_reader_show.ResetContent();}(2)图书信息相关模块设计此模块是对图书馆内图书信息进行操作的部分,图书信息包括图书编号,图书类别和图书的库存数量。在模块中可以实现对图书信息的添加、查找、借书和还书功能。对话框窗口设计如下图:在程序内部,创建了一个新类,通过各种成员函数来实现对应的图书信息操作。类成员列表如下图:图书信息添加模块此模块的作用类似于读者信息添加模块,可以对图书信息进行添加,并实现了重号报错等功能。添加成功的信息可以在图书信息总览列表框内显示出来。具体程序段如下:voidCBookItemDlg::OnBottonAddBook()//添加图书信息{//TODO:Addyourcontrolnotificationhandlercodeherecharf_book_num_string[20]=;CStringf_book_code,f_book_name,f_book_kind,f_boo
本文标题:Windows编程大作业
链接地址:https://www.777doc.com/doc-5750987 .html