![Windows编程大作业_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-4/7/eb88d4d5-c308-4d4f-94dc-4fb8f17dcd33/eb88d4d5-c308-4d4f-94dc-4fb8f17dcd331.gif)
![Windows编程大作业_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-4/7/eb88d4d5-c308-4d4f-94dc-4fb8f17dcd33/eb88d4d5-c308-4d4f-94dc-4fb8f17dcd332.gif)
![Windows编程大作业_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-4/7/eb88d4d5-c308-4d4f-94dc-4fb8f17dcd33/eb88d4d5-c308-4d4f-94dc-4fb8f17dcd333.gif)
![Windows编程大作业_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-4/7/eb88d4d5-c308-4d4f-94dc-4fb8f17dcd33/eb88d4d5-c308-4d4f-94dc-4fb8f17dcd334.gif)
![Windows编程大作业_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-4/7/eb88d4d5-c308-4d4f-94dc-4fb8f17dcd33/eb88d4d5-c308-4d4f-94dc-4fb8f17dcd335.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上Windows编程课程作业(20 10 -20 11 学年第 2 学期)课程名称: Windows编程技术 学 号: 学生姓名: 专业班级: 学 院:学生成绩: 1引言项目背景随着人们只是层次的提高,图书馆成为日常生活中不可缺少的一部分。而图书馆的存书量和业务量庞大,仅仅靠传统的记账管理是不可行的。图书管理系统应运而生,并逐渐成为信息化建设的重要组成部分。图书管理系统为学校或社会型图书馆的管理员提供所有借阅者信息,以及管内图书库存信息。对借书与还书两大功能进行合理操纵。在很大程度上方便了图书管理工作。于是在课程设计方面选择了图书管理系统作为Windows编程课程设计的
2、题目。2 需求分析2.1程序功能(1)读者信息的添加,删除,查找,修改,清空(2)图书信息的添加,查找(3)读者借书,还书功能2.2数据读者信息:读者编号,姓名,联系电话图书信息:图书编号,名称,数量,类别借阅信息:读者编号,图书编号2.3环境开发环境:Microsoft Visual C+6.0运行环境:(1)硬件要求:CPU奔腾4处理器以上(2)软件要求:XP/Vista操作系统3 总体设计3.1总体架构整个图书馆里系统分为四个模块。分别为,读者信息模块,图书信息模块,图书借阅模块和读者还书模块。各模块的主要功能如下:3.2模块划分(1)读者信息相关模块设计在此模块中,创建一个新类,命名为
3、ReaderInfomation,顾名思义,用来编写进行对读者信息各种操作的代码。函数及变量一览如下:实现读者信息相关操作,对于总对话框的设计如下图:读者信息添加模块此模块的功能是将借阅者信息保存到系统中,在这个模块中实现了对读者编号,姓名和联系电话的添加,并带有重号提醒功能。添加成功的读者信息可以在读者信息总览列表框中显示出来。参考程序段如下:void CReaderItem:OnBottonAddReader() /添加读者信息/ TODO: Add your control notification handler code hereCString f_reader_name,f_rea
4、der_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(int i=0;i<reader_num;i+)if(readeri.GetReaderNum()=check_reader_num)MessageBox("该读者编号已
5、存在,请核对!");/清空读者编号校验变量check_reader_num="&&&&&&&&&"return;GetDlgItem(IDC_EDIT_READER_NAME)->GetWindowText(f_reader_name);GetDlgItem(IDC_EDIT_READER_PHONE)->GetWindowText(f_reader_phone);/添加读者信息-并保存到读者信息对象中readerreader_num.SaveReaderInformation(f
6、_reader_num,f_reader_name,f_reader_phone);/初始化读者可借书籍数目readerreader_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(&qu
7、ot;添加成功!");读者信息查找模块此模块的功能实在已添加的读者信息中通过输入的读者编号找到想要查找对应的读者信息。并带有刷新查找列表框,排除在同一列表框显示多人混淆目标的情况,以及对查无对应读者信息的提示处理。具体程序段如下:void CReaderItem:OnBottonFindReader() /查找读者信息/ TODO: Add your control notification handler code hereCString f_reader_num,f_add_whole;CString /*读者编号校验变量*/check_reader_num;int check_
8、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(int i=0;i<reader_num;i+)/进行查找if(readeri.GetReaderNum()=check_reader_num)/获取读者信息readeri.GetReaderItem(f_add
9、_whole);/显示在列表框中m_find_reader_show.AddString(readeri.GetReaderItem(f_add_whole);/置找到标志为1check_flag=1;/清空读者编号校验变量check_reader_num="&&&&&&&&&"if(check_flag=0)MessageBox("对不起,查无此读者!");读者信息删除模块此模块对要清除的读者信息进行删除,不但从列表框能清楚对应读者的信息,也能在内存中实际删除信息,实现显示与控制同
10、步的过程。并带有提示请使用者确定是否删除的选择权。具体程序段如下:void CReaderItem:OnBottonDelReader2() /删除读者信息函数/ TODO: Add your control notification handler code hereint cursel=m_all_reader_show.GetCurSel();/光标锁定if(cursel=-1)MessageBox("没有选中");return;else if(IDYES=MessageBox("是否删除","删除对话框",MB_ICONHAN
11、D|MB_YESNO)for(int k=cursel;k<reader_num-1;k+)readerk=readerk+1;m_all_reader_show.DeleteString(cursel);reader_num-;读者信息修改模块此模块是对读者信息进行修改,通过选中列表框的读者信息条目,用双击鼠标消息响应来弹出修改窗口,让使用者将修改的数据重新填入,并将修改后的数据重新显示在列表框内。具体程序段如下:void CReaderItem:OnDblclkAllReaderList() /修改读者信息引入函数/ TODO: Add your control notificati
12、on handler code hereUpdateData();CString stradd;cursel_ch=m_all_reader_show.GetCurSel();/选定的行CChange change;change.DoModal();m_all_reader_show.DeleteString(cursel_ch);/删除原行m_all_reader_show.AddString(readercursel_ch.GetReaderItem(stradd);/显示新信息UpdateData(false);/双击后,将弹出新对话框,如下图:对于上图中修改对话框的程序段,如下:voi
13、d CChange:OnBottonChange() / TODO: Add your control notification handler code hereCString f_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_n
14、um;/插入重号处理操作for(int i=0;i<reader_num;i+)if(readeri.GetReaderNum()=check_reader_num&&(i!=cursel_ch)MessageBox("该读者编号已存在,请核对!");/清空读者编号校验变量check_reader_num="&&&&&&&&&"return;GetDlgItem(IDC_EDIT_READER_NAME)->GetWindowText(f_reader_n
15、ame);GetDlgItem(IDC_EDIT_READER_PHONE)->GetWindowText(f_reader_phone);/将新信息存到读者对象中readercursel_ch.SetReaderItem(f_reader_num,f_reader_name,f_reader_phone);CDialog:OnOK();读者信息清空模块此模块只清空除读者信息总览列表框以外的控件内信息。只要点击清除按钮,就可以实现此功能。具体程序段如下:void CReaderItem:OnBottonCleanReader() /清空读者信息显示函数/ TODO: Add your c
16、ontrol notification handler code here/清编辑框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.Reset
17、Content();(2) 图书信息相关模块设计此模块是对图书馆内图书信息进行操作的部分,图书信息包括图书编号,图书类别和图书的库存数量。在模块中可以实现对图书信息的添加、查找、借书和还书功能。对话框窗口设计如下图:在程序内部,创建了一个新类,通过各种成员函数来实现对应的图书信息操作。类成员列表如下图: 图书信息添加模块此模块的作用类似于读者信息添加模块,可以对图书信息进行添加,并实现了重号报错等功能。添加成功的信息可以在图书信息总览列表框内显示出来。具体程序段如下:void CBookItemDlg:OnBottonAddBook() /添加图书信息/ TODO: Add your cont
18、rol notification handler code herechar f_book_num_string20=""CString f_book_code,f_book_name,f_book_kind,f_book_total,f_book_num_cstring;int f_book_num_int;CString check_book_code;GetDlgItem(IDC_EDIT_BOOK_CODE)->GetWindowText(f_book_code);/图书编号校验变量获得输入的编号check_book_code=f_book_code;/插入重
19、号处理操作for(int i=0;i<book_num;i+)if(booki.GetBookCode()=check_book_code)MessageBox("该图书编号已存在,请核对!");/清空图书编号校验变量check_book_code="&&&&&&&&&"return;/f_book_num_int=m_book_num;/f_book_num_cstring=itoa(f_book_num_int,f_book_num_string,10);GetDlgIte
20、m(IDC_EDIT_BOOK_NAME)->GetWindowText(f_book_name);GetDlgItem(IDC_EDIT_BOOK_NUM)->GetWindowText(f_book_num_cstring);/将图书信息对象中的图书数量变量进行转换,将CString转换成intf_book_num_int=atoi(f_book_num_cstring);/选中已查找到的图书int index=m_book_kind.GetCurSel();m_book_kind.GetLBText(index,f_book_kind);f_book_total=f_book
21、_code+" "+f_book_name+" "+f_book_kind+" "+f_book_num_cstring;/保存书籍信息bookbook_num.SaveBookItem(f_book_code,f_book_name,f_book_num_int,f_book_kind);book_num+;/在图书总揽列表中显示m_all_book_show.AddString(f_book_total);MessageBox("添加成功!");图书信息查找模块此模块是对确定了图书编号的图书进行查找的部分,通过
22、在图书编号编辑框输入想要查找的图书编号,然后鼠标单击查找图书按钮,就会在查找列表框显示对应的图书信息,但是若欲查找的图书编号不存在,则提示说此图书不存在。具体程序段如下:void CBookItemDlg:OnBottonFindBook() / TODO: Add your control notification handler code hereCString f_book_code,f_book_total;CString /*图书编号校验变量*/check_book_code;int check_flag=0;/查找结果标志,0为没找到,1为找到/清空列表框m_find_book_s
23、how.ResetContent();/在编辑框中获取图书信息GetDlgItem(IDC_EDIT_BOOK_CODE)->GetWindowText(f_book_code);/读者编号校验变量获得输入的编号check_book_code=f_book_code;for(int i=0;i<book_num;i+)/进行查找if(booki.GetBookCode()=check_book_code)/把查找到的书籍序号获得cursel_find_book_show=i;/获取图书信息total_string_among_function=booki.GetBookItem(f
24、_book_total);/显示在列表框中m_find_book_show.AddString(booki.GetBookItem(f_book_total);/置找到标志为1check_flag=1;/清空图书编号校验变量check_book_code="&&&&&&&&&"if(check_flag=0)MessageBox("对不起,查无此图书!");cursel_find_book_show=-1;读者借阅图书模块此模块实现已登记于图书馆内的读者借出图书操作。首先通过输入图书
25、编号查找到想要借阅的图书,然后在图书信息检索列表框内选中查找到的图书,鼠标单击借阅图书,就会弹出图书借阅对话框,首先输入读者编号并单击缺人读者调出读者信息,如果读者存在可以单机确定借书按钮进行确认,如果读者可借书数目已为零,则会弹出提示提醒使用者。如果书籍借出,则读者信息确认列表框中读者可借书数量会减一。关闭借书对话框后,会发现图书信息检索列表框和图书信息总览列表框对应刚借出的图书数量也已减一,从而实现了图书的借阅。在图书信息对话框中的程序段如下:void CBookItemDlg:OnBottonBorrowBook() /借阅图书/ TODO: Add your control notif
26、ication handler code hereUpdateData();CString f_add_whole;int get_book_num;CBorrowBookDlg BorrowBookDlg;if(cursel_find_book_show!=-1)/对应选中书籍/获得图书剩余数量get_book_num=bookcursel_find_book_show.GetBookNum();if(book_num=0)MessageBox("对不起,当前没有图书!");return;if(get_book_num=0)MessageBox("对不起,该图书
27、数量为0,无法借出!");return;BorrowBookDlg.DoModal();/删除原行m_all_book_show.DeleteString(cursel_find_book_show);/清空列表框m_find_book_show.ResetContent();/显示新数据m_find_book_show.AddString(bookcursel_find_book_show.GetBookItem(f_add_whole);m_all_book_show.AddString(bookcursel_find_book_show.GetBookItem(f_add_wh
28、ole);else MessageBox("没有相关书籍资料!");return;UpdateData(false);图书借阅对话框如下图:实现程序段如下:void CBorrowBookDlg:OnBorrowBook()/确定借书/ TODO: Add your control notification handler code hereCString f_add_whole;int get_reader_borrow_book_num,get_book_num;/判断是否选中书籍if(cursel_find_book_show=-1)MessageBox("
29、没有确定相关书籍!");return;/获得读者可借书籍数量get_reader_borrow_book_num=readerreader_count.GetReader_Borrow_book_num();/判断读者是否还可借出if(get_reader_borrow_book_num=0)MessageBox("对不起,借书数量超额!");return;/获得图书剩余数量/*get_book_num=bookcursel_find_book_show.GetBookNum();if(get_book_num=0)MessageBox("对不起,该图书
30、数量为0,无法借出!");return;*/else/对应书籍借出bookcursel_find_book_show.Borrow_Out();/该读者借书成功,可借书数目-1readerreader_count.BorrowBook();/清空读者列表m_reader_id_show.ResetContent();/获取读者信息f_add_whole=readerreader_count.GetReader_Book_Item();/重新在读者信息列表显示m_reader_id_show.AddString(f_add_whole);读者归还图书模块此模块实现了读者将确定编号的图书
31、归还给图书馆的系列操作。通过在图书信息对话框中的图书编号编辑框输入欲还书的编号,然后查找到该图书,之后鼠标单击归还图书按钮就会弹出还书对话框。在还书对话框中的读者编号编辑框中输入欲还书的读者编号,单击确认读者,如果读者存在,则将对应读者信息在下方列表框中显示,如果不存在则提示使用者无此读者。在鼠标单击确认还书之后,读者可借书数量加一,关闭还书对话框后,会看到图书信息检索列表框和图书信息总览列表框中的对应刚还的书的数量也会加一,从而实现了还书的功能。在图书信息对话框中还书操作的程序段如下:void CBookItemDlg:OnBottonReturnBook() /=还书/ TODO: Add
32、 your control notification handler code hereUpdateData();CString f_add_whole;CReturnBookDlg ReturnBookDlg;if(cursel_find_book_show!=-1)/对应选中书籍if(book_num=0)MessageBox("对不起,当前没有图书!");return;ReturnBookDlg.DoModal();/删除原行m_all_book_show.DeleteString(cursel_find_book_show);/清空列表框m_find_book_sh
33、ow.ResetContent();/显示新数据m_find_book_show.AddString(bookcursel_find_book_show.GetBookItem(f_add_whole);m_all_book_show.AddString(bookcursel_find_book_show.GetBookItem(f_add_whole);else MessageBox("没有选中!");return;UpdateData(false);还书对话框设计如下图:确定还书程序段如下:void CReturnBookDlg:OnConfReturn() /确定还书
34、/ TODO: Add your control notification handler code hereCString f_add_whole;/对应书籍归还bookcursel_find_book_show.Return();/该读者还书成功,可借书数目-1readerreader_count.ReturnBook();/清空读者列表m_returnbook_reader_show.ResetContent();/获取读者信息f_add_whole=readerreader_count.GetReader_Book_Item();/重新在读者信息列表显示m_returnbook_rea
35、der_show.AddString(f_add_whole);4关键技术和算法(1)对读者信息进行修改void CChange:OnBottonChange() / TODO: Add your control notification handler code hereCString f_reader_name,f_reader_num,f_reader_phone,f_add_whole;CString /*读者编号校验变量*/check_reader_num;/在编辑框中获取读者信息GetDlgItem(IDC_EDIT_READER_NUM)->GetWindowText(f_
36、reader_num);/读者编号校验变量获得输入的编号check_reader_num=f_reader_num;/插入重号处理操作for(int i=0;i<reader_num;i+)if(readeri.GetReaderNum()=check_reader_num&&(i!=cursel_ch)MessageBox("该读者编号已存在,请核对!");/清空读者编号校验变量check_reader_num="&&&&&&&&&"return;GetDlgItem(IDC_EDIT_READER_NAME)->GetWindowText(f_reader_name);GetDlgItem(IDC_EDIT_R
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- OVA-PEG-Cy3-生命科学试剂-MCE-7080
- JCS-1-生命科学试剂-MCE-4278
- 二零二五年度厂房物业管理与员工食堂运营合同
- 2025年度股权融资协议书范本
- 2025年度文化产业过桥垫资合作协议书
- 二零二五年度税务筹划与税务筹划财务解决方案合同
- 2025年度全屋智能家居装修质保服务合同模板
- 施工现场施工防自然灾害侵袭威胁制度
- 医疗护理医学培训 小学二年级健康课课件
- DB 3705T 49-2024黄河口滩区肉羊疫病防控技术规范
- 医疗器械质量管理体系文件模板
- 秦始皇嬴政人物生平介绍PPT
- 在马克思墓前的讲话说课稿公开课一等奖市赛课获奖课件
- 骨科无痛病房的建立
- 送养收养合同协议书
- 塑料成型模具设计(第2版)江昌勇课件0-导论
- 汉语拼音发音口型及配图
- 五年级下册《Lesson 11 Shopping in Beijing》教案冀教版三年级起点小学英语-五年级英语教案
- 绩效考核管理医院绩效分配方案包括实施细则考核表
- 大学成绩单(大专)
- 网络设备安装与调试(华为eNSP模拟器)整套教学课件
评论
0/150
提交评论