1、课程设计任务书一、设计内容及要求1. 设计目的 学生根据所学的数据库原理与程序设计的知识,能够针对一个小型的数据库管理系统,进行系统的需求分析,系统设计,数据库设计,编码,测试等,完成题目要求的功能,从而达到掌握开发一个小型数据库的目的。2.设计内容 1必须设计的数据表:药品分类代码表,药品库存表,供货商信息表,采购信息表等。 2功能模块1)新药品的入库。2)过期药品的出库登记、处理记录。3)药品库存检索。4)供货商信息检索。5)药品采购记录管理。6)药品用药说明信息管理。7)输出相应的数据报表。二、设计原始资料(1)电子出版社出版的VISUAL C+ 程序设计及应用,贺怀清等编著.(2)高等
2、教育出版社出版的数据库系统简明教程,王珊。三、设计完成后提交的文件1课程设计报告(30005000字),纸质打印稿及电子版(1)需求分析(功能模块层次图)(2)系统设计(包括详细设计和界面设计)(3)代码设计(主要功能函数)(4)测试记录(测试各项功能的正确性、容错性)(5)课程设计总结2系统程序演示。3课程设计任务书。2图纸部分:程序流程图主菜单过期药品删除查找药品用药显示供货商信息显示采购信息查询药品库存退出新药品入库程序结束程序开始四、进度计划10月08日-10月12日完成需求分析和系统设计;10月13日-10月16日完成代码设计;10月17日-10月20日测试和调试;10月21日参加答
3、辩。五、主要参考资料1. 李闽溟等.Visual C+ 6.0 数据库系统开发实例导航M. 北京:人民邮电出版社2. 闪四清.数据库系统原理与应用教程M.清华大学出版社成 绩 评 定 表作品成绩报告成绩口试(答辩)成绩总评成绩摘 要课程设计是我们在学习和掌握所学知识的基础上结合实际应用而进行的一次综合分析设计能力的训练。为了提高我们的实践能力、创造力和解决实际问题的能力,进一步认识到实践对于学习的重要性,学校安排我们进行了为期两周的面向对象课程设计。职工信息管理系统程序的功能是,根据职工信息表,建立只含有姓名和年龄的职工信息简表;可以通过不同的方式对建立的信息表中的职工信息进行添加、删除、修改
4、等,并显示信息;可以实现按不同类别输出职工信息等功能。通过这次课程设计,使我们更加熟悉的掌握了Visual C+语言的运用。帮助我们熟悉了更多Visual C+语言的功能,提高了我们的动手能力,学到了许多解决实际问题的宝贵经验同时也挖掘出了我们潜在的能力,使我们对自己更有自信,对编程也更有兴趣。我相信,只要努力、勤奋、坚持不懈,就没有什么做不到的事,不能还没开始就退缩,要勇于拼搏,敢于创新。目 录1课程设计概述1.1药品进销存信息管理系统题目及简介1.2开发环境概述2药品进销存信息管理系统软件总体设计2.1药品进销存信息管理系统软件总体设计思想2.2总体设计流程图3药品进销存管理系码.4程序测
5、试4.1 主菜单界面.4.2 增加药品信息界面.4.3 删除过期药品界面. 4.4 查找药品用药界面. 4.5 药品采购信息界面. .4.6 药品库存界面. .4.7 供货商信息界面. 4.8 显示所有药品信息.4.9 退出功能界面. 设计体会及今后的改进意见参考文献1 课程设计概述1.1药品进销存信息管理系统题目及简介1. 设计目的 学生根据所学的数据库原理与程序设计的知识,能够针对一个小型的数据库管理系统,进行系统的需求分析,系统设计,数据库设计,编码,测试等,完成题目要求的功能,从而达到掌握开发一个小型数据库的目的。2.设计内容 1必须设计的数据表:药品分类代码表,药品库存表,供货商信息
6、表,采购信息表等。 2功能模块1)新药品的入库。2)过期药品的出库登记、处理记录。3)药品库存检索。4)供货商信息检索。5)药品采购记录管理。6)药品用药说明信息管理。7)输出相应的数据报表。1.2开发环境概述Visual C+是微软公司的重要产品之一, 是一种功能强大行之有效的可视化编程工具。它提供了MFC类库,使用户可以方便的开发自己想实现的功能。Visual C+6.0的主要特点:(1)自动化和宏功能。(2)可以灵活地定制工具栏和菜单。(3)可以直接运行和调试程序,还可以使用宏语言来自动操作调试器。(4)支持Internet连接。(5)一个新的便捷的项目系统可以允许一个工作区内包含多个不
7、同的项目类型。(6)在工作区内可以包含多个并列的工程文件。(7)可以在对话框中使用WizardBar将程序同可视化元素联系起来。(8)Find in File命令支持两个独立的输出窗格,可以保存上一次搜索的结果。这些新特性可以更好地利用Visual C+开发工具进行Windows应用程序开发。2药品进销存信息管理系统软件总体设计2.1药品进销存信息管理系统软件总体设计思想药品进销存信息系统的功能为实现输入数据的存储与读取,同时可添加,删除,查看药品信息药品进销存信息系统的功能模块有:(1)提供菜单界面,方便用户对程序功能进行选择。(2)接受用户输入的数据,例如药品名,药品代码,药品用量、等(3
8、)除了添加数据之外,还可以进行删除、查看、增加等操作。程序分为多个小模块,通过调用实现各种功能,增强了程序的可建设性。2.2总体设计流程图主菜单查看供货商信息药品用药信息显示供货商信息删除过期药品显示所有信息退出增加药品信息程序结束程序开始3药品进销存信息管理系统程序源代码登陆界面的代码:void Cdenglu:OnOK() / TODO: Add extra validation hereUpdateData();if(m_name=hao&m_mima=123)CDialog:OnOK();else MessageBox(用户名或密码错误,请重新输入!);void Cdenglu:OnC
9、ancel() / TODO: Add extra cleanup here:PostMessage(GetParent()- m_hWnd, WM_QUIT, NULL, NULL);CDialog:OnCancel();刚登录后进入各个子界面的代码:void CMy2View:OnInitialUpdate() CView:OnInitialUpdate();/ TODO: Add your specialized code here and/or call the base classCdenglu denglu;denglu.DoModal();void CMy2View:OnCaid
10、ou() / TODO: Add your command handler code hereCcaigou2 caigou;caigou.DoModal();void CMy2View:OnExit() / TODO: Add your command handler code hereexit(0);void CMy2View:OnGuoqi() / TODO: Add your command handler code hereCguoqi guoqi;guoqi.DoModal();void CMy2View:OnKucun() / TODO: Add your command han
11、dler code hereCkucun2 kucun;kucun.DoModal();void CMy2View:OnMan() / TODO: Add your command handler code hereCman2 man;man.DoModal();void CMy2View:OnRuku() / TODO: Add your command handler code hereCruku2 ruku2;ruku2.DoModal();void CMy2View:OnShowall() / TODO: Add your command handler code hereCshow
12、show;show.DoModal();void CMy2View:OnYongyao() / TODO: Add your command handler code hereCyongyao yongyao;yongyao.DoModal();新药品入库代码:BOOL Ckucun2:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization herem_kucunlist.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);LV_COLUMN h;h
13、.mask=LVCF_FMT|LVCF_TEXT|LVCF_WIDTH;h.fmt=LVCFMT_CENTER;h.cx=120;h.pszText=药品代码;m_kucunlist.InsertColumn(0,&h);h.pszText=药品库存量;m_kucunlist.InsertColumn(1,&h);h.pszText=药品维持天数;m_kucunlist.InsertColumn(2,&h);return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pag
14、es should return FALSEvoid Ckucun2:OnBUTTONkucunxianshi() / TODO: Add your control notification handler code herem_kucunlist.DeleteAllItems();Ckucun1 kucun;CString s;kucun.Open();int i=0;kucun.MoveFirst();while(!kucun.IsEOF()m_kucunlist.InsertItem(i,kucun.m_column1);/m_kucunlist.SetItemText(i,0,kucu
15、n.m_column1);s.Format(%d,kucun.m_column2);m_kucunlist.SetItemText(i,1, s);s.Format(%d,kucun.m_column3);m_kucunlist.SetItemText(i,2, s);kucun.MoveNext();i+;void Ckucun2:OnBUTTONchakucun() / TODO: Add your control notification handler code herem_kucunlist.DeleteAllItems();CString s;Ckucun1 luru;luru.O
16、pen();luru.MoveFirst();UpdateData();int i=0;while(!luru.IsEOF()if(luru.m_column1=m_kucuncode) m_kucunlist.InsertItem(i,luru.m_column1);s.Format(%d,luru.m_column2);m_kucunlist.SetItemText(i,1,s);s.Format(%d,luru.m_column3);m_kucunlist.SetItemText(i,2,s);i+;luru.MoveNext();void Ckucun2:OnBUTTONadd() /
17、 TODO: Add your control notification handler code hereint i=0;Ckucun1 kucun;kucun.Open();CString s;UpdateData();/ruku.MoveFirst();kucun.AddNew();kucun.m_column1=m_addkucuncode;kucun.m_column2=atoi(m_kucunnumber);kucun.m_column3=atoi(m_kucunday);kucun.Update();kucun.MoveLast();m_kucunlist.InsertItem(
18、i,kucun.m_column1);s.Format(%d,kucun.m_column2);m_kucunlist.SetItemText(i,1,s);s.Format(%d,kucun.m_column3);m_kucunlist.SetItemText(i,2,s);i+;过期前药品删除股代码:BOOL Cguoqi:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization herem_guoqilist.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRI
19、DLINES);LV_COLUMN h;h.mask=LVCF_FMT|LVCF_TEXT|LVCF_WIDTH;h.fmt=LVCFMT_CENTER;h.cx=100;h.pszText=药品代码;m_guoqilist.InsertColumn(0,&h);h.pszText=药品名称;m_guoqilist.InsertColumn(1,&h);h.pszText=药品类型;m_guoqilist.InsertColumn(2,&h);h.pszText=药品功能;m_guoqilist.InsertColumn(3,&h);h.pszText=药品用药;m_guoqilist.Ins
20、ertColumn(4,&h);h.pszText=药品的有效期;m_guoqilist.InsertColumn(5,&h);h.pszText=药品生产日期;m_guoqilist.InsertColumn(6,&h);return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSEvoid Cguoqi:OnButtonGuoqiok() / TODO: Add your control notification hand
21、ler code hereint a=0;Cruku1 ruku;int row=m_guoqilist.GetSelectionMark();CString s;s=m_guoqilist.GetItemText(row,0);if(s=)MessageBox(请选择一个要删除的记录!);elseMessageBox(该药品已过期!);if(MessageBox(确定要删除记录吗?,删除询问,MB_OKCANCEL|MB_ICONQUESTION)=IDOK)ruku.Open();ruku.Move(row);ruku.Delete();m_guoqilist.DeleteItem(row
22、);void Cguoqi:OnBUTTONguoqixianshi() / TODO: Add your control notification handler code herem_guoqilist.DeleteAllItems();Cruku1 ruku;ruku.Open();int i=0,j=0;ruku.MoveFirst();while(!ruku.IsEOF()m_guoqilist.InsertItem(i, ruku.m_column1);m_guoqilist.SetItemText(i,1, ruku.m_column2);m_guoqilist.SetItemT
23、ext(i,2, ruku.m_column3);m_guoqilist.SetItemText(i,3, ruku.m_column4);m_guoqilist.SetItemText(i,4, ruku.m_column5);m_guoqilist.SetItemText(i,5, ruku.m_column6);m_guoqilist.SetItemText(i,6, ruku.m_column7);ruku.MoveNext();i+;if(j=0)j+;药品用药说明代码:BOOL Cyongyao:OnInitDialog() CDialog:OnInitDialog();/ TOD
24、O: Add extra initialization herem_yongyaolist.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);LV_COLUMN h;h.mask=LVCF_FMT|LVCF_TEXT|LVCF_WIDTH;h.fmt=LVCFMT_CENTER;h.cx=100;h.pszText=药品代码;m_yongyaolist.InsertColumn(0,&h);h.pszText=药品名称;m_yongyaolist.InsertColumn(1,&h);h.pszText=药品用药;m_yongyao
25、list.InsertColumn(2,&h);return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSEvoid Cyongyao:OnBUTTONxianshiyongyao() / TODO: Add your control notification handler code herem_yongyaolist.DeleteAllItems();Cruku1 ruku;ruku.Open();int i=0;ruk
26、u.MoveFirst();while(!ruku.IsEOF()m_yongyaolist.InsertItem(i, ruku.m_column1);m_yongyaolist.SetItemText(i,1, ruku.m_column2);m_yongyaolist.SetItemText(i,2, ruku.m_column5);ruku.MoveNext();i+;void Cyongyao:OnOKyongyao() / TODO: Add your control notification handler code herem_yongyaolist.DeleteAllItem
27、s();Cruku1 luru;luru.Open();luru.MoveFirst();UpdateData();int i=0;while(!luru.IsEOF()if(luru.m_column1=m_yongyaocode) m_yongyaolist.InsertItem(i,luru.m_column1);m_yongyaolist.SetItemText(i,1,luru.m_column2);m_yongyaolist.SetItemText(i,2,luru.m_column5);i+;luru.MoveNext();药品采购信息代码:void Ccaigou2:OnBUT
28、TONcaigou() / TODO: Add your control notification handler code herem_caigoulist.DeleteAllItems();Ccaigou caigou;CString s;caigou.Open();int i=0,j=0;caigou.MoveFirst();while(!caigou.IsEOF()m_caigoulist.InsertItem(i,caigou.m_column1);m_caigoulist.SetItemText(i,1, caigou.m_column4);s.Format(%d,caigou.m
29、_column2);m_caigoulist.SetItemText(i,2, s);s.Format(%d,caigou.m_column3);m_caigoulist.SetItemText(i,3, s);caigou.MoveNext();i+;BOOL Ccaigou2:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization herem_caigoulist.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);LV_COLUMN h;h.m
30、ask=LVCF_FMT|LVCF_TEXT|LVCF_WIDTH;h.fmt=LVCFMT_CENTER;h.cx=120;h.pszText=药品代码;m_caigoulist.InsertColumn(0,&h);h.pszText=药品名称;m_caigoulist.InsertColumn(1,&h);h.pszText=药品采购量;m_caigoulist.InsertColumn(2,&h);h.pszText=药品采购价格;m_caigoulist.InsertColumn(3,&h);return TRUE; / return TRUE unless you set the
31、focus to a control / EXCEPTION: OCX Property Pages should return FALSEvoid Ccaigou2:OnBUTTONxinzeng() / TODO: Add your control notification handler code herem_caigoulist.DeleteAllItems();int i=0;CString s;Ccaigou caigou;caigou.Open();/CString s;UpdateData();/ruku.MoveFirst();caigou.AddNew();caigou.m
32、_column1=m_caigoucode;caigou.m_column4=m_caigouname;caigou.m_column3=atoi(m_caigouprice);caigou.m_column2=atoi(m_caigounum);caigou.Update();caigou.MoveLast();m_caigoulist.InsertItem(i,caigou.m_column1);m_caigoulist.SetItemText(i,1,caigou.m_column4);s.Format(%d,caigou.m_column4);m_caigoulist.SetItemT
33、ext(i,2,s);s.Format(%d,caigou.m_column2);m_caigoulist.SetItemText(i,3,s);i+;药品库存代码:BOOL Ckucun2:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization herem_kucunlist.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);LV_COLUMN h;h.mask=LVCF_FMT|LVCF_TEXT|LVCF_WIDTH;h.fmt=LVCFMT
34、_CENTER;h.cx=120;h.pszText=药品代码;m_kucunlist.InsertColumn(0,&h);h.pszText=药品库存量;m_kucunlist.InsertColumn(1,&h);h.pszText=药品维持天数;m_kucunlist.InsertColumn(2,&h);return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSEvoid Ckucun2:OnBUTTONkucun
35、xianshi() / TODO: Add your control notification handler code herem_kucunlist.DeleteAllItems();Ckucun1 kucun;CString s;kucun.Open();int i=0;kucun.MoveFirst();while(!kucun.IsEOF()m_kucunlist.InsertItem(i,kucun.m_column1);/m_kucunlist.SetItemText(i,0,kucun.m_column1);s.Format(%d,kucun.m_column2);m_kucu
36、nlist.SetItemText(i,1, s);s.Format(%d,kucun.m_column3);m_kucunlist.SetItemText(i,2, s);kucun.MoveNext();i+;void Ckucun2:OnBUTTONchakucun() / TODO: Add your control notification handler code herem_kucunlist.DeleteAllItems();CString s;Ckucun1 luru;luru.Open();luru.MoveFirst();UpdateData();int i=0;whil
37、e(!luru.IsEOF()if(luru.m_column1=m_kucuncode) m_kucunlist.InsertItem(i,luru.m_column1);s.Format(%d,luru.m_column2);m_kucunlist.SetItemText(i,1,s);s.Format(%d,luru.m_column3);m_kucunlist.SetItemText(i,2,s);i+;luru.MoveNext();void Ckucun2:OnBUTTONadd() / TODO: Add your control notification handler cod
38、e hereint i=0;Ckucun1 kucun;kucun.Open();CString s;UpdateData();/ruku.MoveFirst();kucun.AddNew();kucun.m_column1=m_addkucuncode;kucun.m_column2=atoi(m_kucunnumber);kucun.m_column3=atoi(m_kucunday);kucun.Update();kucun.MoveLast();m_kucunlist.InsertItem(i,kucun.m_column1);s.Format(%d,kucun.m_column2);
39、m_kucunlist.SetItemText(i,1,s);s.Format(%d,kucun.m_column3);m_kucunlist.SetItemText(i,2,s);i+;供货商信息代码:BOOL Cman2:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization herem_manlist.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);LV_COLUMN h;h.mask=LVCF_FMT|LVCF_TEXT|LVCF_WID
40、TH;h.fmt=LVCFMT_CENTER;h.cx=120;h.pszText=供货商姓名;m_manlist.InsertColumn(0,&h);h.pszText=供货商电话;m_manlist.InsertColumn(1,&h);h.pszText=供货商公司;m_manlist.InsertColumn(2,&h);h.pszText=供货商药品代码;m_manlist.InsertColumn(3,&h);return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSEvoid Cman2:OnBU