当前位置:文档之家› C语言销售管理系统

C语言销售管理系统

(一)、设计内容与设计要求1.设计内容:设计课题四:销售管理系统一、问题描述:通过本系统实现对N个销售员信息的录入、显示、添加、删除,以及对产品销售额的排序等操作的管理。

二、功能描述:1、本系统采用一个包含n个数据的结构体数组,每个数据的结构应当包括:姓名、身份、产品1销售额、产品2销售额、总产品销售额。

2、本系统显示这样的菜单:销售管理系统1、销售员信息输入2、销售员信息输出3、删除销售员4、添加销售员5、销售额排序6、统计产品销售额7、保存销售额信息0、退出系统3、执行一个具体的功能之后,程序将重新显示菜单。

4、将系统信息保存在文件中。

三、算法提示:1、数据结构:结构体类型数组2、数据库结构:下表构成该系统的基本数据库四、测试数据:记录数20。

2.设计要求:1).设计正确,方案合理。

2).界面友好,使用方便。

3).程序精炼,结构清晰。

4).设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。

5).上机演示。

(二)、进度安排第一周课题讲解,查阅资料总,体设计,详细设计周日:8:00——12:0014:00-—18:00周一:8:00——12:00周三:14:00——18:00第二周编程,上机调试,修改程序,完善程序,答辩撰写课程设计报告周二:8:00——12:00周五:14:00——18:00附:课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。

正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。

正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。

正文总字数要求在5000字以上(不含程序原代码)目录一、需求分析 (1)二、概要设计 (1)三、详细设计 (5)四、调试分析以及设计体会 (6)五、使用说明 (6)六、附录 (7)一、需求分析1、程序的功能。

程序要完成的功能有:(1)销售员信息录入 (2)销售员信息显示(3)销售额信息保存(4)产品总销售额由大到小排序(5)统计产品销售额信息(6)插入销售员及其信息(7)删除销售员及其信息(0)退出销售管理系统2、输入输出的要求。

输入运用了scanf和gets函数;输出运用了printf函数。

二、概要设计1、程序由哪些模块组成以及一个模块之间的层次结构、模块的调用关系;每个模块的功能。

程序由主函数void main()、输入void input()、显示void show()、删除void del()、排序void sort()、添加void insert()、统计void statistic()、保存void save()、退出void exit()等九个模块组成。

本系统涉及的知识点:分支,循环,函数,数组,结构体,文件等。

各个函数模块的实现如下:(1)关于void main():采用switch分支控制语句,通过键盘输入值作为开关值,用以调用主菜单各大函数,从而实现主控职能。

C语言的函数调用遵循先定义后引用的原则,在程序的最开始就定义了众多的全局变量,如int i。

其调用关系如下:switch(i){case 0:printf("o 退出销售管理系统 o\n");exit(0);break;case 1:printf("-----销售员信息录入-----\n");input();break;case 2:printf("-----销售员信息显示-----\n");show();break;case 3:printf("-----销售额信息保存-----\n");save();break;case 4:printf("-----总销售额信息排序-----\n");sort();break;case 5:printf("-----统计产品销售额信息-----\n");statistics_sailer();break;case 6:printf("-----插入销售员及其信息-----\n");insert();break;case 7:printf("-----删除销售员及其信息-----\n");del();break;default:printf("输入错误,请重新选择!!");break;}}}(2) 录入函数void inprint ()的实现:由主菜单按‘1’键进入。

利用循环方式,将相关信息存入结构体数组,结构体组根据实际的纪录条数,建立销售员信息。

按照要求,分步依次录入信息:销售员个数,销售员姓名,销售员工号,产品一销售额,产品二销售额,实现途径为:void input(){int i;printf("请输入销售员个数\n");scanf("%d",&n);for(i=0;i<n;i++){printf("输入销售员姓名:\n");scanf("%s",seller[i].name);printf("输入销售员工号:\n");scanf("%s",seller[i].num);printf("请分别输入产品一和产品二的销售额:\n");scanf("%d%d",&seller[i].sailerl,&seller[i].sailerm);}system("cls");}(3) 显示函数void show()的实现:该功能是输出销售员中的所有信息: void show (){struct seller *p;system("cls");printf("姓名工号产品一销售额产品二销售额:\n");for(p=seller;p<seller+n;p++)printf("%-8s %2s %6d %12d\n",p->name,p->num,p->sailerl,p->sailerm) ;printf("\n\n");}(4)排序函数void sort()的实现:void sort(){struct seller temp;int i,j;for(i=0;i<n;i++)seller[i].sum=seller[i].sailerl+seller[i].sailerm;for(j=0;j<n-1;j++)for(i=0;i<n-1-j;i++)if(seller[i].sum<seller[i+1].sum){temp=seller[i];seller[i]=seller[i+1];seller[i+1]=temp;}system("cls");printf("姓名工号产品一销售额产品二销售额产品总销售额:\n");for(i=0;i<n;i++)printf("\n%s\t%s\t%d\t%8d\t%8d\n",seller[i].name,seller[i].num,se ller[i].sailerl,seller[i].sailerm,seller[i].sum);}(5)统计函数void statistics_sailer ()的实现:运用的语句是:void statistics_sailer (){int i,sum1,sum2,sum;sum1=0;sum2=0;sum=0;for(i=0;i<n;i++){sum1+=seller[i].sailerl;sum2+=seller[i].sailerm;sum=sum1+sum2;}system("cls");printf("产品一的销售额:%d\n",sum1);printf("产品二的销售额:%d\n",sum2);printf("产品总的销售额:%d\n",sum);}(6)保存函数void save ()运用以下语句实现:void save (){FILE *fp;int i;fp=fopen("seller.txt","w");for(i=0;i<n;i++)fwrite(&seller[i],sizeof(struct seller),1,fp);system("cls");printf("\n\n");printf("保存成功!\n");printf("\n\n");}(7)删除函数void del()的实现:输入要删除的销售员的姓名。

运用的语句是:void del(){char seller_name[20];int i,j;printf("输入要删除销售员的姓名:");fflush(stdin);scanf("%s",seller_name);for(i=0;i<n;i++){if(strcmp(seller_name,seller[i].name)==0){for(j=i;j<n;j++)seller[i]=seller[i+1];n=n-1;}break;}save();system("cls");}2、此程序的数据库存储的数据为:销售员的姓名、工号(身份)、产品一的销售额、产品二的销售额、产品总的销售额。

三、详细设计1、采用C语言定义相关的数据类型。

struct seller{char num[10];char name[20];int sailerl;int sailerm;int sum;}seller[200];2、画出函数的调用关系图。

四、调试分析以及设计体会1、问题以及解决问题的方法。

在开始编程时我就遇到了问题,首先是心理问题,心里感到一个系统那么复杂要编出来真是太难了。

然后在程序编写过程中我遇到了函数没有定义就运行的问题,一开始我还不知道,但通过向老师和同学询问终于改正了这个问题。

相关主题