1、华科学院数据库课程设计第一章 需求分析1。1 系统开发背景、目的及意义随着电子计算机和通信技术的发展,人类已经逐渐地进入信息化社会。信息和材料、能源一样成为一种社会的基本生产资料,在人类的社会生产活动中发挥着重要的作用。同时人们对信息和数据的利用与处理也已进入自动化、网络化和社会化的阶段,因此,开发相关的管理信息系统已经成为各行各业的必要和必需了,管理信息系统作为一门边缘学科,集管理科学、信息科学、系统科学、现代通信技术和电子计算机技术于一体,可以解决企业或组织所面临的问题,对内来看,可以提高工作效率;对外来看,获得竞争优势.在使用计算机系统之前珠宝的管理都是手工操作.手续繁杂,还不便管理,不
2、能保证数据的准确性和及时性,而且浪费人力和大量的时间,手工操作可能造成数据录入的错误,若不及时发现会在造成不必要的麻烦。库房进出珠宝记录冗长,复杂,查找工作不能及时直观的显示出来以供查阅,影响工作的效率。对珠宝的各种费用的管理更是繁琐,出错率高。随着计算机的普及以及相关技术的发展,开发一个珠宝销售管理系统的时机已经成熟。高效率、无差错的珠宝销售管理系统的开发解决了这个问题,本系统的主要目的是告别原始的手工操作,安全快捷的保存数据信息,节省时间,提高了速度和准确性。珠宝销售管理系统可以避免珠宝店珠宝管理的随意性,使得管理工作规范化、系统化、程序化,提高信息处理的速度和准确性,对于减轻工作人员的劳
3、动量、提高劳动热情和服务质量,具有重要的现实意义。1。2 用户需求珠宝销售管理系统是一款用于珠宝首饰销售企业的管理系统,实现了对产品的实际情况的准确掌握,不同时间段店铺产品的库存情况、不同阶段的产品的销售情况,都可以进行详细的分析,为采购新的系列产品提供充分的销售依据.本系统还具有员工信息管理与供应商信息管理、利润统计、客户管理、会员管理,是广大珠宝销售店铺快速提高管理能力的好帮手.该系统在功能上主要包括基本信息(职员信息、产品信息、供应商信息、客户信息);采购进货(进货登记、退货登记、付款登记、欠供商统计);预订管理(产品预订,预订报表);产品销售(产品销售、销售报表、客户退货、退货报表);
4、库存管理(库存明细、库存报表、库存预警);会员管理(会员信息、会员报表、到期提醒);客户管理(客户信息、客户报表)其它费用(其它收入、收入报表、其它支出、支出报表);信息统计查询(期间收入查询、期间利润查询、期间进).珠宝销售管理系统会员管理库存管理库存预警系统登陆库存报表库存明细珠宝添加会员修改会员删除会员查询客户管理客户添加客户修改客户删除客户查询统计模块系统维护商品维护产品销售系统维护费用管理图1.2 珠宝销售管理系统的功能模块图1.3 功能模型 以下为客户信息管理,会员信息管理、采购进货的功能模型(如图131、132、1-33所示) 图1。3。1客户信息管理用例图图1.3.2会员信息管
5、理用例图图1。3。3 采购进货用例图1。4 数据流程图图1。4。1 客户信息数据流图图1.4.2会员信息数据流图图1。4。3 采购进货数据流图登陆添加客户信息更新客户信息客户信息是修改客户信息删除客户信息查询客户信息是否完成?否1.5 业务流程图图1.5.1客户信息业务流程图登陆添加会员信息更新会员信息会员信息是修改会员信息删除会员信息查询会员信息是否完成?否图1.5.2会员信息业务流程图洽谈新供应商更换供应商供应商详细列表采购部录入进入新采购珠宝信息采购员下新订单已有?同意无不同意图1。5。3采购进货业务流程图1。6 系统流程图管理员登陆系统管理基本信息管理客户管理查询客户信息修改客户信息添
6、加客户信息删除客户信息确定删除否否否是是是图1。6.1客户信息管理系统流程图管理员登陆系统管理基本信息管理会员管理查询会员信息修改会员信息添加会员信息删除会员信息确定删除否否否是是是图1.6.2会员信息管理系统流程图事务进货信息程序所查询的货品信息查询结果库存信息文件进货操作订货报告图1.6.2采购进货管理系统流程图第二章 概要设计2。1 硬件环境硬件环境:CPU Celeron 1G, Memory 64MB2.2 软件环境1、为运行本系统,计算机硬件应满足如下要求 486DX/66MHz 或更高的处理器(推荐 Pentium 或更高的处理器),或运行于Microsoft Windows N
7、T Workstation 的 Alapha 处理器。Microsoft Windows 支持的VGA或分辨率更高的监视器,16 MB 内存以上鼠标或其他定点设备2、软件环境应满足如下要求本系统在 Windows 98 下开发,应用 Microsoft Access 作后台服务器,如果本系统应用于比较大的珠宝公司,建议应用 SQL Serers 2000 或Oracle 等大型的数据库作后台。 推荐桌面显示方式为 1024*768 像素3、软件安装:直接安装即可。2。3 软件特点软件特点如下:1、界面设计简洁,美观,操作流程人性化,普通用户亦可很快上手;2、每条出进货记录均可添加多项出进货物品
8、,满足实际需要;3、短缺产品和会员卡到期是系统自动提醒;4、完善的二次开发功能,用户可自行或联系我们添加所需要的新功能2。4 概念数据模型图2。4概念数据模型第三章 详细设计3。1 功能阐述珠宝销售管理系统实现了对产品的实际情况的准确掌握,不同时间段店铺产品的销售情况、不同阶段的产品的库存情况,都可以进行详细的分析,为采购新的系列产品提供充分的销售依据。本系统还具有客户信息管理与会员信息管理等功能,是广大珠宝销售店铺快速提高管理能力的好帮手。本实例的主要功能如下: 1、采购进货(进货登记、退货登记、付款登记、欠供商统计);2、客户信息(客户姓名、地址、联系方式、消费金额);3、会员信息(会员姓
9、名、地址、联系方式、累计积分);软件特点如下:1、界面设计简洁,美观,操作流程人性化,普通用户不需培训也能很快上手;2、每条出进货记录均可添加多项出进货物品,满足实际需要;3、短缺产品和会员卡到期是系统自动提醒;4、完善的二次开发功能,用户可自行或联系我们添加所需要的新功能.3。2 功能界面模型客户信息管理客户信息管理是珠宝首饰销售管理系统的功能之一主要包括添加客户信息、查询客户信息、修改客户信息以及删除客户信息等基本操作。图32-1客户添加图3-2-2客户查询/修改/删除客户信息管理客户信息管理是珠宝首饰销售管理系统的功能之一主要包括添加客户信息、查询客户信息、修改客户信息以及删除客户信息等
10、基本操作。图323会员添加图3324会员查询/修改/删除采购进货管理是珠宝首饰销售管理系统的功能之一主要包括进货登记、进货查询等基本操作.图325进货登记3。3 程序流程图开始用户登录读取用户类型管理自己的用户信息管理普通用户的信息管理自己的用户信息基本信息管理采购进货管理预订信息管理客户信息管理库存信息管理理会员信息管理其他费用管理失败超过3次退出程序重试否失败成功Admin用户普通用户是用户管理模块珠宝销售管理模块图331 珠宝销售管理系统程序流程图3.4 主要代码/*add.c:添加珠宝信息记录*/#include stdio。h”void AddRecord() FILE *fp =
11、NULL; /*定义指向文件的指针*/ product TmpS; /*定义进行操作时的临时结构体变量*/ char DataFile40 = ”; /*存储珠宝信息的文件名*/ int count = 1; /*计算可输入数据的最大范围/ /*=输入要添加商品信息的文件名=/ printf(”n please input the product information file name to add record:); printf(n Notice:Name of file cant exceed 8 characters.suffix cant exceed 3 characters,
12、part of exceed will be discarded.n”); gets(DataFile); /如顾客没有输入,则循环提示顾客输入*/ while(*DataFile = (0)) printf(n please input new file name to store data,end with enter.”); printf(”n Notice:Name of file cant exceed 8 characters,suffix cant exceed 3 characters.part of exceed will be discarded。n”); gets(Dat
13、aFile); fp = fopen(DataFile,a+);/a+:当文件存在时,追加,当文件不存在时,创建*/ /*如果当前文件不存在,提示打开文件失败*/ if (fp = NULL) printf(n Open file %s fail!End with any key。n,DataFile); perror(Open file fail); getch(); exit(1); /*如果成功打开或创建文件,则提示输入商品序号、名称、价格要素等相关信息/ printf(input number,name and salary。number is 0 means input is end
14、.n); printf(Number is not exceed 9 figures,Name is not exceed 20 characters,range of grade:0。001000.00n”); /*循环从键盘上读取顾客输入的序号、名称、价格要素等相关信息*/ while(count = SIZE) /*输入序号,如为0则停止输入/ printf(”n input number =0 means end input。n); printf(number=”); scanf(ld”,&TmpS。Number); if (TmpS.Number = 0 ) break; /提示输入
15、商品名称*/ printf(name=”); scanf(%s,TmpS。Name); /*提示输入商品价格/ printf(”price=); scanf(”f”,TmpS.price); /*提示输入商品折扣*/ printf(”discount=”); scanf(%f,&TmpS.discount); /*用公式自动计算商品会员价/ TmpS.memberprice=TmpS。priceTmpS。discount; printf(n”); /如遇无法写入文件的异常,则加以提示/ if(fwrite(&TmpS,sizeof(product),1,fp)!=1) printf(”nwri
16、te file %s fail!End with any keyn”,DataFile); perror(”Write file fail ”); getch(); exit(1); count+; /如果输入的数据量超过最大允许的范围,则提示数据不能录入/ if (countSIZE) printf(nsorry,number of data can not exceed%dn,SIZE); fclose(fp); /=在屏幕上显示文件内容=/ /* clrscr();*/ printf(The data you input is store successful %s in file.n,
17、DataFile); printf(”Content as follow:n); fp=fopen(DataFile,”rb); if (fp = NULL) printf(”nOpen file%sfail!End with any key n,DataFile); perror(”Open file fail”); getch(); exit(1); printf(nNumbertNametpricetdiscountmemberpricen”); while(fread(&TmpS,sizeof(product),1,fp) != (int)NULL) printf(”nldtst%4.
18、1ft4.1ft%4.1fn,TmpS.Number,TmpS.Name,TmpS.price,TmpS.discount,TmpS.memberprice); fclose(fp);/ adduser.c增加用户信息记录 */ #include ”stdio。h”void AddUser() FILE fp = NULL; user Show; user TmpS; char DataFile40 = yonghu”;/*存储用户信息文件名/ int count = 1; /计算可输入数据的最大范围/ fp = fopen(DataFile,ab+);/a+:当文件存在时,追加,当文件不存在
19、时,创建/ /如果当前文件不存在,提示打开文件失败/ if (fp = NULL) printf(”n Open file s fail!End with any key.n,DataFile); perror(”Open file fail); getch(); exit(1); /*如果成功打开文件,则提示输入用户相关信息/ printf(input number,name and salary。number is 0 means input is end。n”); printf(Number is not exceed 9 figures,Name is not exceed 20 ch
20、aracters,range of grade:0.001000.00n”); /循环从键盘上读取用户输入的用户相关信息*/ while(count = SIZE) printf(”n input number =0 means end input.n”); printf(”number=); scanf(%ld,&TmpS。Number); if (TmpS。Number = 0 ) break; printf(name=); scanf(”%s,TmpS.Name) getchar(); printf(ps=”); scanf(%s,TmpS.ps); printf(power=); sc
21、anf(d”,TmpS。power); printf(n”); /*如遇无法写入文件的异常,则加以提示*/ if(fwrite(&TmpS,sizeof(user),1,fp)!=1) printf(nwrite file %s fail!End with any keyn”,DataFile); perror(Write file fail ); getch(); exit(1); count+; /*如果输入的数据量超过最大允许的范围,则提示数据不能录入*/ if (countSIZE) printf(nsorry,number of data can not exceeddn,SIZE)
22、; fclose(fp); /=在屏幕上显示文件内容=/ printf(”The data you input is store successful s in file。n”,DataFile); printf(”Content as follow:n); fp=fopen(DataFile,rb); if (fp = NULL) printf(nOpen file%sfail!End with any key n,DataFile); perror(Open file fail”); getch(); exit(1); printf(”nNumberttNametpstpowern); w
23、hile(fread(&Show,sizeof(user),1,fp) != (int)NULL) printf(”n%ldtstst%dn”,Show.Number,Show.Name,Show.ps,Show.power); fclose(fp);/*admin.c:管理员功能选择界面,根据客户选项调用相应函数实现系统功能*/include shead.h”#include ”creat。c#include add。c”include delete。c”#include modnum。c”#include ”qname。c”#include ”qseatnum.c”#include smp
24、rice.cvoid Admin() int choice = 0; /*存放客户选项的变量*/ /*=功能及操作的界面提示=*/ while(1) printf(”-n); printf(” |n); printf(”| Welcome to Product Management System n”); printf(”| |n”); printf(-|n); printf(”| 1. Init Product Information File n”); printf(” 2。 AddProduct() |n); printf( 3。 DelProduct() n); printf(| 4.
25、 QueryByProductName() |n”); printf( 5. QueryByProductNum() |n”); printf(”| 6. ModifyByProductNumber() |n”); printf( 7。 SortByMemberPrice() n); printf(+n); printf(” System User Management n); printf(” 11.CreatNewUserFile() n”); printf(”| 12。AddUser() |n); printf(” 13。DelUser() |n); printf( 14.ModifyU
26、ser() n); printf(” 15。SortByUserNum() |n”); printf(”+n); printf(” 0. Exit System n); printf(-n); printf(”# Please Input Your Choose #n”); printf(# number 17 to Manage the Product Information n”); printf(”# number 11,12,13,14,15 to Manage the System User n); printf(# number 0 to Exit the System #n);
27、printf(”-n); scanf(d”,choice); getchar(); /*根据客户选项调用相应函数/ switch(choice) case 1: CreatFile(); break; case 2: AddRecord(); break; case 3: DelRecord(); break; case 4: QueryByName(); break; case 5: QueryBySeatNum(); break; case 6: ModifyByNumber(); break; case 7: SortByMemberPrice(); break; case 11: Cr
28、eatUser(); break; case 12: AddUser(); break; case 13: DelUser(); break; case 14: ModifyByUserNumber(); break; case 15: SortByUserNum(); break; case 0: exit(0); default: break; /*creat.c:用于创建商品信息文件*/#include stdio。h”/函数CreatFile/void CreatFile() FILE *fp = NULL; /定义指向文件的指针/ product TmpS; /定义进行操作时存放结构
29、体变量的/ char DataFile40 = ”;/存储商品信息的文件名*/ int count = 1; /计算可输入数据的最大范围*/ /=输入存放商品信息的文件名=/ printf(”n please input new file name of product information.”); printf(”n Notice:Name of file cant exceed 8 characters。suffix cant exceed 3 characters,part of exceed will be discarded。n”); gets(DataFile); /如顾客没有输
30、入,则循环提示顾客输入/ while(*DataFile = (0) printf(”n please input new file name to store data,end with enter。); printf(n Notice:Name of file cant exceed 8 characters,suffix cant exceed 3 characters。part of exceed will be discarded.n); gets(DataFile); /*用二进制写的方式打开文件,即创建文件/ fp = fopen(DataFile,wb+”); /*如果当前文件
31、不存在,提示打开文件失败*/ if (fp = NULL) printf(”n Open file s fail!End with any key。n”,DataFile); perror(Open file fail”); getch(); exit(1); /如果成功打开或创建文件,则提示输入商品序号、名称、价格要素等相关信息*/ printf(”input product infotmation record。number is 0 means input is end.n); printf(”Number is not exceed 9 figures,Name is not exce
32、ed 20 characters,range of grade:0。001000。00n); /循环从键盘上读取顾客输入的序号、名称、价格要素等相关信息*/ while(count = SIZE) /输入序号,如为0则停止输入*/ printf(n input number =0 means end input。n); printf(number=”); scanf(ld,&TmpS.Number); if (TmpS.Number = 0 ) break; /*提示输入商品名称*/ printf(”name=”); scanf(”s”,TmpS。Name); /提示输入商品商品价格/ pri
33、ntf(”price=); scanf(”f”,&TmpS.price); /提示输入商品折扣/ printf(”discount=); scanf(”f,TmpS.discount); /*用公式自动计算会员价*/ TmpS。memberprice=TmpS。priceTmpS.discount; printf(n); /*如遇无法写入文件的异常,则加以提示/ if(fwrite(&TmpS,sizeof(product),1,fp)!=1) printf(nwrite file %s fail!End with any keyn,DataFile); perror(”Write file
34、fail ”); getch(); exit(1); count+; /*如果输入的数据量超过最大允许的范围,则提示数据不能录入/ if (countSIZE) printf(”nsorry,number of data can not exceed%dn,SIZE); fclose(fp); /*=在屏幕上显示文件内容=*/ /* clrscr();*/ printf(The data you input is store successful %s in file.n,DataFile); printf(Content as follow:n); fp=fopen(DataFile,rb)
35、; if (fp = NULL) printf(”nOpen filesfail!End with any key n,DataFile); perror(Open file fail); getch(); exit(1); printf(”nNumbertNametpricetdiscounttmemberpricen”); while(fread(TmpS,sizeof(product),1,fp) != (int)NULL) 、 printf(”nldt%st4。2ft%4.2ftt%4。2fn”,TmpS.Number,TmpS.Name,TmpS。price,TmpS。discount,TmpS。memberprice);