c语言销售管理系统
- 格式:docx
- 大小:35.04 KB
- 文档页数:24
商品销售管理系统目录一、需求分析 (2)二、概要设计 (2)三、详细设计 (4)四、调试分析 (14)五、用户手册 (14)六、测试数据 (15)七、附录 (18)—1—一、需求分析商品销售管理程序商品信息:商品编号、商品名称、商品类别(普通电视机、DVD、带DVD 的电视机,带DVD的电视机的售价为普通电视机和DVD单价之和的80%)、商品进货价格、商品销售价格、商品数量、供应商名称等。
记录每一次销售商品的数量和价格,并提供对已售出商品的价格、数量进行统计、排序功能,但允许用户退商品。
(要求:1.源文件采用多文件的工程结构2.数据存储采用文件形式3.标准的C 输入输出4.功能完善,适当的注释,5.关于文件的内容需要自学)二、概要设计(一)按系统分析的功能要求将系统划分为以下几个主要功能模块:1、文件管理文件打开、关闭:对于刚输入或进行操作后的商品信息,在建立新的商品库存量后,可以把其保存在一个文件中,并对该文件可进行打开和关闭操作。
2、进出货管理(1)商品进货: 输入数据后商品信息能自动更新进行添加(2)商品销售: 输入数据后商品信息能自动更新进行减少3、商品数据管理(1)增加/删除商品: 添加或删除某条商品的信息(2)修改商品信息: 对某条商品的信息进行修改4、浏览商品信息管理(1)查询商品信息:可分别按商品编号、名称、类别或需要进货商品查询(2)排序商品信息: 可按商品编号、名称、类别分别排排序(3)浏览商品信息:可浏览输入、查询或排序后的数据。
(二)本程序结构(1)结构体设计struct goods{ long int num;char name[20];char sort[20];long int count;long int price;}goods[200];(2)各功能函数设计:void input() /*功能1:输入商品信息*/—2—void sequence() /*功能2:排序商品信息*/void purchase() /*功能3:进货商品信息*/void sell() /*功能4:销售商品信息*/void edit() /*功能5:添加或删除商品信息*/void correct() /*功能6:修改商品信息*/void search() /*功能7:查询商品信息*/void scan() /*功能8:浏览商品信息*/void reserve() /*功能9:保存文件*/void quit() /*退出系统*/(3)主函数设计:void main (){void input();void sequence();void purchase();void sell();void edit();void correct();void search();void scan();void reserve();lp: for(i=0;i<1;i++)scanf("%d",&k);system("cls");switch(k) /*用switch语句实现功能选择*/system("cls"); /*清屏*/goto lp; /*返回主界面*/}三、详细设计(1)各功能函数:void input() /*功能1:输入商品信息*/{printf("\n 请输入需要建立新库存的商品种类数量:");scanf("%d",&n);system("cls");printf("\n …………………………………………………………………………………………………\n");for(i=0;i<n;i++) /*用循环实现输入n个商品*/{printf("\n\t*请输入商品的编号:");scanf("%ld",&goods[i].num);printf("\n\t 请输入商品的名称:");—3—scanf("%s",goods[i].name);printf("\n\t 请输入商品的种类:");scanf("%s",goods[i].sort);printf("\n\t 请输入商品的数量:");scanf("%d",&goods[i].count);printf("\n\t 请输入商品的单价:");scanf("%d",&goods[i].price);printf("\n …………………………………………………………………………………………………\n");}printf("\tPlease press any key to continue:");getch();return; /*返回主界面*/}void sequence() /*功能2:排序商品信息*/{long temp;char p1[30],p2[30];for(k=0;k<n-1;k++) /*(1): 按编号排序*/for(i=0;i<n-k-1;i++) /*用起泡法排序*/if(goods[i].num>goods[i+1].num) /*按编号由小到大排序*/{temp=goods[i].num;goods[i].num=goods[i+1].num;goods[i+1].num=temp;strcpy(p1,goods[i].name);strcpy(goods[i].name,goods[i+1].name);strcpy(goods[i+1].name,p1);strcpy(p2,goods[i].sort);strcpy(goods[i].sort,goods[i+1].sort);strcpy(goods[i+1].sort,p2);}printf("--------------------------------------------------------------------------------\n");printf("\n\t\t按商品编号排序后的商品信息\n\n");printf("\t商品编号商品名称商品类别商品数量商品单价\n"); /*输出排序后商品信息*/for(i=0;i<n;i++){printf("\t %5ld %5s %5s %5ld %5ld\n",go ods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price) ;}for(k=0;k<n-1;k++) /*(2): 按商品名称排序*/for(i=0;i<n-k-1;i++)if(strcmp(goods[i].name,goods[i+1].name)>0){strcpy(p1,goods[i].name);strcpy(goods[i].name,goods[i+1].name);strcpy(goods[i+1].name,p1);temp=goods[i].num;goods[i].num=goods[i+1].num;goods[i+1].num=temp;strcpy(p2,goods[i].sort);strcpy(goods[i].sort,goods[i+1].sort);strcpy(goods[i+1].sort,p2);}printf("--------------------------------------------------------------------------------\n");printf("\n\t\t按商品名称排序后的商品信息\n");printf("\n\t商品名称商品编号商品类别商品数量商品单价\n"); /*输出排序后商品信息*/for(i=0;i<n;i++){printf("\t %5s %5ld %5s %5ld %5ld\n",goods[ i].name,goods[i].num,goods[i].sort,goods[i].count,goods[i].price);}for(k=0;k<n-1;k++) /*(3): 按商品类别排序*/for(i=0;i<n-k-1;i++) /*用起泡法排序*/if(strcmp(goods[i].sort,goods[i+1].sort)>0){strcpy(p2,goods[i].sort);strcpy(goods[i].sort,goods[i+1].sort);strcpy(goods[i+1].sort,p2);temp=goods[i].num;goods[i].num=goods[i+1].num;goods[i+1].num=temp;strcpy(p1,goods[i].name);strcpy(goods[i].name,goods[i+1].name);strcpy(goods[i+1].name,p1);}printf("--------------------------------------------------------------------------------");printf("\n\t\t按商品类别排序后的商品信息\n\n");printf("\t商品类别商品编号商品名称商品数量商品单价\n"); /*输出排序后商品信息*/for(i=0;i<n;i++){printf("\t %5s %5ld %5s %5ld %5ld\n",goods[i].sort,goods[i].num,goods[i].name,goods[i].count,goods[i].price);}printf("--------------------------------------------------------------------------------");printf("please press any key to continue:");getch();return; /*返回主界面*/}void purchase() /*功能3:进货商品信息*/ {long temp; /*定义临时变量表示刚进货的商品编号*/int j;printf("\n\t\5请输入刚进货的商品编号:");scanf("%ld",&temp);printf("\n\t\5请输入刚进货的商品数量:");scanf("%d",&j);printf("\n\n\n\tpress any key to contiue:");getch();system("cls");printf("\n\t输出进货后的商品信息:");for(i=0;i<n;i++) /*循环,寻找与进货相同的商品信息*/if(temp==goods[i].num)goods[i].count=goods[i].count+j; /*自动更改商品数量*/printf("\n\t商品编号商品名商品类别商品数量商品价格");for(i=0;i<n;i++) /*循环,输出进货后的商品信息*/{printf("\n\t %4ld %4s %4s %ld %4ld",goods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);}printf("\n\n\t\tPress any key to enter menu:");getch(); /*返回功能选择界面*/return;}—6—void sell() /*功能4:销售商品信息*/{long temp; /*定义临时变量temp表示刚销售的商品编号*/int j;printf("\n\t\5请输入刚销售的商品编号:");scanf("%ld",&temp);printf("\n\t\5请输入刚销售的商品数量:");scanf("%d",&j);for(i=0;i<n;i++) /*循环,找到刚销售的商品信息*/{if(temp==goods[i].num){for(;j>goods[i].count;) /*如果销售额大于库存量,则出现错误提示*/{printf("\n\t售出数量大于商品原有数量,出现错误,请重新输入:");scanf("%d",&j);}goods[i].count=goods[i].count-j; /*完成自动更改商品数量的功能*/}}printf("\n\tpress any key to contiue:");getch();system("cls"); /*清屏*/printf("\n\n *销售后商品信息:");printf("\n\t商品类别商品编号商品名称商品数量商品单价\n");for(i=0;i<n;i++) /*循环,输出销售后商品信息*/{printf("\t %4s %4ld %4s %4ld %4ld\n",goods[i].sort,goods[i].num,goods[i].name,goods[i].count,goods[i].price);}printf("\n\tPress any key to enter menu:");getch();return; /*返回功能选择界面*/}void edit() /*功能5:添加或删除商品信息*/ {void add(); /*声明子函数*/void dele();—7—printf("\n\t请选择:1.添加商品信息; 2.删除商品信息;");printf("\t*请输入 1或2 继续:");scanf("%d",&k);switch(k) /*用switch语句实现功能选择*/{case 1: add();break;case 2: dele();break;}getch();return; /*返回主菜单*/}void add() /*添加商品信息*/{ /*定义子函数*/printf("\t*请输入所添加商品的商品编号:");scanf("%ld",&goods[n].num);printf("\n\t请输入所添加商品的名称:");scanf("%s",goods[n].name);printf("\n\t请输入所添加商品的类别:");scanf("%s",goods[n].sort);printf("\n\t请输入所添加商品的数量:");scanf("%d",&goods[n].count);printf("\n\t请输入所添加商品的价格:");scanf("%d",&goods[n].price);n=n+1;printf("\n");}void dele() /*删除商品信息*/{ /*定义子函数*/int temp; /*定义局部变量*/int j;for(i=0;i<n;i++){printf("\n\t商品编号商品名商品类别商品数量商品价格");printf("\n\t %5ld %5s %5s %5ld %5ld",good s[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);printf("\n");}printf("\n");printf("\n*请输入要删除的商品编号:");scanf("%ld",&temp);printf("\n\n");—8—for(i=0;i<n;i++){if(temp==goods[i].num){for(j=i;j<n;j++){goods[j].num=goods[j+1].num;strcpy(goods[j].name,goods[j+1].name);strcpy(goods[j].sort,goods[j+1].sort);goods[j].count=goods[j+1].count;goods[j].price=goods[j+1].price;}n=n-1; /*商品总库存量减少*/}}for(i=0;i<n;i++){printf("\n\t商品编号商品名商品类别商品数量商品价格"); /*输出删除后的商品信息*/printf("\n\t %5ld %5s %5s %5ld %5ld",goods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);printf("\n");}printf("Please press any key to continue:");getch();return; /*返回主界面*/}void correct() /*功能6:修改商品信息*/ {long temp; /*定义局部变量*/printf("\n\t请输入要修改的商品的编号:");scanf("%ld",&temp); /*输入新的商品信息*/printf("\n");for(i=0;i<n;i++) /*保存新的商品信息*/{if(temp==goods[i].num){printf("\t请输入一个新的的商品编号:");scanf("%ld",&goods[i].num);printf("\n\t请输入新的商品的名称:");scanf("%s",goods[i].name);printf("\n\t请输入新的商品的类别:");—9—scanf("%s",goods[i].sort);printf("\n\t请输入新的商品的数量:");scanf("%d",&goods[i].count);printf("\n\t请输入新的商品价格:");scanf("%d",&goods[i].price);printf("\n");}}for(i=0;i<n;i++){printf("\n\t新的商品名称商品编号商品类别商品数量商品单价\n");printf("\t %4s %4ld %4s %4ld %4ld",goods[i].name,goods[i].num,goods[i].sort,goods[i].count,goods[ i].price);printf("\n");}printf("Please press any key to continue:"); /*返回功能选择界面*/ getch();return; /*返回主菜单*/}void search() /*功能7:查询商品信息*/{int k; /*定义局部变量*/long temp1;char temp2[30],temp3[20];printf("\n\t\5按商品编号查询,请按1\t\t\t\5按商品名查询,请按2\n\t\5按商品类别查询,请按3\t\t\t\5查需要进货的商品,请按4\n");printf("\n\n\n\t\t\t请输入数字确定查询方式:");scanf("%d",&k);printf("\n");printf("Press any key to continue:");getch();system("cls");switch(k) /*实现查询方式的选择*/{case 1:{ printf("\n\n\n\n\n\t\t请输入要查询的商品的编号:"); /*按商品编号查询*/scanf("%ld",&temp1);system("cls"); /*清屏*/for(i=0;i<n;i++){—10—if(temp1==goods[i].num){printf("\n");printf("\n\t商品编号商品名商品类别商品数量商品价格");printf("\n\t %5ld %5s %5s %5ld %5ld",goods[i] .num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);}}}break; /*跳出switch语句*/case 2:{ printf("\n\n\n\n\n\t\t请输入要查询的商品名:"); /*按商品名查询数据*/scanf("%s",temp2);system("cls");for(i=0;i<n;i++){if(strcmp(temp2,goods[i].name)==0){printf("\n");printf("\n\t商品编号商品名商品类别商品数量商品价格");printf("\n\t %5ld %5s %5s %5ld %5ld",goods[i] .num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);}}}break; /*跳出switch语句*/case 3:{ printf("\n\n\n\n\n\t\t请输入要查询的商品类别:"); /*按商品类别查询数据*/scanf("%s",temp3);system("cls");for(i=0;i<n;i++){if(strcmp(temp3,goods[i].sort)==0){printf("\n");printf("\n\t商品编号商品名商品类别商品数量商品价格");printf("\n\t %5ld %5s %5s %5ld %5ld",goods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i] — 11 —.price);}}}break; /*跳出switch语句*/case 4:{ int a=50;for(i=0;i<n;i++) /*查询需要进货的商品名*/{if(goods[i].count<a)printf("\n\t\t\4需要进货的商品名:%s 现有库存量:%ld\n",goods[i].name,goods[i].count);}}break; /*跳出switch语句*/}printf("\n\n\t\tPress any key to enter menu:");getch();return; /*返回主界面*/}void scan() /*功能8:浏览商品信息*/ {printf("\n\t浏览输入的商品信息,请按1\n\n\t浏览查询的商品信息,请按2\n\n\t浏览排序后商品信息,请按3\n");printf("请选择:");scanf("%d",&k);switch(k){case 1:{ printf("\t\t\t浏览输入的商品信息\n");printf("\t商品编号商品名商品类别商品数量商品价格\n");/*输出浏览商品信息*/for(i=0;i<n;i++){printf("\t%5ld %5s %5s %5ld %ld",goods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);printf("\n");}printf("Press any key to enter menu:");getch();return;} break; /*跳出switch语句*/case 2:{ printf("\t\t\t浏览查询的商品信息\n");—12—printf("\t商品编号商品名商品类别商品数量商品价格\n");/*输出浏览商品信息*/for(i=0;i<n;i++){printf("\t%5ld %5s %5s %5ld %ld",goods[i] .num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);printf("\n");}printf("\nPress any key to enter menu:");getch();return;} break; /*跳出switch语句*/case 3:{ printf("\t\t\t浏览按商品编号排序的商品信息\n");printf("\t商品编号商品名商品类别商品数量商品价格\n");/*输出浏览商品信息*/for(i=0;i<n;i++){printf("\t%5ld %5s %5s %5ld %ld",goods[i].num ,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);printf("\n");}printf("\nPress any key to enter menu:");getch();return; /*返回主界面*/} break; /*跳出switch语句*/}}void reserve() /*功能9:保存文件*/{FILE *fp;char file[15]; /*用来存放文件保存路径以及文件名*/system("cls"); /*清屏*/printf("\n\t*请输入文件路径及文件名:");scanf("%s",file);fp=fopen("file","w+"); /*创建并打开一个文件,并得到该文件的地址*/fprintf(fp,"商品编号\t商品名 \t商品类别\t商品数量\t商品价格\n"); printf("商品编号\t商品名 \t 商品类别\t 商品数量\t 商品价格\n");for(i=0;i<n;i++)—13—{fprintf(fp,"%ld\t\t%s\t\t%s\t\t%d\t\t%d\n",goods[i].num,goods[i].name ,goods[i].sort,goods[i].count,goods[i].price);printf("%ld\t\t%s\t\t%s\t\t%d\t\t%d\n",goods[i].num,goods[i].name,goo ds[i].sort,goods[i].count,goods[i].price);}fclose(fp); /*关闭文件*/printf("文件已经保存!\n");getch();system("cls"); /*清屏*/}void quit() /*退出系统*/{exit(0);}四、调试手册(1)、sp.c(225) : warning C4013: 'add' undefined; assuming extern returning int add()函数声明错误。
#include <stdio。
h〉#include 〈windows.h>#include 〈time.h〉//日期和时间头文件#define ADMIN_USER_TYPE 1#define BOSS_USER_TYPE 2#define SELL_USER_TYPE 3#define FUNCTION_FAILED —1#define FUNCTION_SUCCESS 0 //如果函数成功执行,将返回0/**系统用户结构**/typedef struct SystemUser {char userName[20]; //用户名,主键char password[20];//用户密码int userType; //用户类型(1:管理员;2:店长;3:销售员)struct SystemUser *next; //指向下一个用户的指针} SystemUser;/** 服装商品信息**/typedef struct Products {int productId;//商品编号,主键char productName[20]; //商品名称char productType[20]; //商品型号char productCompany[20];//商品厂家float productPrice; //商品价格int productCount; //商品数量char memo[50]; //商品附加信息struct Products *next;//指向下一个商品的指针} Products;/** 销售记录信息结构**/typedef struct SellInfoRecord {int saleId; //销售编号,主键char userName[20];//销售商品的用户名int productId; //销售的商品编号int sellCount;//销售数量int year; //销售商品年份int month;//销售商品月份int day; //销售商品日期char memo[50]; //销售的附加信息struct SellInfoRecord *next; //下一条销售记录}SellInfoRecord;static char currentUser[20];//系统全局变量,保存当前登陆用户名; static int currentUserType; //系统全局变量,保存当前登陆用户的用户类型static SystemUser *pSystemUserHead = NULL;//保存系统用户信息记录的头指针static Products *pProductHead = NULL; //保存系统商品信息记录的头指针static SellInfoRecord *pSellInfoHead = NULL; //保存系统销售记录的头指针void InitSystem(); //对系统用户信息和商品信息进行初始化int AddUser(SystemUser *);//向用户信息链表中加入用户信息int AddProduct(Products *pPro);//向商品信息链表中加入商品信息int AddSellInfo(SellInfoRecord *);void UserExit();void WelcomeMenu();//系统欢迎菜单void SystemLogin(); //系统登陆void AdminOperationMenu();//系统管理员操作菜单void BossOperationMenu(); //店长操作菜单void SellOperationMenu(); //销售员操作菜单void ChangePassword(); //修改密码void UserManage();//用户信息管理void UserInfoView();//用户信息查看void UserInfoAdd();//用户信息添加void UserInfoModify();//用户信息修改void UserInfoDelete(); //用户信息删除void ProductsManage(); //产品信息管理void ProductsView(); //商品查看void ProductFind();void InputAndAddProduct(); //输入商品信息并添加void ModifyProduct();//修改商品信息void DeleteProduct(); //删除商品信息void ProductsSell();//商品销售void ReportPrint(); //报表显示void ShowAllSellReport(); //显示所有商品销售情况void ShowDaySellReport(); //显示某日的销售情况void ShowMonthSellReport();//显示某月的销售情况void ShowEmployeeSellReport();//显示某个销售员的销售情况void ExitSystem();// 退出登陆系统float getPriceById(int );//通过商品编号查询商品价格int getProductNameById(int,char *); //通过商品编号查询商品名称int getCountById(int); //通过商品编号查询商品库存数量void ReduceProductCount(int,int);//通过商品编号减少商品数量/** 对系统进行初始化,建立用户记录和商品记录**/void InitSystem(){FILE *fp;SystemUser adminUser,bossUser,sellUser; //管理员,店长,销售员三个角色信息Products products[2]; //初始化两件服装商品信息SellInfoRecord sellInfo[2];//初始化两条销售记录//管理员strcpy(adminUser。
1.设计内容1、程序设计(包括框图设计、源程序编辑、编译、调试)2、对问题有完整的分析过程,要求把分析设计过程写入报告3、编写设计报告本程序设计的主要内容:1.1销售管理系统该系统是一个销售管理系统,即对某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)进行合理管制。
每个销售员都将当天出售的每种产品各写一张便条交上来。
每张便条包含内容:1)销售员的代号2)产品的代号3)这种产品的当天的销售额每位销售员每天可能上缴0-5张便条。
假设,收集到了上个月的所有便条,编写一个处理系统,读取上个月的销售情况(自己设定),进行如下处理。
1)计算上个月每个人每种产品的销售额。
2)按销售额对销售员进行排序,输出排序结果(销售员代号)3)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)4)输出统计报表2.设计目的与要求2.1设计目的1.进一步掌握运用C进行程序设计的能力;3.进一步理解和运用面向过程程序设计的思想和方法;3.初步掌握开发一个小型实用系统的基本方法;4.学会调试一个较长程序的基本方法;5.学会利用互联网查找相关的知识并学习;2.2要求含设计中用到的相关技术的解释或讲解介绍和正文两大部份。
正文包括以下7个内容:1.需求分析以无歧义的陈述说明程序设计的任务,强调的是程序要做什么?并明确规定:(1) 输入的形式和输入值的范围;(2) 输出的形式;(3) 程序所能达到的功能;(4) 测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果。
2.概要设计说明本程序中用到的所有抽象数据类型的定义、主程序的流程以及各程序模块之间的层次(调用)关系。
3.详细设计实现概要设计中定义的所有类,对每个操作只需要写出伪码算法;可采用流程图等进行描述,画出函数和过程的调用关系图。
4.调试分析内容包括:a.调试过程中遇到的问题是如何解决的以及对设计与实现的回顾讨论和分析;b.改进设想;c.经验和体会等。
西安邮电大学C语言课程设计报告题目:汽车销售管理系统院系名称:专业名称:班级:学生姓名:学号(8位):指导教师:设计起止时间:一. 设计目的1. 对c语言基本知识的巩固和综合运用。
熟练使用基本数据类型,基本控制结构,数组,函数,指针等。
2. 强化上机动手能力,在理论和实践的基础上进一步巩固《C语言程序设计》课程学习的内容,掌握工程化软件设计的基本方法。
3. 学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力。
4. 为后续各门计算机课程的学习打下坚实基础。
5.《汽车销售管理系统》的设计与实现,此次程序设计主要利用c语言的基础知识开发一个简单的汽车销售管理系统。
汽车销售管理系统是一个企业不可缺少的一部分,它利用计算机对汽车销售进行统一管理,实现汽车销售管理工作的系统化、规范化和自动化,为企业提高工作效率。
二. 设计内容主要利用c语言的文件操作能力设计开发一个小型的管理信息系统,主要功能有:1.能够实现对新车的入库工作。
2.能够修改汽车信息。
3.能按销售新车来管理汽车销售信息。
4.能够查询汽车信息。
5.能够删除汽车信息。
6.显示汽车库存信息。
7.能够实现对汽车品牌、汽车进价、姓名的排序。
8.能够实现退出系统。
三.概要设计1.功能模块图;2.能够修改汽车信息。
提示用户输入要进行修改操作的产品名称和产品型号,如果在产品信息文件中有该息存在,则将提示用户输入要修改的选项,并将结果保存至原产品信息文件,并提示用户选择是否继续进行修改操作。
3.能按销售新车来管理汽车销售信息。
创建一个销售记录文件,每完成一次销售,就按销售信息的要求输入各项数据,并将该次的销售信息添加到文件中,同时修改相应的汽车产品信息文件(主要是修改其库存数量)。
4.能够查询汽车信息。
输入产品名称,在汽车产品信息文件中查找相应的汽车信息并输出。
5.能够删除汽车信息。
提示用户输入要进行删除操作的产品名称和产品型号,如果在产品信息文件中有该信息存在,则将对应的汽车信息删除,否则输出提示信息,并提示用户选择是否继续进行删除操作。
C语言课程设计《商品销售管理系统》摘要本文介绍的是C语言课程设计《商品销售管理系统》,通过使用C语言编程制作的电脑程序,能实现商品销售入库、库存管理、采购管理、商品销售及库存查询功能,设计的目的是为了让电脑为商店的销售管理工作提供帮助。
关键词:C语言课程设计;商品销售管理系统;商品入库;库存管理;采购管理。
1 绪论商品销售管理系统是一种电脑信息系统,是通过计算机程序实现库存管理、采购管理、销售管理、库存查询等基本功能,以便更有效地管理货物出售,节省人力与财力的。
因此,本文将使用C语言开发一个基于计算机的商品销售管理系统,以实现商品销售入库、库存管理、采购管理、商品销售及库存查询等功能。
2 功能需求2.1主菜单程序的功能菜单由主菜单控制,主菜单主要有以下几项功能:(1)商品入库(2)库存管理(3)采购管理(4)库存查询(5)商品销售(6)退出系统2.2 商品入库此功能需要实现商品信息录入功能,比如商品名称、售价、单位、购买数量等。
2.3 库存管理此功能的功能是实现对商品库存的管理,可以实现对商品库存的查看和管理功能,方便商家明确库存量。
2.4 采购管理此功能是实现采购管理,功能包括供货商信息管理、商品采购管理、采购账务记账等。
2.6 商品销售此功能用于实现对商品的销售,可以实现商品信息的查看及购买,销售的同时可以实现商品库存的查看。
3 系统建模系统建模是用逻辑模型来描述系统信息流程,包括实体-实体关系模型、关系模型及功能模型,实体-实体关系模型可以描述系统中各实体之间关系的抽象结构;关系模型能将系统中的关键实体和关联分析结构表示出来;功能模型能实现各种功能以及功能之间的关系结构。
4 系统设计本系统的设计重点是编写C语言程序,以实现商品销售管理系统功能。
核心算法包括以下:(1)无源文件init_menu(),用于初始化主菜单,根据用户输入调用不同的程序完成功能;(2)商品入库文件proc_input(),主要实现商品信息录入功能,需要获取用户输入的商品信息并存储;(3)库存管理文件proc_manage(),实现对商品库存的查看和管理功能,若商品库存不足,则可以选择跳转到商品采购管理程序;(4)采购管理文件proc_buy(),主要实现采购管理功能,包括供货商信息管理、商品采购管理、采购账务记账等;(5)库存查询文件proc_search(),用于实现对商品库存数量查询;(6)商品销售文件proc_sale(),用于实现商品的销售,销售的同时可以实现商品库存的查看。
语言程序设计报告姓名:班级:学号:指导教师:课题:目录1 设计目标........................................................................................................... .21.1 管理系统概述........................................................................................ .21.2 主要功能................................................................................................ .22 程序原代码 (4)3 详细设计 (10)4 程序运行情况 (12)5 结束语 (18)6参考文献 (19)一、设计目标设计一个C语言程序(销售管理系统),具体要求:某公司有四个销售员(编号:1-4),负责销售五种产品(编号1-5)。
每个销售员都将当天出售的每种产品各写一张便条交上来。
每张便条包含内容:1. 销售员的代号2.产品的代号3.这种产品当天的销售额每位销售员每天的可能上交0-5张便条。
假设,收集到了上个月的所有便条,编写一个处理系统,读取上个月的销售情况,进行如下处理:1.2 主要功能:1、计算上个月每个人每种产品的销售额。
2、按销售额对销售员进行排序,输出排序结果(销售员代号)3、统计每种产品的总销售额,对这些产品按从高到底的顺序输出排序结果(需输出产品的代号和销售额)4、输出统计报表二程序原代码#include <stdio.h>#include <string.h>#include <conio.h>#include <stdlib.h>#define Z 5#define R 4typedef struct{int shangpin[Z];}data;void menu(){ system("cls");printf("\n\n");printf("\t ┏━━━━━━━━━━━━主菜单━━━━━━━━━━┓\n");printf("\t ┃ 1.计算上个月每个人每种产品的销售额┃\n");printf("\t ┃ 2.按销售额对销售员进行排序,输出排序结果┃\n");printf("\t ┃ 3.统计每种产品的总销售额,输出排序结果┃\n");printf("\t ┃ 4.输出统计报表┃\n");printf("\t ┃ 5.结束操作┃\n"); printf("\t ┗━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");}void f1(data *x){ FILE *fp;char fname[10],hitkey;int j,t;int i,k,s;system("cls");printf("您想计算哪个月?\n");printf("请输入月份:");scanf("%s",fname);strcat(fname,".dat");if((fp=fopen(fname,"wb"))==NULL){printf("不能打开文件!!!\n");exit(0);}for(j=0;j<R;j++)for(t=0;t<Z;t++)(x+j)->shangpin[t]=0;printf("请输入:\n职工编号产品编号销售数量\n");for(j=0;hitkey!=27;j++){ scanf("%d%d%d",&i,&k,&s);if(i>R||i<0||k>Z||k<0){printf("信息错误!\n");continue;}else(x+i-1)->shangpin[k-1]=(x+i-1)->shangpin[k-1]+s;printf("继续输入请按回车,结束输入请按esc\n");printf("━━━━━━━━━━━━━━━━━━━━━━\n");hitkey=getch();for (;hitkey!=13&&hitkey!=27;)hitkey=getch();}for(j=0;j<R;j++)if(fwrite((x+j),sizeof(data),1,fp)!=1)printf("write error!\n");fclose(fp);printf("\n\n\n\n\n\n\t\t\t保存成功,按任意键返回主菜单!");getch();}void f2(data *x){FILE *fp;char fname[10];int i,k,j,t,bianhao[R]={0},z;system("cls");printf("你要哪个月的?\n");printf("请输入月份:");scanf("%s",fname);strcat(fname,".dat");if((fp=fopen(fname,"rb"))==NULL){printf("不能打开文件!!!\n");exit(0);}for(i=0;i<R;i++)if(fread(x+i,sizeof(data),1,fp)!=1)printf("读入信息出错!");for(i=0;i<R;)bianhao[i]=i++;printf("请输入按何种产品排序\n");scanf("%d",&k);k=k-1;for(i=0;i<R;i++){t=i;for(j=i+1;j<R;j++)if((x+bianhao[t])->shangpin[k]<(x+bianhao[j])->shangpin[k]) t=j;if(t!=i){ z=bianhao[i];bianhao[i]=bianhao[t];bianhao[t]=z;}}printf("\t\t\t按%d产品对销售员排序为:\n",k+1);printf("━━━━━━━━━━━━━━━━━━━━━\n");for(i=0;i<R;i++)printf("\t\t\t第%d名是:员工%d\n",i+1,bianhao[i]+1);printf("\n\n\n\t\t\t按任意键返回上一主菜单!");getch();fclose(fp);}void f3(data *x){ FILE *fp;char fname[10];int i,j,sum[Z]={0},bianhao[Z]={0},z,t,k;system("cls");printf("您想计算哪个月的?\n");printf("请输入月份:");scanf("%s",fname);strcat(fname,".dat");if((fp=fopen(fname,"rb"))==NULL){ printf("不能打开文件!!!\n");exit(0);}for(i=0;i<R;i++)if(fread(x+i,sizeof(data),1,fp)!=1)printf("读入信息出错!");for(i=0;i<Z;i++)for(j=0;j<R;j++)sum[i]=sum[i]+(x+j)->shangpin[i];for(i=0;i<Z;)bianhao[i]=i++;for(i=0;i<Z;i++)printf("%3d",bianhao[i]);for(i=0;i<Z;i++){ t=i;for(j=i+1;j<Z;j++)if(sum[t]<sum[j])t=j;if(t!=i){ k=sum[i];sum[i]=sum[t];sum[t]=k;z=bianhao[i];bianhao[i]=bianhao[t];bianhao[t]=z;}}printf("输出产品排序\n");printf("产品编号数量\n");printf("━━━━━━━━━━━━━\n");for(i=0;i<Z;i++)printf(" 产品%-7d%-1d\n",bianhao[i]+1,sum[i]);printf("\n\n\n\t\t\t按任意键返回主菜单!");getch();fclose(fp);}void f4(data *x){FILE *fp;char fname[10];int i,j,sum[Z+1]={0};system("cls");printf("您想计算哪个月?\n");printf("请输入月份:");scanf("%s",fname);strcat(fname,".dat");if((fp=fopen(fname,"rb"))==NULL){printf("不能打开文件!!!\n");exit(0);}for(i=0;i<R;i++)if(fread(x+i,sizeof(data),1,fp)!=1)printf("读入信息出错!");for(i=0;i<Z;i++)for(j=0;j<R;j++)sum[i]=sum[i]+(x+j)->shangpin[i];for(i=0;i<Z;i++)sum[Z]=sum[Z]+sum[i];printf("━━━━━━━━━━━━━━━━━━━━━━━━━━━\n");printf("输出统计报表如下:\n");printf("销售员代号产品代号销售之和\n");for(i=0;i<R;i++)for(j=0;j<Z;j++)printf(" 员工%-8d产品%-6d数量%-10d\n",i+1,j+1,(x+i)->shangpin[j]);printf("━━━━━━━━━━━━━━━━━━━━━━━━━━━\n");for(i=0;i<Z;i++){if(i==0)printf("产品%d之和%-10d 总和%-10d\n",i+1,sum[i],sum[Z]);elseprintf("产品%d之和%-10d\n",i+1,sum[i]);}printf("\n\n\n\t\t\t按任意键返回主菜单!");getch();}void main(){int i,choice;data sxy[R];printf("\n\n\n\n\n\n\t━━━━━━━━━━━━━━━━━━━━━━━━━\n");printf("\t---------------欢迎进入商品销售系统!-------------\n");printf("\t━━━━━━━━━━━━━━━━━━━━━━━━━\n");printf("\n\n\n\n\n\n\t\t\t按任意键进入主菜单!");getch();for(i=0;;i++){ system("cls");menu();printf("你想做什么?\n");printf("请选择:");scanf("%d",&choice);if(choice==5){ system("cls");printf("\n\n\n\n\n\n\t━━━━━━━━━━━━━━━━━━━━━━━━━\n\n");printf("\t---------------谢谢使用商品销售系统!-------------\n\n");printf("\t━━━━━━━━━━━━━━━━━━━━━━━━━\n\n");printf("\n\n\n\n\n\n\t\t\t按任意键退出!(^.^)");getch();break;}elseswitch(choice){ case 1 : f1(sxy); break;case 2 : f2(sxy); break;case 3 : f3(sxy); break;case 4 : f4(sxy); break;}}}三、详细设计1、功能函数f1()函数的功能:计算上个月每个人每种产品的销售额函数的入口:从main()的switch()开关结构中进入,即choice的值为1时进入该函数,打开.dat数据文件,然后提示用户通过键盘对该月的员工销售情况进行数据的读入。
c语言商店商品管理系统本文档旨在介绍《C语言商店商品管理系统》的目的和功能。
该项目的目的是开发一个用于管理商店商品的系统,使用C语言编写。
通过该系统,商店管理员能够方便地管理商品的进货、销售和库存。
系统的主要功能包括:商品信息管理:管理员可以添加新商品、更新商品信息、删除商品等操作。
商品信息包括商品名称、编号、价格、库存等参数。
进货管理:管理员可以录入商品的进货信息,包括进货数量、进货价格、供应商等信息。
系统会自动更新库存数量。
销售管理:管理员可以录入商品的销售信息,包括销售数量、销售价格、销售日期等信息。
系统会自动更新库存数量。
库存管理:管理员可以查看当前库存情况,包括各个商品的库存数量和库存总值。
报表生成:系统可以根据销售和进货信息生成报表,包括销售统计、进货统计、利润统计等。
通过实现以上功能,该系统将帮助商店管理员更好地管理商品信息,提高运营效率,并为商店的进货、销售和库存管理提供可靠数据支持。
该项目将采用简单的策略和方法实现,以确保系统的稳定性和易用性,并避免引入复杂的法律问题。
请注意,文档内容仅为扩写《C语言商店商品管理系统》项目简介而提供,不包含无法确认的引用内容。
【C语言商店商品管理系统】请注意,文档内容仅为扩写《C语言商店商品管理系统》项目简介而提供,不包含无法确认的引用内容。
【C语言商店商品管理系统】该《C语言商店商品管理系统》具有以下特点和优势:高效性:采用C语言开发,具有快速执行和高效处理数据的能力,能够有效地管理大量商品信息。
高效性:采用C语言开发,具有快速执行和高效处理数据的能力,能够有效地管理大量商品信息。
易用性:系统界面简洁清晰,操作简单直观,不需要复杂的操作步骤,便于用户快速上手使用,无需专业的技术知识。
易用性:系统界面简洁清晰,操作简单直观,不需要复杂的操作步骤,便于用户快速上手使用,无需专业的技术知识。
易用性:系统界面简洁清晰,操作简单直观,不需要复杂的操作步骤,便于用户快速上手使用,无需专业的技术知识。
任务书一、设计题目销售管理系统二、主要内容本课程设计某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。
每个销售员都将当天出售的每种产品各写一张便条交上来。
每张便条包含内容:销售员的代号、产品的代号、这种产品的当天的销售额。
每位销售员每天可能上缴0-5张便条。
假设,收集到了上个月的所有便条,编写一个处理系统,读取上个月的销售情况(自己设定),进行如下处理。
1)计算上个月每个人每种产品的销售额。
2)按销售额对销售员进行排序,输出排序结果(销售员代号)3)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)4)输出统计报表如下:产品代号销售之和销售员代号1 2 ……………………………………………………………… 每种产品之和总和三、具体要求及应提交的材料设计要求:1. 分析设计要求,给出解决方案(要说明设计实现所用的原理,采用的数据结构); 2. 模块化程序设计,画出程序的基本结构框图和流程图; 3. 对程序的每一部分要有详细的设计分析说明; 4. 程序执行的每个步骤要有具体的提示内容或输出; 5. 源代码格式规范(锯齿型书写格式),注释不少于三分之一;销售管理系统 6. 设计合适的测试用例,对得到的运行结果要有分析; 7. 设计中遇到的问题,设计的心得体会。
设计结束后,每位同学必须上交如下材料: 1. 《课程设计说明书》打印稿一份; 2. 《课程设计说明书》电子文档及课程设计的程序源代码刻盘四、主要技术路线提示首先根据要解决的问题进行分析和总体设计,得到要定义的数据结构(可使用链表或结构数组存储数据)和函数,然后进行详细编码,在主函数中对各功能函数进行测试。
五、进度安排一周完成。
1天查阅资料和分析,3天编程,2天写出课程设计报告并上交。
六、推荐参考资料(不少于3篇) 摘要随着计算机技术的飞速发展和激烈的市场竞争,销售管理系统在企业结构中已经占据主导地位,而使用计算机来进行销售管理不仅错误少、灵活度高,并且效率高、操作简便。
#include"stdio.h"#include"string.h"#include"stdlib.h"struct goods{char name[20];int price;char pro[20];int kc;int xs;}s[30];void add();void select();void update();void center(){int k;printf("----------------------欢迎登陆销售管理系统--------------------\n");printf(" \n");printf(" \n");printf(" \n");printf("请输入您要操作的功能:\n");printf("1,添加商品信息2,查找商品信息3,修改商品信息4,退出系统\n"); scanf("%d",&k);switch(k){case 1:system("CLS");add();break;case 2:system("CLS");select();break;case 3:system("CLS");update();break;case 4:exit(0);break;}}void add()FILE *fp;fp=fopen("goods.txt","a");printf("请输入商品名称单价生产厂家库存量销售量\n"); scanf("%s%d%s%d%d",&s[0].name,&s[0].price,&s[0].pro,&s[0].kc,&s[0].xs); fwrite(&s[0],sizeof(struct goods),1,fp);printf("添加成功\n");fclose(fp);center();}void select(){int i;char name[20];int money,k;FILE *fp;fp=fopen("goods.txt","rb");printf("您是要查找1;按商品名称2;生产厂家:\n");scanf("%d",&k);switch(k){case 1:printf("请输入商品名称:\n");scanf("%s",&name);for(i=0;i<30;i++){fread(&s[i],sizeof(struct goods),1,fp);if(strcmp(s[i].name,name)==0){printf("销售量金额库存量为:\n");money=s[i].price*s[i].xs;printf("%d\t%d\t%d\n",s[i].xs,money,s[i].kc);}}break;case 2:printf("请输入生产厂家:\n");scanf("%s",&name);for(i=0;i<30;i++){fread(&s[i],sizeof(struct goods),1,fp);if(strcmp(s[i].pro,name)==0){printf("销售量金额库存量为:\n");money=s[i].price*s[i].xs;printf("%d\t%d\t%d\n",s[i].xs,money,s[i].kc);}break;}fclose(fp);center();}void update(){int i;char name[20];int up,k;FILE *fp;fp=fopen("goods.txt","rb");for(i=0;i<30;i++){fread(&s[i],sizeof(struct goods),1,fp);}fclose(fp);if((fp=fopen("goods.txt","wb"))!=NULL)printf("请输入您要修改的商品名称:\n"); scanf("%s",name);printf("您要修改:1,库存量2,销售量\n"); scanf("%d",&k);switch(k){case 1:for(i=0;i<30;i++){if(strcmp(s[i].name,name)==0){printf("请输入您要修改的值:\n");scanf("%d",&up);s[i].kc=up;printf("修改成功\n");}fwrite(&s[i],sizeof(struct goods),1,fp);}break;case 2:for(i=0;i<30;i++){if(strcmp(s[i].name,name)==0){printf("请输入您要修改的值:\n");scanf("%d",&up);s[i].xs=up;printf("修改成功\n");}fwrite(&s[i],sizeof(struct goods),1,fp); }break;}fclose(fp);center();}int main(){center();}。
课程设计说明书学院、系:专业:学生姓名:设计题目:销售管理系统起迄日期:指导教师:日期:2017年5月12日1 设计目的1. 了解管理信息系统的开发流程,熟悉C语言的文件和结构数组的各种基本操作。
2. 握高级程序设计语言的知识。
3. 践中逐步掌握程序设计的思想和方法,培养问题求解和语言的应用能力。
4. 程序中涉及结构体、数组、文件等方面的知识。
通过本程序的训练,能对C语言的文件操作有一个更深刻的了解。
5. 提高与程序设计和软件开发有关的各种综合能力。
6. 通过本课程设计,培养上机动手能力,巩固《C 语言程序设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手能力,闯过编程关;7. 为后续各门计算机课程的学习打下坚实基础;8. 学会用c 语言程序设计来设计销售管理系统设计。
2 任务概述某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。
每个销售员都将当天出售的每种产品各写一张便条交上来。
每张便条包含内容:1)销售员的代号,2)产品的代号,3)这种产品的当天的销售额。
每位销售员每天上缴 1 张便条。
试设计一个便条管理系统,使之能提供以下功能:1 、系统以菜单方式工作2、便条信息录入功能(便条信息用文件保存)--输入3、收集到了上个月的所有便条后,读取销售情况1)计算每个人每种产品的销售额。
2)按销售额对销售员进行排序,输出排序结果(销售员代号)3 )统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果4 )输出统计报表3 模块划分主菜单及头文件设计编辑系统菜单运行输入信息保存信息,参数为结构体数组和记录数读入取函数,参数为结构体数组清单输出主要功能的实现4 主要函数说明及其N-S 图主菜单及头文件设计:我们按照老师所给的示例我们首先编译了一个头文件,在头文件里,编译了主函数需要用到的一些函数,如#include "stdio.h" 等,因为需要录入便条的所有信息,所有用一个数据结构来实现信息的储存方式,用数组方式,把每条信息都编译成一个数组,如销售员代号用name[4] 记录。
头文件还包括了定义常数记录数typedef struct ,主函数原型int menu_select();/* 声明函数*/int enter(RECODE t[]);/* 声明函数*/void salor(RECODE t[],int n);/* 声明函数*/int sum(RECODE t[],int n,int m);/* 声明函数*/void list1(RECODE t[],int n);/* 声明函数*/void list2(RECODE t[],int n);/* 声明函数*/void list3(RECODE t[],int n);/* 声明函数*/void save(RECODE t[],int n);/* 声明函数*/int load(RECODE t[]);/* 声明函数*/这些的都是主函数需要用到的数据,因此放入头文件当中,在主程序开始之前直接引用#include "pro.h" 。
2. 编辑系统菜单运行:题目要求我们系统以菜单方式工作,所以我们现要定义一个系统的结构体数组RECODErec[600] ,用for (;;) 循环让菜单实现无限循环,让switch(menu_select()) 调用主菜单函数,返回值整数作开关语句的条件,之后分别定义菜单的信息,如:case 1:length=enter(rec);就是输入信息的定义编辑,当然最后需要用到break 来实现返回。
菜单定义完成之后,开始编译菜单的输出,这部分,用了printf 就把需要显示的菜单显示出来,然后由用户选择菜单的选项,因为菜单只有0~7 的选项,为了防止用户输入选项超值,所以用do while 语句来控制,(c<0||c>7)限定了用户输入的数据只有0〜7才有效,超值则返回开始菜单,重新选择(return )。
3. 输入信息:输入信息一般都是使用scanf 来实现,但在用户输入之前需要解决一个问题,程序必须限制用户的输入序数(记录条数),所以在输入数据之前,必须先限定序数,方法则是用一个for 循环来实现,有用户输入一个数字,成为循环的上限,而用户输入的便条信息则在此限定下,不能超出,当超出时则返回到开始菜单。
用户输入的便条信息分别存入对应的数组当中,如便条条数则存入t[i].num 当中。
4. 保存信息,参数为结构体数组和记录数:用户输入的信息需要保存时,用save 选项进行保存。
保存的时候,实现应该建立一个指向文件的指针,从而固定保存文件时的位置,之后用if 语句来判断打开文件是否正常,if((fp=fopen("record.txt","wb"))==NULL),如果没打开(打开不正常),则程序执行退出;当判断文件打开正常时,系统显示“保存文件”(用printf("\n 保存文件\n")来完成),保存信息是用到的fprintf 函数,将制定记录数输入文件fprintf(fp,"%d",n),因为源文件中采用了换行,保存文件是系统默认不会进行保存,所有必须加如换行符号保存,防止文件丢失,保证文件以用户输入的信息一致,保存换行符号依然采用fprintf 函数来实现,具体源文件为fprintf (fp,"\r\n");当确立了保存的可以性之后,系统开始录入需要保存的信息,用for 循环语句,不断把用户输入的信息保存,因为之前在编写输入,输出程序时,都用到了一定的格式,保证信息的一一对应,所以在保存文件时,也需要确定和输入是相同的格式,这里依然使用fprintf 函数来进行保存,如fprintf(fp,"%-10d%-7d%-7d%-7d%-7d-7d",t[i].name,t[i].a1,t[i].a2,t[i].a3,t[i].a 4,t[i].a5) 就是把销售员代号,产品代号,销售额按照间隔7 个字符格式进行保存,在保存格式确立后,需要把换行符号再次写入文件,程序结束后fclose 结束保存,并用printf 输出“文件保存成功”,让用户知道已经保存文件。
5. 读入取函数,参数为结构体数组:前面已经做了文件的保存,当保存文件成功后,系统会以record.txt 文件保存在与程序同级的文件夹下,而读入函数,就是为了让用户再次打开运行程序时,可以直接读取之前已经输入并保存过的信息,和储存信息一样,读入函数也采用了参数为结构体数组,同样应该确定文件指向指针FILE *fp ,读入函数之前,应该确定是否有已经保存的文件,用保存文件一样,用if 语句来进行判断if((fp=fopen("record.txt","rb"))==NULL) ,如果判断失败,系统不能读入文件,则会显示“不能打开文件” ,用printf(" 不能打开文件\n") 来实现,同时系统要结束读入文件的执行,用exit(1) 实现;如果判断成功,则系统会自动读入用户已经保存的数据( fscanf(fp,"%d",&n) 读入记录数),用for 循环把已经保存的数据一一对应的读入到正在执行的程序中,这里需要注意的是,读取的数据格式应该同保存时的一致,如储存时的格式是fprintf(fp,"%-10d%-7d%-7d%-7d%-7d-7d",t[i].name,t[i].a1,t[i].a2,t[i].a3,t[i].a 4,t[i].a5) ,则读入的时的格式就为fscanf(fp,"%d%d%d%d%d%d",&(t[i].name),&(t[i].a1),&(t[i].a2),&(t[i].a3),&(t[i]. a4),&(t[i].a5)) ,读取成功后关闭文件fclose(fp) ,并显示“成功地从文件读入数据!!! ” (用printf 实现)。
6. 清单输出:读取销售情况有 3 个,分别是每个人每种产品的销售额,按销售额对销售员进行排序和每种产品的总销售额三个函数:1) . 每个人每种产品的销售额:首先,要定义每个人,每种产品,销售额数组如inti,j,sum0=0,sum1=0,sum2=0,sum3=0,sum4=0,sum5=0;int c[4],b1[4]={0},b2[4]={0},b3[4]={0},b4[4]={0},b5[4]={0} ,用for 循环来求每个人的总销售额:for(i=0;i<4;i++) ;用for 循环来求每个人每种产品的总销售额:for(i=0;i<n;i++) ,for(j=0;j<4;j++) ;在用for 循环每种产品的总销售额:for(i=0;i<4;i++) ,之后则在系统界面输入销售员代号,产品代号,产品代号用printf 即可实现,用sum 对每个销售员的销售额求和,用system("cls") 来录入信息,然后输出头标(如销售员代号,产品代号,销售额等,用printf 实现),之后开始查询,用for 语句来。
2) . 按销售额对销售员进行排序:此部分要分两部分其一是,每位销售员销售额;其二是,按销售额对销售员排序。
在求每个销售员销售额时也是要先定义销售员代号,产品代号,销售额。
接着是则是用输入要查询的销售员的代号,用scanf("%d",&s) 来记录输入销售员代号的信息,然后输出头标 (如销售员代号,产品代号,销售额等,用printf 实现),之后开始查询,查询信息首先需要一个for 语句来,实现对已存入数据的所有查询for(i=0;i<n;i++), 关键内容是查询销售员代号时用if(strcmp(name,t[i].name)==0) ,找出与输入的销售员相同的储存信息,查找完成后则把该销售员的所有信息全部输出。
上面是求每个销售员销售额,接着是要在上面的基础上排序。
首先要定义两个数组如:int c[4],m[4] ,接着用for 循环 ( for(i=0;i<4;i++) ;for(j=i+1;j<4;j++) )对销售员的销售额进行排序,再用if 语句来求,最后是输出用printf("%d\n",m[i]) 实现3) . 每种产品的总销售额:也一样首先要定义数组,接着用c[i]=sum(t,n,i+1) 求每个人的总销售额, 再用for 循环,再用sum0+=c[i] 对所有产品的销售额求总,用for 循环对每个人每种产品的销售额求总销售额,再用for 循环实现每种产品的总销售额,然后输出头标(如销售员代号,产品代号,总销售额等,用printf 实现)即可。