c++课程设计之高校教职工人事管理系统(完整版)_第1页
c++课程设计之高校教职工人事管理系统(完整版)_第2页
c++课程设计之高校教职工人事管理系统(完整版)_第3页
c++课程设计之高校教职工人事管理系统(完整版)_第4页
c++课程设计之高校教职工人事管理系统(完整版)_第5页
已阅读5页,还剩122页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

c++课程设计之高校教职工人事管理系统(完整版)(文档可以直接使用,也可根据实际需要修改使用,可编辑欢迎下载)

《C++程序设计》课程设计报告c++课程设计之高校教职工人事管理系统(完整版)(文档可以直接使用,也可根据实际需要修改使用,可编辑欢迎下载)高校教职工人事管理系统年级/专业/班:学生姓名:学号:指导教师:开题时间:2021年09月06日完成时间:2021年09月28日

目录TOC\o"1-2"\h\u一、引言 1二、设计目的与任务 11、本课程设计的目的 12、本课程设计的任务 1三、设计方案 11、总体设计 12、详细设计 23、程序清单 54、程序调试与体会 145、运行过程截图 14四、结论 17五、致谢 17六、参考文献 17《C++程序设计语言》课程设计——高校教职工人事管理系统一、引言随着人们生活水平的提高,计算机发展异常迅速。如今,计算机已经深入到我们社会的各个领域,计算机的使用也已不再局限于科学计算,它已进入人类社会的各个领域并发挥着越来越重要的作用。通过计算机对各类问题求解已经成为一种高效、快捷的方式。本课程设计就是用C++研究两点距离的求解的问题,实现对两点距离的问题求解,和实现类模板的应用以及函数的调用。二、设计目的与任务1、本课程设计的目的1)通过课程设计更进一步理解C++的基础知识和面向对象的思想。2)训练用系统的观点和软件开发一般规范进行软件开发,并在此过程中培养严谨的科学态度和良好的工作作风。初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能。3)熟练掌握C++中类及类模板在程序中的应用,并熟练了解类中函数的调用。2、本课程设计的任务使用类实现编写一个高校教职工人事管理系统,能够实现教职工信息增加、删除、修改、查找,能够统计在职人员、中共党员、女教职工、高职称、高学历的人数,信息的输入输出能够重载输入与输出操作符,并且要求有错误提示功能,例如输入日期,输入错误提示重新输入。三、设计方案1、总体设计(1)定义员工(Person)类,其中包括编号、职工分类("行政人员","教师","一般员工","退休人员","返聘人员","临时工")、性别、年龄,职务("无","科级","处级","地级");、职称("无","初级","中级","高级");、政治面貌("群众","中共党员","民主党派")、学历("中专","大专","大学","硕士","博士")。(2)实现下面的功能a、设计菜单实现功能选择; b、输入功能:输入员工的信息,并保存到文件中; c、删除资料:能够根据编号删除员工的资料; d、修改功能:能够根据编号来修改员工的资料; e、查询功能:能够根据编号来查看员工的资料; f、统计功能:能够统计在职人员、中共党员、女教职工、高职称、高学历的人数。 g、错误提示功能:如果输入的资料不合法,将会提示错误,并给予指导。2、详细设计类Personcharno[100]; //编号charduty[30];//职工分类charsex[10]; //性别intage;//年龄charposition[30];//职务charzhicheng[30];//职称charpolitical[30]; //政治面貌charrecord[30];//学历 voidadd();//增加信息voiddelet();//删除信息voidchange();//修改信息voidfind();//查找信息voidpush(Personpp);//给类赋值下面程序流程图中的判断框必须用菱形表示,请修改Person::add()Person::delete()Person::change()(4).Person::find()3、程序清单/*改程序需要在D盘加入文本名为“subject.txt”文本档案作为资料的库存。文本档案资料内容如下:09408201行政人员男35处级高级中共党员大学09408202教师女30处级高级中共党员大学09408203临时工女20无高级群众中专09408204临时工男22处级初级中共党员博士09408205返聘人员男30科级高级中共党员大专09408206教师女40科级初级中共党员硕士09408207退休人员女68处级中级民主党派大学09408208一般员工男27地级高级群众大学09408209教师男22处级高级中共党员博士09408210退休人员男62地级初级民主党派硕士09408211返聘人员女40无中级中共党员硕士09408212一般员工男38处级中级群众大学09408213教师男46处级无中共党员博士09408214教师男27无高级民主党派大学09408215教师男18处级高级中共党员大学*///下面程序开始#include<iostream>#include<cstring>usingnamespacestd;constintN=1000;intt=0; inton=0; //统计在职人员人数intdang=0; //统计中共党员人数intnv=0; //统计女性职工人数intgaozhi=0; //统计高职称人数intgaoli=0; //统计高学历人数classPerson{public:charsex[10]; //性别charduty[30];//职工分类intage;//年龄charpolitical[30];//政治面貌charrecord[30];//学历charposition[30];//职务charzhicheng[30];//职称charno[100]; //编号voidadd();//增加信息voiddelet();//删除信息voidchange();//修改信息voidfind();//查找信息voidpush(Personpp);//给列成员赋值};Personp[N];voidPerson::push(Personpp){strcpy(no,pp.no);strcpy(sex,pp.sex);strcpy(position,pp.position);strcpy(zhicheng,pp.zhicheng);strcpy(political,pp.political);strcpy(record,pp.record);strcpy(duty,pp.duty);age=pp.age;if(strcmp(duty,"退休人员"))on++;if(strcmp(sex,"女")==0)nv++;if(strcmp(zhicheng,"高级")==0)gaozhi++;if(strcmp(political,"中共党员")==0)dang++;if(strcmp(record,"硕士")==0||strcmp(record,"博士")==0)gaoli++;}voidtip(){cout<<"输入ENTER返回子菜单!"<<endl;getchar();getchar();system("cls");}voidtip1(){cout<<"输入ENTER返回主菜单!"<<endl;getchar();getchar();system("cls");}voidLoad()//通过文本输入数据{PersonS; FILE*fp1;boolf=1; fp1=fopen("d:\\subject.txt","r");if(fp1==NULL)f=0; while(f&&!feof(fp1)){fscanf(fp1,"%s%s%s%d%s%s%s%s",S.no,S.duty,S.sex,&S.age,S.position,S.zhicheng,S.political,S.record);p[t++].push(S);}fclose(fp1);}voidPerson::add()//录入信息{cout<<"现在录入编号为"<<no<<"的档案:"<<endl;A1:cout<<"输入员工的职工分类:";cin>>duty;if(strcmp(duty,"行政人员")&&strcmp(duty,"教师")&&strcmp(duty,"一般员工")&&strcmp(duty,"退休人员")&&strcmp(duty,"返聘人员")&&strcmp(duty,"临时工")){cout<<"--(请输入正确的职工分类,例如:行政人员,教师,一般员工,退休人员,返聘人员,临时工)"<<endl;gotoA1;}if(strcmp(duty,"退休人员"))on++;A2:cout<<"输入员工的性别:";cin>>sex;if(strcmp(sex,"男")&&strcmp(sex,"女")){cout<<"--(请输入正确的性别,例如:男,女)"<<endl;gotoA2;}if(strcmp(sex,"女")==0)nv++;A3:cout<<"输入员工的年龄:";cin>>age;if(age<=0){cout<<"--(请输入正确的年龄,例如:18等)"<<endl;gotoA3;}A4:cout<<"输入员工的职务:";cin>>position;if(strcmp(position,"无")&&strcmp(position,"科级")&&strcmp(position,"处级")&&strcmp(position,"地级")){cout<<"--(请输入正确的职务,例如:无,科级,处级,地级)"<<endl;gotoA4;}A5:cout<<"输入员工的职称:";cin>>zhicheng;if(strcmp(zhicheng,"无")&&strcmp(zhicheng,"初级")&&strcmp(zhicheng,"中级")&&strcmp(zhicheng,"高级")){cout<<"--(请输入正确的职称,例如:无,初级,中级,高级)"<<endl;gotoA5;}if(strcmp(zhicheng,"高级")==0)gaozhi++;A6:cout<<"输入员工的政治面貌:";cin>>political;if(strcmp(political,"群众")&&strcmp(political,"中共党员")&&strcmp(political,"民主党派")){cout<<"--(请输入正确的政治面貌,例如:群众,中共党员,民主党派)"<<endl;gotoA6;}if(strcmp(political,"中共党员")==0)dang++;A7:cout<<"输入与员工的学历:";cin>>record;if(strcmp(record,"中专")&&strcmp(record,"大专")&&strcmp(record,"大学")&&strcmp(record,"硕士")&&strcmp(record,"博士")){cout<<"--(请输入正确的学历,例如:中专,大专,大学,硕士,博士)"<<endl;gotoA7;}if(strcmp(record,"硕士")==0||strcmp(record,"博士")==0)gaoli++;cout<<"编号为"<<no<<"的档案录入结束"<<endl<<endl;t++;tip1();}voidPerson::delet()//删除信息{no[0]='-';if(strcmp(duty,"退休人员"))on--;if(strcmp(sex,"女")==0)nv--;if(strcmp(zhicheng,"高级")==0)gaozhi--;if(strcmp(political,"中共党员")==0)dang--;if(strcmp(record,"硕士")==0||strcmp(record,"博士")==0)gaoli--;cout<<"删除员工信息成功!"<<endl<<endl;tip1();}voidPerson::change()//修改信息{intn,flag=1;do{A:cout<<"***子菜单:修改资料***"<<endl<<"修改哪些信息?"<<endl<<"1(编号)2(职工分类)3(性别)4(年龄)5(职务)6(职称)7(政治面貌)8(学历)9(退回主菜单)"<<endl<<"输入数字1-9进行修改或退出:";cin>>n;if(n<1||n>9){cout<<"sorry,您输入的信息有误,请重新输入!"<<endl;gotoA;}switch(n){case1:cout<<"输入正确的员工编号:";cin>>no;cout<<"员工编号修改成功"<<endl<<endl;tip();break;case2:B1:cout<<"输入正确的员工的职工分类:";if(strcmp(duty,"退休人员"))on--;cin>>duty;if(strcmp(duty,"行政人员")&&strcmp(duty,"教师")&& strcmp(duty,"一般员工")&&strcmp(duty,"退休人员")&& strcmp(duty,"返聘人员")&&strcmp(duty,"临时工")) {cout<<"(请输入正确的职工分类,例如:行政人员,教师,一般员工,退休人员,返聘人员,临时工)"<<endl;gotoB1;} if(strcmp(duty,"退休人员"))on++; cout<<"员工职工分类修改成功"<<endl<<endl; tip();break;case3:B2:cout<<"输入正确的员工的性别:";if(strcmp(sex,"女")==0)nv--;cin>>sex;if(strcmp(sex,"男")&&strcmp(sex,"女")){cout<<"(请输入正确的性别,例如:男,女)"<<endl;gotoB2;} if(strcmp(sex,"女")==0)nv++; cout<<"员工性别修改成功"<<endl<<endl; tip();break;case4:B3:cout<<"输入正确的员工的年龄:";cin>>age;if(age<=0){cout<<"(请输入正确的年龄,例如:18等)"<<endl;gotoB3;} cout<<"员工年龄修改成功"<<endl<<endl; tip();break;case5:B4:cout<<"输入正确的员工的职务:";cin>>position;if(strcmp(position,"无")&&strcmp(position,"科级")&& strcmp(position,"处级")&&strcmp(position,"地级")){cout<<"(请输入正确的职务,例如:无,科级,处级,地级)"<<endl;gotoB4;}cout<<"员工职务修改成功"<<endl<<endl;tip();break;case6:B5:cout<<"输入正确的员工的职称:";if(strcmp(zhicheng,"高级")==0)gaozhi--;cin>>zhicheng;if(strcmp(zhicheng,"无")&&strcmp(zhicheng,"初级")&&strcmp(zhicheng,"中级")&&strcmp(zhicheng,"高级")){cout<<"(请输入正确的职称,例如:无,初级,中级,高级)"<<endl;gotoB5;}cout<<"员工职称修改成功"<<endl<<endl;if(strcmp(zhicheng,"高级")==0)gaozhi++;tip();break;case7:B6:cout<<"输入正确的员工的政治面貌:";if(strcmp(political,"中共党员")==0)dang--;cin>>political;if(strcmp(political,"群众")&&strcmp(political,"中共党员")&&strcmp(political,"民主党派")){cout<<"(请输入正确的政治面貌,例如:群众,中共党员,民主党派)"<<endl;gotoB6;} if(strcmp(political,"中共党员")==0)dang++;cout<<"员工政治面貌修改成功"<<endl<<endl;tip();break;case8:B7:cout<<"输入正确的员工的学历:";if(strcmp(record,"硕士")==0||strcmp(record,"博士")==0)gaoli--;cin>>record;if(strcmp(record,"中专")&&strcmp(record,"大专")&& strcmp(record,"大学")&&strcmp(record,"硕士") &&strcmp(record,"博士")){cout<<"(请输入正确的学历,例如:中专,大专,大学,硕士,博士)"<<endl;gotoB7;} if(strcmp(record,"硕士")==0||strcmp(record,"博士")==0)gaoli++; cout<<"员工学历修改成功"<<endl<<endl; tip();break;case9:tip1();flag=0;break;}}while(flag);}voidPerson::find()//查找信息(输出信息){cout<<"员工的编号:";cout<<no<<endl;cout<<"员工的职工分类:";cout<<duty<<endl;cout<<"员工的性别:";cout<<sex<<endl;cout<<"员工的年龄:";cout<<age<<endl;cout<<"员工的职务:";cout<<position<<endl;cout<<"员工的职称:";cout<<zhicheng<<endl;cout<<"员工的政治面貌:";cout<<political<<endl;cout<<"员工的学历:";cout<<record<<endl<<endl;tip1();}intmain(){Load();intn,i,flag1=1;charnum[100];do{A:cout<<"***************"<<endl<<"主菜单"<<endl<<"***************"<<endl<<"(1)增加资料(2)删除资料(3)修改资料(4)查找资料(5)查看统计"<<"(6)退出"<<endl<<"请选择1-6进行操作:";cin>>n;system("cls");if(n<1||n>9){cout<<"sorry,您输入的信息有误."<<endl;tip1();gotoA;}switch(n){case1:C:cout<<"输入要增加的员工的编号:";cin>>num;for(i=0;i<t;i++)if(strcmp(p[i].no,num)==0)break;if(i!=t){cout<<"Sorry,您要增加的员工编号已存在,请重新输入!"<<endl<<endl;gotoC;}strcpy(p[t].no,num);cout<<endl;p[t].add();break;case2:cout<<"输入要删除的员工的编号:";cin>>num;for(i=0;i<t;i++){if(strcmp(p[i].no,num)==0){p[i].delet();break;}}cout<<endl;if(i==t){cout<<"sorry,您输入的员工编号有误。"<<endl;tip1();}break;case3:cout<<"输入要修改的员工的编号:";cin>>num;cout<<endl;for(i=0;i<t;i++){if(strcmp(p[i].no,num)==0){p[i].change();break;}}if(i==t){cout<<"sorry,您输入的员工编号有误。"<<endl;tip1();}break;case4:cout<<"输入要查看的员工的编号:";cin>>num;cout<<endl;for(i=0;i<t;i++){if(strcmp(p[i].no,num)==0){p[i].find();break;}}if(i==t){cout<<"sorry,您输入的员工编号有误。"<<endl;tip1();}break;case5:cout<<"在职人员人数为:"<<on<<endl;cout<<"中共党员人数为:"<<dang<<endl;cout<<"女教职工人数为:"<<nv<<endl;cout<<"高职称人数为:"<<gaozhi<<endl;cout<<"搞学历人数为:"<<gaoli<<endl;cout<<"(说明:1.在职人员不包括退休人员。"<<endl;cout<<"2.高学历包括硕士及博士。)"<<endl<<endl;tip1();break;case6:flag1=0;cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<"感谢您的使用,谢谢!!"<<endl<<endl<<endl<<endl<<endl;break;}}while(flag1);system("pause");}4、程序调试与体会通过对程序的调试,发现很多问题只有通过调试以后才能被找到和发现,才能更好的美化和优化,是程序看起来更完美,让使用者更放心。5、运行过程截图下面是我们程序的一些演示以及部分运行结果:(1).首先是程序执行的主菜单:(2).执行1-5的指令后都会出现如下界面,要求输入员工的编号,因为该程序是基于从编号入手的:(3)当执行1号命令增加资料,并输入员工编号后要求输入与员工的资料:(4).当输入内容不合要求时会提示输入错误,并且提示合法的输入内容:(5).当输入的编号已存在是会提示该编号已存在:(6).当执行删除资料、查找资料、修改资料后,如果输入的编号后有误,会提示编号不存在:(7).当执行修改资料,并输入正确的编号后,会出现该目录下的子菜单:(8).当执行子菜单下的指令,并修改成功后会提示修改完成(当然这里修改时如果输入不合题目要求同样会提示错误,并提示正确的输入内容,参照(4)):(9).当执行查找资料,并输入正确的编号后,会输出该编号员工的资料:(10).当执行查看统计后会出现如下界面:四、结论通过本次课程设计,让我对C++这门学科对有了进一步的认识,熟练掌握了类及类模板的应用。以前对该课程的恐惧感都以消失,任何事情没有做不到只有愿不愿意去做。刚开始接到该题,心中确实充满困惑。不过在图书馆和网上找了一些资料看了后,便觉得思路就在眼前了,之前不过就是由于对该课程的恐惧而产生了一定的心里影响而已。之后凭借那闪现在眼前的点点思路,慢慢在琢磨,终于想出了大体的程序内容。然后一个一个函数的思考,一步一步的编写,调试,做起来也就越来越顺手了。通过我的反复思考,程序中的错误得到顺利解决。函数功能也得到了进一步的完善。并且在本次课程设计的过程中,让我进一步认识到了团队的力量,只有团结才能发挥出一个集体的力量。一个人的力量真的好有限,即使个人能力再强,做一个大点的项目,也会力不从心。只有分工协作才能将事办得越快越好。通过这次课程设计,会为我们以后进入社会提供一定的经验。我们相信在今后的学习真的我们会更加努力,积累经验。使自己在编程等各方面得到提高。五、致谢这次的课程设计对我们来说是一次尝试与挑战的过程。在这里,我们由衷地感谢帮助、支持和鼓励我们完成课程设计的老师和一起奋斗过的伙伴。首先我们要感谢学校给我们提供这样一个一起学习和研究的机会,让我们把理论知识应用到实际中来。其次我们要感谢我们的指导老师羊四清老师,在进行课程设计的这段时间里他对我们的指导和帮助,为我们课程设计的顺利完成指明了方向,也给了我们锻炼和提高的机会。根据老师的指导,在设计中我们基本能按照规范的方法和步骤进行,开始对实现高校教职工人事管理系统问题进行讨论,并查阅有关资料,最后确定设计方案,然后设计并制作。在实践过程中我们深刻的认识到类在C++中的重要性。在此我们向您们致以最诚挚的谢意!六、参考文献[1]张基温编著.C++程序设计基础.北京:高等教育出版社,1996[2]宛延闺.c++语言和面向对象程序设计.北京:清华大学出版社,1999[3]钱能主编.c++程序设计教程.北京:清华大学出版社,1999[4]张龙祥编著.UML与系统分析设计.北京:人民邮电出版社,2001[5]张海藩,牟永敏.面向对象程序设计实用教程.北京:清华大学出版社,2001[6]揣锦华.c++程序设计语言.西安:西安电子科技大学出版社,2003

课程设计任务书及成绩评定课题名称:完成者:1、设计的目的与要求:设计进度及完成情况日期内容9.15分析问题,找出所要解决问题的关键总体设计,找出解决方案详细设计,列出解决步骤9.21-9.24程序编码9.25程序调试,修改加以完善9.25-9.26书写文档3、成绩评定:设计成绩:(教师填写)指导老师:(签字)二00年月日课程设计报告书设计名称:VisaulC++课程设计题目:超市管理系统学生姓名:专业:计算机科学与技术(数字媒体)班别:计科本092班学号:指导老师:日期:2021年6月10日目录第一章超市管理系统概述…………………31.1引言…………………31.1.1系统开发的目的与意义……31.1.2系统开发背景………………31.1.3系统概述……………………31.1.4采用的体系结构……………4第二章超市管理系统分析……………42.1可行性研究……………………42.1.1技术可行性…………………52.1.2经济可行性…………………52.1.3运行可行性…………………52.2需求分析………52.2.1系统的目的…………………52.2.2系统功能及用户需求………6第三章超市管理系统设计……………63.1系统的总体…………63.2数据表的建立………73.3数据表截图…………83.4功能的模块…………11第四章超市管理系统的实现…………114.1登陆界面……………114.2主界面…………………134.3主要模块操作界面类型…………………154.4主窗口界面类型…………………214.5销售额查询结果显示…………………254.6退出系统……………27第五章结束语………………16参考文献……………………17第一章超市管理系统概述1.1引言1.1.1系统开发的目的与意义随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对超市进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高超市管理的效率,也是超市的科学化、正规化管理,与世界接轨的重要条件。因此,开发一个代替手工操作的新型的计算机管理的超市管理系统对本超市来说刻不容缓。1.1.2系统开发背景传统人工的方式管理超市,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难,而且容易丢失。因此,开发一个代替手工操作的新型的计算机管理的超市管理系统对本超市来说刻不容缓。1.1.3系统概述1、任务:超市管理系统对职员商品信息进行高效简洁的管理,使之能正常高效的进行售卖活动。系统充分考虑到超市管理系统对货物资料进行登记并处理。考虑到进货、退货、库存预警、年月日销售额结算等多种特殊情况,同时可将相关资料进行有效处理。2、目标:当代社会中伴随着计算机技术在各行各业日益广泛和深入的应用,超市对货品于职员的管理不在像过去一样靠手工去做,在一些超市管理中也开始信息化。信息化的管理可以为超市节省大量人力物力,提高其运行效率,从而为顾客提供更好的服务,实现超市的业务提升。本系统就是为了适应这种要求而设计的。集信息的显示、输入、修改、删除、查询等各种处理为一体,信息维护起来非常方便。大大减少了超市的人力和物力。本系统大致要做到以下几点:(1)操作简便,节省大量人力;(2)可以方便的进行货品管理,安全、高效;(3)可以迅速计算销售额和所买卖货品;(4)可以迅速查到所需信息,便于管理。1.1.4采用的体系结构本超市管理系统是基于C/S模式结构构建的。Clients/Server结构(简称C/S结构)是九十年代流行的信息系统结构,在C/S结构下,应用系统被分为前台(客户机)和后台(服务器)两部分,其作用分别是:应用处理由客户机完成,数据访问和事务处理由服务器完成。这种方案实现了功能分布,即由客户机端提出查询请求,而服务器完成对数据库的查询任务,并把查询结果通过网络返回给客户机。C/S模式响应速度快,网络通信负担小,适用于超市内部局域网,在超市内部的集中管理模式中发挥了重要作用。

超市管理系统是基于vc++前台,Access做后台的系统。第二章超市管理系统分析2.1可行性研究现在时间行进到21世纪,以计算机技术为主体的高新技术群体已经将触角深入到国发经济的方方面面。在市场经济的大环境下,越来越多的人士逐渐认识到用计算机技术进行名类管理,交流的便捷。应用之一就是超市中的计算机管理了。如何利用先进的技术手段,提高进出帐的效率,是每一家超市所面临的重要课题。现代超市所面临的问题是:商品数目众多,商品内容繁杂,日常需要耗费大量人力和物力。要想解决这一难题,就必须有一套科学、高效、严密、实用的超市管理系统。采用现代计算机管理系统是实现此目标的主要途径。在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的超市管理系统,实现超市的销售、财务自动化的计算机系统,为超市的决策层提供准确、精细、迅速的销售信息。2.1.1技术可行性根据系统目标来衡量所需的技术是否具备,一般可从硬件、软件的性能要求、环境条件、技术人员水平和数量等方面去考虑和分析,其中开发人员的技术力量应首先考虑能力与水平,并考虑近期内可以培养和发展操作人员。

2.1.2经济可行性估算系统的开发费用和今后的运行、维护费用,估计系统将获得的效益,并将费用与效益进行比较,看是否有利。本系统的维护不需太多费用,适合于中小超市的管理操作。系统的效益可以从经济效益和社会效益两方面考虑。对于超市管理系统则应着重分析其经济效益。例如,系统投入运行后可以提供哪些以前无法及时提供的信息,用户查询和使用信息的方便程度提高多少、速度增加了多少,对于管理人员进行决策提供了多少帮助等等,同时可以减少管理人员,从而节省了大量的工资开出。2.1.3运行可行性系统带来的影响(包括组织机构、管理方式、工作环境等)和后果进行估计和评价。同时还应考虑管理人员的培训、补充,分析在给定时间里能否完成预定的系统开发任务等。按上述三方面进行可行性分析、研究后,我们认为该项目是可行的。2.2需求分析2.2.1系统的目的本系统的总目标是为管理者提供迅速、高效的服务,减免手工处理的繁琐与误差,整个系统包括八大模块:用户管理,职员管理,商品管理,进货管理,库存管理,销售管理,操作日志,退出系统。其中商品管理,进货管理,库存管理,销售管理是本系统要实现的主要功能。各模块主要的几种操作:用户管理模块对管理者进行用户的注册,修改,删除操作。职员管理模块对职员的信息相应操作。商品管理模块对商品的信息进行相应操作。进货管理模块对商品进行买进,入库,退货,及供货商等相应操作。库存管理模块对库存商品进行相应操作,以及商品预警操作。销售管理模块对各天购物信息的相关操作。操作日志模块对管理者进行过的操作记录显示出来。退出系统模块是退出本系统的一切操作。2.2.2系统功能及用户需求

1、功能需求:该系统只为管理员登陆操作。(1)管理员信息的注册、修改和删除和查看注册时间。(2)职员管理。该模块包括职员的添加,修改,删除和查询,主要是为了实现新职员的加入登记,离职员工的删除记录,以及员工信息的管理,如修改查询。(3)商品管理。对超市内的商品进行管理,对商品进行查看,添加和修改。(4)进货管理。对进货的商品进行管理,并且可以查看所退商品的信息及供货商信息。(5)库存管理。可以查看商品的当前库存、最大库存及最小库存,并且对商品库存量提供预警功能。(6)销售管理。可以查看商品销售信息,并且可以对具体时间的销售额进行查询。(7)操作日志。功能可以查看各个管理员进行的操作,也可查看管理员的操作时间与内容,增强系统的安全性。2、用户需求:本系统主要针对的用户是超市人事处的管理员。本系统能够完成任务是管理员登陆,并对超市信息进行管理。第三章超市管理系统的设计3.1系统的总体登录主界面登录主界面用户管理职员管理商品管理进货管理库存管理销售管理操作日志退出系统供货商查询退货查询库存警报销售额查询图3-1系统总框架图从图中可以得出该系统的总体框架,现在逐个实现。3.2数据表的建立本系统用Access建立数据库,使用ODBC连接,此方法较容易完成了数据的建立。共计有十一个表,包括:用户管理表:(用户编号、用户名、用户密码、注册时间)职员信息表(职员编号、职员姓名、职员性别、职员年龄、职员、职员地址)商品信息表(商品编号、商品名称、商品类别、商品售价、商品进价、商品单位、商品所属厂商)

进货管理表(商品编号、商品名称、商品类别、商品进价、商品单位、商品数量、商品总价、所属厂商、经手人、进货日期)退货管理表(商品编号、商品名称、商品类别、商品进价、商品单位、商品数量、商品总价、所属厂商、经手人、进货日期)供货商信息表(供货商编号、厂家名称、所供货品、经手人、联系、地址)库存信息表(商品编号、商品名称、当前库存、最大库存、最小库存、商品单位)库存警报表(商品编号、商品名称、当前库存、最大库存、最小库存、商品单位)销售信息表(商品编号、商品名称、商品进价、商品单位、商品数量、商品总价、销售日期)销售额信息表(商品编号、商品名称、商品进价、商品单位、商品数量、商品总价、销售年份、销售月份、销售日期(具体到年、月、日))操作日志表(操作员、所做事件、操作时间)3.3数据表截图图3-2用户管理表图3-3职员信息表图3-4商品信息表图3-5进货管理表图3-6退货管理表图3-7供货商信息表图3-8库存信息表图3-9库存预警表图3-10销售信息表图3-11销售额信息表图3-12操作日志表3.4功能的模块总体结构出来了,还有建立数据表,这两样工作做好了才能更加好的编码,从整体的设计开始,到建立数据表,一步一个脚印,只有走好了前面两步,打好基础,后面才回走得顺。第四章超市管理系统的实现4.1登陆界面图4-1系统登陆界面采用vc++对用户管理表的筛选出正确的用户名和密码登陆,代码如下:if(m_name.IsEmpty()||m_pass.IsEmpty()){MessageBox("用户名或密码为空");return;}if(yh.IsOpen())yh.Close();yh.m_strFilter.Format("y_name='%s'andy_pass='%s'",m_name,m_pass);yh.Open();if(yh.IsEOF()){MessageBox("没有该用户,请重新输入");m_name="";m_pass="";//admin=m_pass; ruji("登录失败");UpdateData(false);return;}else{ Cabcabc; admin=m_pass; ruji("登录成功");this->ShowWindow(SW_HIDE);abc.DoModal();}4.2主界面对对话框进行初始化,为背景插入图片代码(示例如下): voidCTubiaoDlg::OnPaint(){CPaintDCdc(this);CBitmapm_bmpBK;m_bmpBK.LoadBitmap(IDB_BITMAP1);CRectrect;GetClientRect(&rect);//获得目标尺寸,即窗口客户区的坐标BITMAPbitMap;//位图结构体m_bmpBK.GetBitmap(&bitMap);//获得原图片尺寸CDCdcMem;//目标DCdcMem.CreateCompatibleDC(&dc);//创建与dc兼容的内存DCdcMem.SelectObject(&m_bmpBK);//将位图对象m_bmpBK选入内存DCdc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bitMap.bmWidth,bitMap.bmHeight,SRCCOPY);对主界面按钮导入图标代码如下:m_bt1.SubclassDlgItem(IDC_YH,this);//设置图标按钮 m_bt1.SetIcon(IDI_YH);m_bt2.SubclassDlgItem(IDC_ZY,this); m_bt2.SetIcon(IDI_ZY); m_bt3.SubclassDlgItem(IDC_SP,this); m_bt3.SetIcon(IDI_SP); m_bt4.SubclassDlgItem(IDC_JH,this); m_bt4.SetIcon(IDI_JH); m_bt5.SubclassDlgItem(IDC_XS,this); m_bt5.SetIcon(IDI_XS); m_bt6.SubclassDlgItem(IDC_KC,this); m_bt6.SetIcon(IDI_KC); m_bt7.SubclassDlgItem(IDC_RZ,this); m_bt7.SetIcon(IDI_RZ); m_bt8.SubclassDlgItem(IDC_TC,this); m_bt8.SetIcon(IDI_TC);3、对列表进行初始化及显示代码如下:yhb.Open(); m_list.InsertColumn(0,"用户编号"); m_list.InsertColumn(1,"用户名"); m_list.InsertColumn(2,"用户密码"); m_list.InsertColumn(3,"注册时间"); RECTrect; m_list.GetWindowRect(&rect); intwid=rect.right-rect.left; m_list.SetColumnWidth(0,wid/4); m_list.SetColumnWidth(1,wid/4); m_list.SetColumnWidth(2,wid/4); m_list.SetColumnWidth(3,wid/4);yhxs(); returnTRUE;}4.3主要模块操作界面类型初始化代码:BOOLCkcgl::OnInitDialog(){CenterWindow(); DWORDdwStyle=AW_CENTER; HINSTANCEhInst=LoadLibrary("User32.DLL"); typedefBOOL(WINAPIMYFUNC(HWND,DWORD,DWORD)); MYFUNC*AnimateWindow; AnimateWindow=(MYFUNC*)::GetProcAddress(hInst,"AnimateWindow"); AnimateWindow(this->m_hWnd,1000,dwStyle); FreeLibrary(hInst); CDialog::OnInitDialog();UINTarray[4]; for(inti=0;i<4;i++) { array[i]=100+i; } m_StatusBar.Create(this);//创建状态栏窗口 m_StatusBar.SetIndicators(array,4);//添加面板 for(intn=0;n<4;n++) {m_StatusBar.SetPaneInfo(n,array[n],SBPS_NORMAL,160);//设置面板宽度 } //设置面板文本 m_StatusBar.SetPaneText(0,"当前操作"); m_StatusBar.SetPaneText(1,"库存管理"); m_StatusBar.SetPaneText(2,"当前时间"); CTimeTime; Time=CTime::GetCurrentTime(); m_StatusBar.SetPaneText(3,Time.Format("%Y-%m-%d%H:%M:%S")); RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0); SetTimer(1,1000,NULL);//设置定时器 //TODO:Addextrainitializationherem_com.AddString("商品编号"); m_com.AddString("商品名称"); m_com.SetCurSel(0); kcb.Open(); m_list.InsertColumn(0,"商品编号"); m_list.InsertColumn(1,"商品名称"); m_list.InsertColumn(2,"当前库存"); m_list.InsertColumn(3,"最大库存"); m_list.InsertColumn(4,"最小库存"); m_list.InsertColumn(5,"单位"); RECTrect; m_list.GetWindowRect(&rect); intwid=rect.right-rect.left; m_list.SetColumnWidth(0,wid/6); m_list.SetColumnWidth(1,wid/6); m_list.SetColumnWidth(2,wid/6); m_list.SetColumnWidth(3,wid/6); m_list.SetColumnWidth(4,wid/6); m_list.SetColumnWidth(5,wid/6); kcb.Close();kcxs(); returnTRUE;//returnTRUEunlessyousetthefocustoacontrol //EXCEPTION:OCXPropertyPagesshouldreturnFALSE}添加按钮的代码:voidCkcgl::Ontianjia(){ //TODO:Addyourcontrolnotificationhandlercodehere Ctgkctgkc; append=1;ruji("添加库存"); if(tgkc.DoModal()==IDC_tuichu) kcxs();}退出按钮的代码:voidCkcgl::Ontuichu()//动画退出{ //TODO:AddyourcontrolnotificationhandlercodehereDWORDdwStyle=AW_BLEND; HINSTANCEhInst=LoadLibrary("User32.DLL"); typedefBOOL(WINAPIMYFUNC(HWND,DWORD,DWORD)); MYFUNC*AnimateWindow; AnimateWindow=(MYFUNC*)::GetProcAddress(hInst,"AnimateWindow"); AnimateWindow(this->GetSafeHwnd(),1000,AW_HIDE|dwStyle); FreeLibrary(hInst); OnOK();}查询代码:voidCkcgl::Onchaxun(){ //TODO:AddyourcontrolnotificationhandlercodehereUpdateData();ruji("库存查询");CStringx,str,str1;m_com.GetWindowText(x);if(x=="商品编号")str="k_code";elsestr="k_name";if(m_nb.IsEmpty()) { AfxMessageBox("查询条件不能为空!!您可以按编号或姓名来查询!!"); return; } if(!m_nb.IsEmpty()) {if(kcb.Open()) kcb.Close(); str1=str+"='%s'"; kcb.m_strFilter.Format(str1,m_nb); kcxs(); MessageBox("结果是按"+x+"查询到的!!"); } m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);kcb.Close();}修改代码:voidCkcgl::Onxiugai(){ //TODO:AddyourcontrolnotificationhandlercodehereCtgkctgkc;ruji("修改库存");if(t==-2) { AfxMessageBox("你没有选中要修改的记录"); return; } else { t=m_list.GetSelectionMark(); tgkc.m_code=m_list.GetItemText(t,0);tgkc.m_name=m_list.GetItemText(t,1); tgkc.m_now=atoi(m_list.GetItemText(t,2)); tgkc.m_max=atoi(m_list.GetItemText(t,3));tgkc.m_min=atoi(m_list.GetItemText(t,4));tgkc.m_danwei=m_list.GetItemText(t,5); UpdateData(false); t=-2; append=2; if(tgkc.DoModal()==IDC_tuichu) kcxs(); }}删除代码:voidCkcgl::Onshanchu(){ //TODO:Addyourcontrolnotificationhandlercodehere CStringb;ruji("删除库存"); if(t==-2) { AfxMessageBox("你没有选中要删除的记录"); t=-2; return; } else { t=m_list.GetSelectionMark(); b=m_list.GetItemText(t,0); UpdateData(); if(kcb.Open()) kcb.Close(); kcb.m_strFilter.Format("k_code='%s'",b); kcb.Open(); kcb.Delete();kcb.m_strFilter=""; kcb.Requery(); kcb.Close(); kcxs(); t=-2; AfxMessageBox("删除成功啦!!!!"); }}4.4子窗口界面类型确定代码:voidCtiangai::Onqueding(){ //TODO:Addyourcontrolnotificationhandlercodehere Cjbjb; UpdateData(); if(append==1) { if(jb.Open()) jb.Close(); jb.m_strFilter.Format("j_code='%s'",m_code); jb.Open(); intp=0; p=jb.GetRecordCount(); jb.Close(); if(p!=0) { AfxMessageBox("该商品已经存在"); m_code=""; m_name=""; m_type=""; m_jinjia=0; m_danwei=""; m_number=0;m_changshang="";m_man="";m_riqi=""; UpdateData(false); } else {UpdateData();jb.Open(); jb.AddNew(); if(m_code.IsEmpty()||m_name.IsEmpty()||m_type.IsEmpty()||m_jinjia==0||m_danwei.IsEmpty()||m_changshang.IsEmpty()||m_man.IsEmpty()||m_riqi.IsEmpty())MessageBox("添加失败,请重新输入!"); else { jb.m_j_code=m_code; jb.m_j_name=m_name; jb.m_j_type=m_type; jb.m_j_jinjia=m_jinjia;jb.m_j_danwei=m_danwei; jb.m_j_number=m_number;jb.m_j_zongjia=m_jinjia*m_number; jb.m_j_changshang=m_changshang;jb.m_j_man=m_man;jb.m_j_date=m_riqi; jb.Update(); jb.Requery();MessageBox("添加成功!请点击显示按钮即可查看!"); } if(cb.IsOpen()) cb.Close(); cb.m_strFilter.Format("k_name='%s'",m_name); cb.Open(); cb.Edit(); cb.m_k_now=cb.m_k_now+m_number; cb.Update();if(cb.m_k_now>cb.m_k_max){ if(yjb.IsOpen()) yjb.Close(); yjb.Open();yjb.AddNew(); yjb.m_c_code=cb.m_k_code; yjb.m_c_name=cb.m_k_name; yjb.m_c_now=cb.m_k_now; yjb.m_c_max=cb.m_k_max;yjb.m_c_min=cb.m_k_min;yjb.m_c_danwei=cb.m_k_danwei; yjb.Update();}} } elseif(append==2)//修改职员 {UpdateData(); if(jb.Open()) jb.Close(); jb.m_strFilter.Format("j_code='%s'",m_code); jb.Open();jb.Edit(); jb.m_j_code=m_code; jb.m_j_name=m_name; jb.m_j_type=m_type; jb.m_j_jinjia=m_jinjia;jb.m_j_danwei=m_danwei; jb.m_j_number=m_number;jb.m_j_zongj

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论