销售管理程序设计说明书.doc_第1页
销售管理程序设计说明书.doc_第2页
销售管理程序设计说明书.doc_第3页
销售管理程序设计说明书.doc_第4页
销售管理程序设计说明书.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

课程设计说明书 1 需求分析 销售管理系统的需求分析主要确定系统的主要功能,对系统进行概要描述,对系统的各个主要功能分别进行需求描述,目的是使软件在设计过程中尽量符合客户的需要。1.1系统概述 销售管理系统是一个对销售信息进行数据录入、删除、修改、显示、插入、查找、排序以及数据保存等功能。1.2功能需求 该软件提供了一个对销售信息进行管理和查看的平台,给用户提供了一个简单友好的用户接口,功能需求如下:1.2.1密码系统 通过已定密码进入对应管理目录,从而进行相应的操作功能。1.2.2两级管理系统 分为用户和管理员两级管理系统两类。管理员可通过密码实现对销售资料的录入、删除、修改等所有操作,而用户只能进行查询和浏览操作。1.2.3数据录入 输入基本信息包括销售员编号、销售产品的编号、以及当天的销售额等。1.2.4修改数据 修改数据指可以对指定数据进行修改并在修改前后对数据内容进行显示。1.2.5查找数据 查找数据指可以对要求的任意数据进行查找并显示查找结果。1.2.6插入数据 插入数据指在指定位置插入一条完整的信息。1.2.7数据排序 数据排序指按照信息的某个字段进行升序或降序排序,并显示排序结果1.2.8删除 删除销售产品的信息:提示管理员输入要进行删除操作的销售产品序号,如果在文件中有该销售产品的信息存在,则将该序号所对应的名称、序号等要素在对应文件中加以删除。并提示管理员选择是否继续进行删除操作。1.2.9显示 对所有信息显示。1.2.10数据保存 对修改显示过的所有信息存档保存。1.2.11退出系统2 总体设计根据上面的分析,可以将这个系统分为如下五大模块:查看每人每种产品的销售额 、按销售额对销售员排序、对每种产品总销售额从高到低排序、输出统计报表和退出。其中主要模块是前四个模块。2.1开发与设计的总体思想本系统主要应用结构化的设计思想实现销售产品信息的增、删、改和查等典型管理功能。各主要模块的数据均存储在文件中,因此包含对文件的读、写等基本操作。在软件开发过程中应用了高级语言程序设计中的基本控制结构,如选择、循环、顺序结构。系统的设计方法是结构化设计方法,采用C语言进行开发。2.2 系统功能结构图销售信息管理录入销售信息删除销售信息修改销售信息浏览销售信息查找销售信息保存音像信息3 详细设计3.1系统化分析将程序整体进行模块化处理,使程序编译思路更加清晰,降低了编译程序的难度。销售信息中包含编号、数量、等基本信息,程序具有信息录入、删除、修改、浏览、检索和存盘等功能。3.2密码分级管理服务为了区分管理员和顾客的身份,进行分级管理,方便管理员对某店面内的音像制品的各种管理操作以及顾客对某店面内的音像资料的大概了解查询、浏览,设置了密码服务公能。管理员通过输入密码进入管理员界面,从而可以执行所有管理系统的操作,而顾客只能选择其对应界面进行仅有的查询和浏览功能。3.3主函数及主页面首先设计出主函数,就有了程序的框架,有了主调用函数和主菜单,从主界面可以选择所要求的操作,使操作方便,易于进行查找、插入、修改、删除等功能。3.4录入模块 管理员可以利用此程序把需要输入的信息,可以重复操作,以便减少多次返回主页面。3.5修改模块考虑到有些信息可能会发生变动,该系统设置了修改模块,如果某个编号的信息发生变动,管理员可以通过此模块对该编号下的其他信息进行修改。3.6查找模块亦称检索模块。如果信息太多查找起来很不方便,对此我们系统设计了查找模块,使用户可以很方便的找到自己需要的信息。本模块可通过输入商品或销售员的一部分信息进行查找,之后系统会显示其所有的信息。输入信息不存在则出本次查询。3.7插入模块 系统管理员通过此模块可以在原有记录的基础上随意的插入其他销售信息,通过系统的提醒依次的录入所要记录的所有信息,可以插入多个信息,并且不需重新回到主界面,直接在系统的提示下进行再次输入。3.8数据排序模块 系统按照某个关键字词对所对应关键字词的信息进行大小排序,管理员可以清楚看到要比较的信息以及商品的销售情况,方便管理员清晰看到比较信息。3.9删除模块管理员通过这块模块可以对不需要的信息进行删除,使用方便,只需要输入所要删除的商品编号即可,系统会自动搜索,确定删除后此信息消失。3.10显示模块显示所输入以及修改以后的信息方便管理员核对确认。3.11存储模块保存管理员锁存信息以便查找。3.12退出系统 当对系统操作完成以后,想退出此操作只需在界面中选择退出系统模块的代号,系统就自动退出此次运行程序。4 总结这次的C语言程序设计实习有效的培养了学生独立思考的能力,提高了学生的动手操作水平。在具体操作中,巩固了这学期所学的C语言的理论知识,这也是实习的基本目的。通过实际操作,学会了C语言程序编程的基本步骤、基本方法,开发了自己的逻辑思维能力,培养了分析问题、解决问题的能力。培养了学生独立思考问题的能力,提高了实际操作水平。通过这次对音像资料自助检索系统的编译,我们了解了C语言程序设计的思想,我们的程序很实用,但它依然有许多不足之处,我所编译的程序容量有限,而且每次操作都要回到主界面,在这方面该系统还有待于进一步优化。C语言是一种基础的计算机高级语言,具有功能丰富,表达能力强,使用灵活方便,应用面广,目标程序效率高,通过这次的C语言程序设计更加深刻的了解了C语言的好处和其可用性。在这次课程设计中我也知道了自己的动手能力不强,有待于进一步提高。在设计过程中不能够灵活得把书本上的知识与实际相结合,在调试过程中一次次出错,差点是我放弃,但是在同组同学的帮助、鼓励和配合下,最终我完成了此次课程设计的任务。这也使我重新树立了自信心,相信自己可以做好,但是要扎实掌握理论知识,灵活运用。总之,通过这次实习我认识到了自己许多不足之处,在今后的学习生活中,一定要勤于思考,扎实掌握理论知识,灵活运用课上所学。参考文献1 谭浩强,张基温C语言程序设计教程(第3版)M北京:高等教育出版社,20062 吕凤煮C语言基础教程基础理论与案例M北京:清华大学出版社,20053 黄明、梁旭、万洪莉C语言课程设计M北京:电子工业出版社,20064 郭宁,郑小玲管理信息系统M北京:人民邮电出版社,20065 赵池龙,杨林,陈伟实用软件工程M北京:电子工业出版社,2006附录程序清单:#include /*标准输入输出函数库*/#include /*标准函数库*/#include /*字符串函数库*/#define FORMAT %-10s%-16s%-16s%-16s%-13d%-20stn#define DATA p-data.num,,p-data.print,p-data.auther,p-data.bookamount,p-data.priceint saveflag=0; /*是否需要存盘的标志变量*/char sss255; /*临时数组*/*定义有关的数据结构*/typedef struct book /*标记*/ char num10;/*销售员编号*/ char name15;/*销售品1*/ char print30;/* 销售品2*/ char auther15;/*销售品3*/ int bookamount;/*销售品4*/ char price10;/*销售品5*/;/*定义每条记录或结点的数据结构,标记为:node*/typedef struct node struct book data; /*数据域*/ struct node *next; /*指针域*/Node,*Link; /*Node为node类型的结构变量,*Link为node类型的指针变量*/函数声明void menu(void);void menu1(void);void NodeAdd(Link h);void LinkDisp(Link h);void Save(Link h);void Wrong(void);int del(Node *h,char x);void f2(Link h);void modif(Link h,char x);void in_data(Link h,char x,char y);void finding(Link h,char x);void f6(Link h);void main() Link h,p,r; /*定义链表*/ FILE *fp; char x16,y16; /*文件指针*/ int select; int n1,n2=0,n3=0; /*保存选择结果变量*/ char ch; /*保存(y,Y,n,N)*/ int count=0; /*保存文件中的记录条数(或结点个数)*/ /Node *p,*r; /*定义记录指针变量*/ printf(nnn 销售员请按1t销售经理请按2tn); scanf(%d,&n1); if(n1=2) long num=3090216112; long a; int n3=0;printf(请输入密码:); while (n3next=NULL; r=h; fp=fopen(C:book,ab+); /*以追加方式打开一个二进制文件,可读可写,若此文件不存在,会创建此文件*/ if(fp=NULL) printf(不能打开文件n); exit(0); while(!feof(fp) p=(Node*)malloc(sizeof(Node); if(!p) printf(申请内存错误!n); /*没有申请成功*/ exit(0); /*退出*/ if(fread(p,sizeof(Node),1,fp)=1) /*一次从文件中读取一条记录*/ p-next=NULL; r-next=p; r=p; /*r指针向后移一个位置*/ count+; fclose(fp); /*关闭文件*/ while(1) if(n2=1) menu(); p=r; printf(n 输入您的选择(07):); /*显示提示信息*/ scanf(%d,&select); if(select=0) getchar(); if(saveflag=1) /*若对链表的数据有修改且未进行存盘操作,则此标志为1*/ printf(n 是否存盘?(y/n):); scanf(%c,&ch); if(ch=y|ch=Y) Save(h); printf(n 谢谢您的使用!n); getchar(); break; switch(select) case 1:NodeAdd(h);break; case 2:printf(输入要删除的编号);scanf(%s,x);if(del(h,x)printf(n删除了该信息nn); else printf(n找不到该信息nn); int i=0; while(inext; system(cls); LinkDisp(h); while(r-next!=NULL) r=r-next; while(1) while(1) printf(请输入销售员编号); strcpy(sss,); scanf(%s,sss); if(strlen(sss)10)printf(编号大于10n); free(p);return; flag=0; if(strcmp(sss,0)=0) /*输入为0,则退出添加操作,返回主界面*/ return; s=h-next; while(s) if(strcmp(s-data.num,sss)=0) flag=1; break; s=s-next; if(flag=1) /*提示用户是否重新输入*/ getchar(); printf(编号 %s 已经存在,换一个编号重新输入吗?(y/n):,sss); scanf(%c,&ch); if(ch=y|ch=Y) continue; else return; else break; p=(Node *)malloc(sizeof(Node); /*申请内存空间*/ if(!p) printf(n申请内存空间失败!); /*如没有申请到,打印提示信息*/ return; strcpy(p-data.num,sss); /*将字符串sss拷贝到p-data.num中*/ printf(输入销售品: ); strcpy(sss,); scanf(%s,sss); if(strlen(sss)20)printf(输入销售品1: );free(p);return; strcpy(,sss); printf(输入销售品2: ); strcpy(sss,); scanf(%s,sss); if(strlen(sss)20)printf(输入错误!n);free(p);return; strcpy(p-data.print,sss); printf(输入销售品3:); scanf(%s,&(p-data.auther); printf(输入销售品4:); scanf(%d,&(p-data.bookamount); if(p-data.bookamountdata.price); p-next=NULL; /*表明这是链表的尾部结点*/ r-next=p; /*将新建的结点加入链表尾部中*/ r=p; saveflag=1; printf(n); return ;void LinkDisp(Link h) Link p; p=h-next; printf(n); printf(销售员编号 销售品1 销售品2 销售品3 销售品4 销售品5 ); if(!p) printf(n没有数据记录!n); getchar(); getchar(); return; printf(nn); while(p) /*逐条输出链表中存储的信息*/ printf(FORMAT,DATA); p=p-next; /*移动至下一个结点*/ getchar(); getchar();void Wrong(void) printf(n 输入错误,按任意键继续!n); getchar(); getchar();void Save(Link h) FILE* fp; Node *p; int count=0; fp=fopen(C:book,wb);/*以只写方式打开二进制文件*/ if(fp=NULL) /*打开文件失败*/ printf(n文件打开失败!n); getchar(); return ; p=h-next; while(p) if(fwrite(p,sizeof(Node),1,fp)=1)/*每次写一个节点信息至文件*/ p=p-next; count+; else break; if(count0) getchar(); printf(nnn文件保存成功!记录总数为:%dn,count); getchar(); saveflag=0; else system(cls); printf(没有记录!n); getchar(); fclose(fp); /*关闭文件*/ int del(Node *h,char x) Node *p,*q;int i=1; p=h-next; if(p=0) printf(空表n); while(strcmp(x,p-data.num)!=0)&(p-next!=0) q=p; p=p-next; if(strcmp(x,p-data.num)=0) if(p=h-next) h-next=p-next; else q-next=p-next; free(p); else i=0;return (i);void f2(Link h)void modif(Link h,char x)Node *p,*q; p=h-next; if(p=0) printf(空表n); while(strcmp(x,p-data.num)!=0)&(p-next!=0) q=p; p=p-next; if(strcmp(x,p-data.num)=0)printf(输入修改的编号);scanf(%s,sss);strcpy(p-data.num,sss); /*将字符串sss拷贝到p-data.num中*/ printf(输入销售品1:); strcpy(sss,); scanf(%s,sss); if(strlen(sss)20)printf(输入名错误:);free(p);return; strcpy(,sss); printf(输入销售品2:); strcpy(sss,); scanf(%s,sss); if(strlen(sss)20)printf(输入错误!n);free(p);return;strcpy(p-data.print,sss); printf(输入销售品3:); scanf(%s,&(p-data.auther); printf(输入销售品4:); scanf(%d,&(p-data.bookamount); if(p-data.bookamountdata.price);void in_data(Link h,char x,char y)Node *s, *p, *q;int f=1; s=(Node*)malloc(sizeof(Node); strcpy(s-data.num,y); printf(输入销售品1:); strcpy(sss,); scanf(%s,sss); if(strlen(sss)20)printf(输入书名:);f

温馨提示

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

评论

0/150

提交评论