C语言编程销售管理系统
C语言 服装销售管理系统

#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。
c语言课程设计销售管理系统

c语言课程设计销售管理系统一、教学目标本章节的教学目标旨在让学生掌握C语言编程基础,能够运用C语言设计销售管理系统。
具体目标如下:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识,了解结构体和文件操作等相关概念。
2.技能目标:学生能够运用C语言进行程序设计,具备编写和调试C语言程序的能力。
学生能够运用结构体设计销售管理系统的相关数据结构,并使用文件操作实现数据的持久化存储。
3.情感态度价值观目标:学生能够体验到编程的乐趣,培养对计算机科学的兴趣。
通过完成销售管理系统的项目,培养学生的创新能力和团队合作意识。
二、教学内容本章节的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识,以及结构体和文件操作等相关概念。
具体安排如下:1.C语言基本语法和数据类型:介绍C语言的基本语法规则,包括变量声明、数据类型、运算符等。
2.控制结构:讲解条件语句和循环语句的用法,包括if语句、switch语句、for循环、while循环等。
3.函数:介绍函数的定义和调用,包括主函数、参数传递、返回值等。
4.结构体:讲解结构体的定义和使用,包括结构体的声明、成员访问、结构体数组等。
5.文件操作:介绍文件操作的基本方法,包括文件的打开、读写、关闭等。
6.销售管理系统的实现:引导学生运用所学知识设计和实现一个简单的销售管理系统,包括数据结构的设计、功能的实现和文件的操作。
三、教学方法本章节的教学方法采用讲授法、案例分析法和实验法相结合的方式。
具体安排如下:1.讲授法:教师通过讲解C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识,引导学生理解和掌握相关概念。
2.案例分析法:教师通过分析典型的销售管理系统的案例,引导学生运用所学知识进行系统设计和功能实现。
3.实验法:教师引导学生进行实验,让学生亲自动手编写和调试C语言程序,培养学生的编程能力和解决问题的能力。
c语言销售管理系统课程设计

c语言销售管理系统课程设计一、教学目标本课程的目标是让学生掌握C语言销售管理系统的基本概念、设计方法和实现技巧。
通过本课程的学习,学生应能够:1.理解销售管理系统的业务流程和需求分析。
2.掌握C语言的基本语法和数据结构。
3.学会使用C语言进行程序设计和调试。
4.能够独立完成销售管理系统的模块设计和实现。
5.培养学生的团队协作能力和问题解决能力。
二、教学内容本课程的教学内容主要包括以下几个部分:1.销售管理系统的需求分析:介绍销售管理系统的业务流程,让学生了解销售管理系统的基本功能和需求。
2.C语言基础:讲解C语言的基本语法、数据类型、运算符、控制结构等,为学生进行程序设计打下基础。
3.数据结构:介绍常用的数据结构,如数组、链表、栈和队列等,让学生学会如何选择合适的数据结构来解决实际问题。
4.销售管理系统的模块设计:引导学生运用C语言和数据结构知识,分模块设计销售管理系统。
5.程序调试与优化:讲解程序调试的方法和技巧,让学生能够独立发现和解决问题。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学:1.讲授法:讲解基本概念、原理和方法,让学生掌握销售管理系统的设计思路。
2.案例分析法:分析实际案例,让学生了解销售管理系统的应用场景。
3.实验法:让学生动手实践,培养实际编程能力和问题解决能力。
4.讨论法:学生进行小组讨论,促进学生之间的交流与合作。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《C语言程序设计》等相关教材,为学生提供理论基础。
2.参考书:提供一些销售管理系统的经典案例和源代码,供学生参考学习。
3.多媒体资料:制作课件、教学视频等,丰富教学手段,提高学生的学习兴趣。
4.实验设备:提供计算机、编程环境等,让学生能够进行实际编程和调试。
五、教学评估本课程的评估方式将包括以下几个方面:1.平时表现:评估学生在课堂上的参与程度、提问和回答问题的表现等,占总评的20%。
C语言销售管理系统设计(内含完整代码及附件)

用户下载须知程序语言:C、C++、C#(红色字体表示本课设使用的程序设计语言)图形功能选项:Win32控制台程序(黑框、文本界面)、Win32程序、MFC、WinForm、DirectX10(红色字体表示本课设的程序图形类别,默认为非图形界面Win32控制台程序)数据结构:基础类型、数组、链表、双向链表、搜索树(非平衡二叉树)、平衡二叉树、链表与平衡二叉树相结合、堆栈、队列、串、图(红色字体表示本课设使用的数据结构)C++语言项:STL库(红色字体表示使用C++的STL库)编译环境:Windows 7 64位旗舰版(Linux及其他环境请谨慎下载)集成开发环境:Visual C++ 6.0、DEVC++、CodeBlocks、Visual Studio 2015(需进行修改)均可通过编译。
(若无法通过编译运行,则会用浅蓝色字体表示)分多头文件编译:否(所有代码基本都包含在一个文件内,如需试验头文件功能,请自行参考相关文献)内容说明:1、课设题目及预览内容将在第二页开始展示。
2、代码行数:304行3、目录所示内容,本文基本涵盖,如无内容,会在本页进行说明。
4、附录绝对包含用户使用手册及程序完整源代码和详细注释。
5、如需下载其他头文件(例如DirectX需另行配置),本文会在此进行说明。
6、未经平台、本人及相关法律法规允许,请勿用于其它商业行为,否则后果自负。
7、本文撰写内容仅供学习参考,另外,由于本人水平有限,编写之处难免存在错误和纰漏,恳请各位老师或同学批评指正。
销售管理系统设计某公司有四个销售员(编号:1-4),负责销售五种产品(编号:A-E)。
每个销售员都将当天出售的每种产品各写一张便条交上来。
每张便条包含内容:1)销售员的代号,2)产品的代号,3)这种产品当天的销售额。
每位销售员每天上缴1张便条。
系统基本功能:1、系统以菜单方式工作2、便条信息录入功能(便条信息用文件保存)3、收集到了上个月的所有便条后,读取销售情况1)计算每个人每种产品的销售额。
销售管理系统课程设计c语言

销售管理系统课程设计 c语言一、教学目标本课程旨在通过C语言编程,使学生掌握销售管理系统的开发方法。
教学目标包括:1.知识目标:使学生掌握C语言的基本语法、数据结构、算法和编程思想,理解销售管理系统的业务流程和架构设计。
2.技能目标:培养学生具备使用C语言进行程序设计的能力,能够独立完成销售管理系统的模块开发和调试。
3.情感态度价值观目标:培养学生对计算机编程的兴趣,增强其团队合作意识和解决问题的能力,使其认识到计算机技术在现代商业管理中的重要作用。
二、教学内容本课程的教学内容主要包括C语言基础知识、数据结构、算法、编程规范、销售管理系统的设计与实现等。
具体安排如下:1.C语言基础知识:介绍C语言的基本语法、关键字、运算符、表达式等。
2.数据结构:讲解常用的数据结构,如数组、链表、栈、队列、树、图等,以及其在销售管理系统中的应用。
3.算法:学习常见的排序算法、查找算法、动态规划算法等,分析其时间复杂度和空间复杂度。
4.编程规范:介绍C语言编程的规范和技巧,如代码、注释、命名规则等。
5.销售管理系统的设计与实现:分析销售管理系统的业务需求,设计系统架构,实现各功能模块,并进行调试与优化。
三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法,以激发学生的学习兴趣和主动性。
1.讲授法:通过讲解C语言的基本语法、数据结构、算法等内容,使学生掌握相关知识。
2.案例分析法:分析实际的销售管理场景,引导学生运用所学知识解决实际问题。
3.实验法:安排实验课程,让学生动手实践,培养其编程能力和解决问题的能力。
四、教学资源本课程所需教学资源包括:1.教材:《C语言程序设计》等相关教材。
2.参考书:提供相关的编程指南、算法手册等参考资料。
3.多媒体资料:制作课件、演示视频等,以辅助教学。
4.实验设备:计算机、网络设备等,用于实验课程的开展。
五、教学评估本课程的评估方式包括平时表现、作业、考试等。
评估方式应客观、公正,能够全面反映学生的学习成果。
销售管理系统c语言课程设计

销售管理系统c语言课程设计一、课程目标知识目标:1. 理解C语言在销售管理系统中的应用场景和优势;2. 掌握C语言基本语法和数据结构,如数组、结构体、文件操作等;3. 学会使用C语言实现销售管理系统的基本功能,如商品信息管理、销售记录管理、数据查询等。
技能目标:1. 培养学生运用C语言解决实际问题的能力;2. 提高学生分析需求、设计系统、编写代码、调试程序的能力;3. 培养学生团队协作、沟通表达和解决问题的能力。
情感态度价值观目标:1. 培养学生对编程和计算机科学的兴趣,激发学生的创新意识;2. 增强学生的自信心,培养学生面对困难勇于挑战的精神;3. 引导学生关注社会热点问题,理解销售管理系统在现实生活中的应用,培养学生的社会责任感。
课程性质:本课程为实践性较强的课程,以项目为导向,结合实际应用场景,培养学生的编程能力和解决实际问题的能力。
学生特点:学生已经具备C语言基础知识和一定的编程能力,对实际项目有一定的了解,但可能缺乏项目实战经验。
教学要求:注重理论与实践相结合,以项目为主线,引导学生主动探究,培养其编程思维和实际操作能力。
将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. C语言基础回顾:数据类型、运算符、控制结构、函数等基本概念;2. 销售管理系统需求分析:介绍系统功能模块,如商品管理、销售记录、用户管理等;3. 数据结构设计:数组、结构体、链表等在销售管理系统中的应用;4. 文件操作:文件的打开、读取、写入和关闭,实现数据的持久化存储;5. 销售管理系统功能实现:分别实现商品信息管理、销售记录管理、数据查询等功能;- 商品信息管理:添加、修改、删除商品信息;- 销售记录管理:记录销售数据,实现销售统计;- 数据查询:根据需求查询商品信息和销售记录;6. 系统测试与优化:对销售管理系统进行功能测试、性能测试和优化;7. 项目总结与评价:总结项目实施过程中的经验和教训,进行自我评价和互相评价。
C语言编写的销售管理系统

printf("................................................................................");
printf(" 退出主界面请按 0\n");
int chushihua() //初始化函数
{
int i=0,j=0;
for(i=0;i<M;i++)
{
suml[i].number=lackl[i].number=base[i].number=-1;
base[i].amount=0;
#include<stdio.h> //头文件
#include<string.h> //头文件
#include<stdlib.h> //头文件
#define M 100 //货物种类
#define N 100 //顾客数目
struct goods //单个货物信息格式
fprintf(fp," 本销售系统仅是一个销售部门管理系统的的简单模型,功能少,不太稳定,不太安全。\n");
fprintf(fp," 主要分为三个模块。客户--销售部门--公司经理。\n");
fprintf(fp," 1--客户。客户主要是通过该系统进行订货。进入系统后,需要注册,登陆。系统会自主分配\n");
printf("\n");
printf("..............................................................................\n");
c语言销售管理系统

C语言销售管理系统—课设满分作品带报表和折线图显示#include<stdio.h>#include<windows.h>#include<wincon.h>#include<string.h>#include<stdlib.h>#include<conio.h>#include<math.h>#define NULL 0CONSOLE_SCREEN_BUFFER_INFO csbiInfo;extern WINBASEAPI HWND WINAPI GetConsoleWindow();void input();//实现手动输入销售信息void menu();//程序菜单主界面显示void daoru(); //函数声明void seek();//销售信息查询void save();//销售信息保存void del();//销售信息删除void def();//销售信息初始化void history(people);//实现销售历史查询void clear();//实现清屏void filepath();//判断是否为默认文件位置,及询问是否要求修改文件位置void baobiao();//打印报表void txt(zx);//折线图void sxt(g1, g2, g3, g4, g5);//扇形图int ghj = 1;int file_choose = 0;//文件导入初始状态 //全局变量char filename[30] = "sell.txt";//默认文件位置int price[5] = { 2, 2, 2, 2, 2 }; //默认商品价格struct good{int num;//产品编号int f_name[10];//产品名称float price;//产品价格商品属性int date;//销售日期int sum;//销售数量} good[5]; // 定义商品属性结构体,及五个商品struct seller{int num;//销售员编号char name[8];//销售员姓名char sex;//销售员性别struct good good[5]; //五种商品} sell[4]; //定义销售员结构体,及四个销售员struct day{struct seller sell[4];} d[31];struct year{struct day d[31];} m[12];int main(int argc, char* argv[]){int x = 0;x = MessageBox(NULL, "欢迎使用销售管理系统\n作者:xx\n班级:xxxx", "欢迎", MB_YESNO);if (x == 6) menu();return 0;}/************************************************************函数名:daoru()*描述:从文件导入数据*入口参数:无;*出口参数:无;******************************************************************/void daoru(){FILE *fp;int i, day, month;if ((fp = fopen(filename, "r")) == NULL){printf("文件不存在!");return;}for (month = 0; month<12; month++)for (day = 0; day<31; day++) //把文件读取到内存中for (i = 0; i<4; i++)fscanf(fp, "%6d%6d%6d%6d%6d\n", &m[month].d[day].sell[i].good[0].sum,&m[month].d[day].sell[i].good[1].sum, &m[month].d[day].sell[i].good[2].sum,&m[month].d[day].sell[i].good[3].sum, &m[month].d[day].sell[i].good[4].sum);fclose(fp);}/************************************************************函数名:inpit()*描述:数据的手动输入*入口参数:无;*出口参数:无;******************************************************************/void input(){int i = 0, day = 0, x = 0, month = 0;filepath();daoru();//文件导入及判断printf("请输入要查找的日期如1 1即一月一日:");scanf("%d%d", &month, &day);month--;day--;////保持实际时间与数组一致printf("请输入销售人员编号:\n1:xx 2:xx 3:xx 4:xx:");scanf("%d", &i);i--;printf("请输入具体要录入的商品种类1~5对应商品1-5:"); //用于查找所需的具体数据scanf("%d", &x);x--;printf("输入销售数量:");scanf("%d", &m[month].d[day].sell[i].good[x].sum);printf("完成!");save();}/************************************************************函数名:seek()*描述:查找*入口参数:无;*出口参数:无;******************************************************************/void seek(){char ch;int i = 0, j = 0, choose = 0, day = 0, t = 0, all = 0, month;filepath();daoru();printf("请输入要查找的日期如1 1即一月一日:");scanf("%d%d", &month, &day);month--;day--;//保持实际时间与数组一致printf("请输入销售人员编号:\n1:xx 2:xx 3:xx 4:xx:");scanf("%d", &i);i--;printf("请选择1,当天具体商品销售情况 2,当天该销售员销售情况:");scanf("%d", &choose);switch (choose){case 1:{printf("请输入具体要查找的商品种类1~5对应商品1-5\n");scanf("%d", &t);t--;printf("该销售员这天销售本商品的数量为:%d",m[month].d[day].sell[i].good[t].sum);}break;case 2:{printf(" 产品代号\n");printf("1.牛奶 2.西瓜 3.苹果 4.白菜 5.萝卜销售之和\n");for (j = 0; j<5; j++) all += m[month].d[day].sell[i].good[j].sum;printf("%-8d%-8d%-8d%-8d%-8d%-10d\n", m[month].d[day].sell[i].good[0].sum, m[month].d[day].sell[i].good[1].sum, m[month].d[day].sell[i].good[2].sum,m[month].d[day].sell[i].good[3].sum, m[month].d[day].sell[i].good[4].sum, all);}default:break;}}/************************************************************函数名:baobiao()*描述:打印报表*入口参数:无;*出口参数:无;******************************************************************/void baobiao(){char choose = 'y';int i, j, x = 0, a = 0, b = 0, mo = 0, th = 0, partsum = 0, month = 0, sj = 0;int day = 0, alldat = 0, partallsum[5] = { 0 };int mx[4][5] = { 0 }, mxsum = 0; //用于存放明细filepath();daoru(); //读取数据及判断printf("请选择1销售数量报表 2销售额报表:");scanf("%d", &i);if (i == 1){for (i = 0; i<5; i++)price[i] = 1;//利用价格为1时计算数量}else{sj = 1;x = MessageBox(NULL, "是否使用内置价格?", "提示", MB_YESNO);if (x == 7){printf("请依次输入五种商品价格:");scanf("%d%d%d%d%d", &price[0], &price[1], &price[2], &price[3], &price[4]);//上次输入作为内置价格}}printf("输入两个月份及日期:例如3 15 12 6(前者早上到后者晚上):");scanf("%d%d%d%d", &mo, &a, &th, &b);a--;b--;//保持实际时间与数组一致mo--;th--;clear();if (sj == 0){printf("时间段:%d月%d日--%d月%d日的销售数量汇总报表\n", mo + 1, a + 1, th + 1, 1 + b);}else{printf("时间段:%d月%d日--%d月%d日的销售额汇总报表\n", mo + 1, a + 1, th + 1, 1 + b);printf("五种商品对应价格为:%d %d %d %d %d\n", price[0], price[1], price[2], price[3], price[4]);}printf("\n 产品代号及名称\n");printf("姓名编号\t1.牛奶\t2.西瓜\t3.苹果\t4.白菜\t5.萝卜\t销售之和\n");//计算间隔整月if (th - mo>0){for (month = mo + 1; month <= (th - 1); month++){for (day = 0; day<31; day++){for (i = 0; i<4; i++){for (j = 0; j <= 4; j++){mx[i][j] = mx[i][j] + m[month].d[day].sell[i].good[j].sum*price[j];//累加计算所有他的所有销售情况}}for (i = 0; i<5; i++){for (j = 0, partsum = 0; j<4; j++){partsum += m[month].d[day].sell[j].good[i].sum*price[i];}//统计同种商品数目,一维数组当天4个销售员同种商品数目partallsum[i] += partsum;}}}//间隔整月前一段for (day = a; day<31; day++){for (i = 0; i<4; i++){for (j = 0; j <= 4; j++){mx[i][j] = mx[i][j] + m[mo].d[day].sell[i].good[j].sum*price[j]; //累加计算所有他的所有销售情况}}for (i = 0; i<5; i++){for (j = 0, partsum = 0; j<4; j++){partsum += m[mo].d[day].sell[j].good[i].sum*price[i];}partallsum[i] += partsum; //统计同种商品数目,一维数组当天4个销售员同种商品数目}}//间隔整月后一段for (day = 0; day <= b; day++){for (i = 0; i<4; i++){for (j = 0; j <= 4; j++){mx[i][j] = mx[i][j] + m[th].d[day].sell[i].good[j].sum*price[j]; //累加计算所有他的所有销售情况}}for (i = 0; i<5; i++){for (j = 0, partsum = 0; j<4; j++){partsum += m[th].d[day].sell[j].good[i].sum*price[i];}partallsum[i] += partsum; //统计同种商品数目,一维数组当天4个销售员同种商品数目}}}else if ((th - mo) == 0){for (day = a; day <= b; day++){for (i = 0; i<4; i++){for (j = 0; j <= 4; j++){mx[i][j] = mx[i][j] + m[mo].d[day].sell[i].good[j].sum*price[j]; //累加计算所有他的所有销售情况}}for (i = 0; i<5; i++){for (j = 0, partsum = 0; j<4; j++){partsum += m[mo].d[day].sell[j].good[i].sum*price[i];}partallsum[i] += partsum; //统计同种商品数目,一维数组当天4个销售员同种商品数目}}}//输出报表for (i = 0; i<4; i++){printf("%-6s ", sell[i].name);//销售员姓名for (j = 0; j<5; j++){printf("\t%d", mx[i][j]);mxsum += mx[i][j];//二维数组记录销售员}mxsum = 0;//用于下次循环的初始化}//输出表格同类商品总计printf("同类商品");for (i = 0; i<5; i++){printf("\t%d", partallsum[i]);//统计同种商品数目,一维数组alldat += partallsum[i];//合计所有的商品}printf("\t合计:%d", alldat);//所有商品合计x = MessageBox(NULL, "是否打印扇形形图?", "提示", MB_YESNO);if (x == 6){clear();printf("时间段:%d月%d日--%d月%d日", mo + 1, a + 1, th + 1, 1 + b);printf(" 销售扇形图");sxt(partallsum[0], partallsum[1], partallsum[2], partallsum[3], partallsum[4]);}}/************************************************************函数名:del()*描述:删除*入口参数:无;*出口参数:无;******************************************************************/void del(){int i = 0, day = 0, x = 0, month;int choose;filepath();daoru();printf("请输入要查找日期如1月1日输入1 1:");scanf("%d%d", &month, &day);month--;day--;//保持实际时间与数组一致printf("请输入销售人员编号:\n1:xx 2:xx 3:xx 4:xx:");scanf("%d", &i);i--;printf("请选择1.删除该销售员整天的销售信息 2.具体商品销售信息:");scanf("%d", &choose);switch (choose){case 1:{for (x = 0; x<5; x++) m[month].d[day].sell[i].good[x].sum = 0;}break;case 2:{printf("请输入具体要删除的商品种类1~5对应商品1-5 :");x--;m[month].d[day].sell[i].good[x].sum = 0;}break;default:break;}printf("已删除指定销售员信息");save();}/************************************************************函数名:def()*描述:销售数据初始化*入口参数:无;*出口参数:无;******************************************************************/void def(){FILE *fp;int i, day, month;filepath();fp = fopen(filename, "w");for (month = 0; month<12; month++)for (day = 0; day<31; day++){for (i = 0; i<4; i++) //保存信息到文件fprintf(fp, "%-6d%-6d%-6d%-6d%-6d\n", m[month].d[day].sell[i].good[0].sum = 0, m[month].d[day].sell[i].good[1].sum = 0, m[month].d[day].sell[i].good[2].sum = 0,m[month].d[day].sell[i].good[3].sum = 0, m[month].d[day].sell[i].good[4].sum = 0);fprintf(fp, "\n");//日期间隔}printf("初始化操作完成!");fclose(fp);}/************************************************************函数名:filepath()*描述:判断及修改文件位置*入口参数:无;*出口参数:无;******************************************************************/void filepath(){char choose;int x;clear();if (file_choose == 0){x = MessageBox(NULL, "现在为默认文件\n是否使用?", "提示", MB_YESNO);if (x == 7){printf("请输入文件绝对路径:");fflush(stdin);gets(filename);file_choose = 1;//其他位置文件标志}else{x = MessageBox(NULL, "不在提醒?", "提示", MB_YESNO);if (x == 6){file_choose = 2;//其他位置文件标志printf("设置成功\n");}}}}/************************************************************函数名:save()*描述:保存数据*入口参数:无;*出口参数:无;******************************************************************/void save(people){FILE *fp;int day, i, month;fp = fopen(filename, "w");for (month = 0; month<12; month++)for (day = 0; day<31; day++){for (i = 0; i<4; i++)fprintf(fp, "%-6d%-6d%-6d%-6d%-6d\n", m[month].d[day].sell[i].good[0].sum, m[month].d[day].sell[i].good[1].sum, m[month].d[day].sell[i].good[2].sum,m[month].d[day].sell[i].good[3].sum, m[month].d[day].sell[i].good[4].sum);fprintf(fp, "\n");}//写入文件fclose(fp);}/************************************************************函数名:clear()*描述:清屏*入口参数:无;*出口参数:无;******************************************************************/void clear(){int i;HWND hwnd;HANDLE hOut;HDC hdc, hdc1;HPEN ypn, p_pn, p1_pn, p2_pn, p3_pn, p4_pn, p5_pn;HPEN hPen, hOldPen;HBRUSH hBrush, hOldBrush, hbr;COORD pos = { 1, 4 };hwnd = GetConsoleWindow();hdc = GetDC(hwnd);hOut = GetStdHandle(STD_OUTPUT_HANDLE);hbr = CreateSolidBrush(RGB(0, 0, 0));SelectObject(hdc, hbr);Rectangle(hdc, 0, 65, 670, 470);SetConsoleCursorPosition(hOut, pos);for (i = 0; i<19; i++)printf(" \n ");SetConsoleCursorPosition(hOut, pos);Rectangle(hdc, 0, 65, 670, 470);ReleaseDC(hwnd, hdc);}/************************************************************函数名:history()*描述:历史销售查询*入口参数:people;*出口参数:无;******************************************************************/void history(people){int i, j, x = 0, a = 0, b = 0, mo = 0, th = 0, partsum = 0, month = 0;int day = 0, sumall = 0, more = 1;int mx[6] = { 0 }; //用于存放明细char choose;filepath();daoru();clear();printf("输入两个月份及日期:例如7 15 12 6(前者早上到后者晚上):");scanf("%d%d%d%d", &mo, &a, &th, &b);a--;b--;//保持实际时间与数组一致mo--;th--;printf("销售员:%s 时间段:%d月%d日--%d月%d日\n", sell[people].name, mo + 1, a + 1, th +1, 1 + b);printf("日期 \t1.牛奶\t2.西瓜\t3.苹果\t4.白菜\t5.萝卜\t销售之和\n");if (th - mo>0){//间隔整月前一段for (day = a; day<31; day++){if (more >= 16){x = MessageBox(NULL, "是否显示更多?", "提示", MB_YESNO);if (x == 6){clear();printf("日期 \t1.牛奶\t2.西瓜\t3.苹果\t4.白菜\t5.萝卜\t销售之和\n");}else goto end;}printf("%d月%d日 ", mo + 1, day + 1);for (j = 0; j <= 4; j++){sumall += m[mo].d[day].sell[people].good[j].sum;printf("\t%d", m[mo].d[day].sell[people].good[j].sum);mx[j] += m[mo].d[day].sell[people].good[j].sum;}printf("\t%d\n", sumall);more++;mx[5] += sumall;sumall = 0;}//计算间隔整月for (month = mo + 1; month <= (th - 1); month++){for (day = 0; day<31; day++){if (more >= 16){x = MessageBox(NULL, "是否显示更多?", "提示", MB_YESNO);if (x == 6){clear();printf("日期 \t1.牛奶\t2.西瓜\t3.苹果\t4.白菜\t5.萝卜\t销售之和\n");more = 0;}else goto end;}printf("\n%d月%d日 ", month + 1, day + 1);for (j = 0; j <= 4; j++){sumall += m[month].d[day].sell[people].good[j].sum;printf("\t%d", m[month].d[day].sell[people].good[j].sum);mx[j] += m[month].d[day].sell[people].good[j].sum;}printf("\t%d", sumall);more++;mx[5] += sumall;sumall = 0;}}//间隔整月后一段for (day = 0; day <= b; day++){{x = MessageBox(NULL, "是否显示更多?", "提示", MB_YESNO);if (x == 6){clear();printf("日期 \t1.牛奶\t2.西瓜\t3.苹果\t4.白菜\t5.萝卜\t销售之和\n");more = 0;}else goto end;}printf("\n%d月%d日 ", th + 1, day + 1);for (j = 0; j <= 4; j++){sumall += m[th].d[day].sell[people].good[j].sum;printf("\t%d", m[th].d[day].sell[people].good[j].sum);mx[j] += m[th].d[day].sell[people].good[j].sum;}printf("\t%d", sumall);more++;mx[5] += sumall;sumall = 0;}}//一个月内时间段else if ((th - mo) == 0){for (day = a; day <= b; day++){if (more >= 18){x = MessageBox(NULL, "是否显示更多?", "提示", MB_YESNO);if (x == 6){clear();printf("日期 \t1.牛奶\t2.西瓜\t3.苹果\t4.白菜\t5.萝卜\t销售之和\n");more = 0;}else goto end;}printf("%d月%d日 ", mo + 1, day + 1);for (j = 0; j <= 4; j++){sumall += m[mo].d[day].sell[people].good[j].sum;printf("\t%d", m[mo].d[day].sell[people].good[j].sum);mx[j] += m[mo].d[day].sell[people].good[j].sum;}printf("\t%d\n", sumall);more++;mx[5] += sumall;sumall = 0;}}end:printf("\n合计: ");for (j = 0; j <= 4; j++){printf("\t%d", mx[j]);}printf("\t总计:%d\n完成!", mx[5]);x = MessageBox(NULL, "是否打印条形图?", "提示", MB_YESNO);if (x == 6){clear();printf("销售员:%s 时间段:%d月%d日--%d月%d日\n", sell[people].name, mo + 1, a + 1, th + 1, 1 + b);printf("\n\n\n\n 历史销售统计条形图");for (j = 0; j <= 4; j++){txt(mx[j]);}}x = MessageBox(NULL, "是否打印扇形形图?", "提示", MB_YESNO);if (x == 6){clear();printf("销售员:%s 时间段:%d月%d日--%d月%d日", sell[people].name, mo + 1, a + 1, th + 1, 1 + b);printf(" \t销售扇形图");sxt(mx[0], mx[1], mx[2], mx[3], mx[4]);}}/************************************************************函数名:txt(zx)*描述:绘制折线图*入口参数:zx;*出口参数:无;******************************************************************/void txt(zx){static int i = 1;float sum;HWND hwnd;//窗口句柄HANDLE hOut;HDC hdc, hdc1;HPEN ypn, p_pn, p1_pn, p2_pn, p3_pn, p4_pn, p5_pn;HPEN hPen, hOldPen; //画笔HBRUSH hBrush, hOldBrush; //画刷hwnd = GetConsoleWindow();hdc = GetDC(hwnd);hOut = GetStdHandle(STD_OUTPUT_HANDLE);//得到标准的输出设备句柄(显示器等) ypn = CreatePen(PS_SOLID, 5, RGB(0, 200, 255));p_pn = CreatePen(PS_DASHDOTDOT, 1, RGB(255, 0, 0));p1_pn = CreatePen(PS_SOLID, 15, RGB(255, 0, 0));p2_pn = CreatePen(PS_SOLID, 15, RGB(0, 255, 0));p3_pn = CreatePen(PS_SOLID, 15, RGB(0, 0, 255));p4_pn = CreatePen(PS_SOLID, 15, RGB(255, 255, 0));p5_pn = CreatePen(PS_SOLID, 15, RGB(255, 0, 255));if (i == 1){hPen = CreatePen(PS_SOLID, 1, RGB(255, 0, 0)); //画笔hOldPen = (HPEN)SelectObject(hdc, hPen);hBrush = CreateHatchBrush(HS_CROSS, RGB(0, 100, 0)); //方格刷hOldBrush = (HBRUSH)SelectObject(hdc, hBrush);RoundRect(hdc, 20, 170, 530, 350, 5, 5); //画矩形}if (i == 1){SelectObject(hdc, p1_pn);}else if (i == 2){SelectObject(hdc, p2_pn);}else if (i == 3){SelectObject(hdc, p3_pn);}else if (i == 4){SelectObject(hdc, p4_pn);}else SelectObject(hdc, p5_pn);MoveToEx(hdc, i * 100, 344, NULL);LineTo(hdc, i * 100, 350 - zx * 30);SelectObject(hdc, p_pn);LineTo(hdc, 20, 350 - zx * 30);i++;SetTextColor(hdc, RGB(255, 0, 0));////设颜色TextOut(hdc, 1, 320, TEXT("1"), 1);//输出文本TextOut(hdc, 2, 290, TEXT("2"), 1);//输出文本TextOut(hdc, 2, 260, TEXT("3"), 1);//输出文本TextOut(hdc, 2, 230, TEXT("4"), 1);//输出文本TextOut(hdc, 2, 200, TEXT("5"), 1);//输出文本TextOut(hdc, 85, 360, TEXT("牛奶"), 4);//输出文本TextOut(hdc, 185, 360, TEXT("西瓜"), 4);//输出文本TextOut(hdc, 285, 360, TEXT("苹果"), 4);//输出文本TextOut(hdc, 385, 360, TEXT("白菜"), 4);//输出文本TextOut(hdc, 485, 360, TEXT("萝卜"), 4);//输出文本SelectObject(hdc, ypn);MoveToEx(hdc, 20, 170, NULL);LineTo(hdc, 20, 350);LineTo(hdc, 530, 350);ReleaseDC(hwnd, hdc);ReleaseDC(hwnd, hdc1);}/************************************************************函数名:sxt(zx)*描述:绘制扇形图*入口参数:g1,g2,g3,g4,g5;//五种商品数量*出口参数:无;******************************************************************/void sxt(g1, g2, g3, g4, g5){int sellsum = 0;//定义弧度统计总数量int time = 0, x = 0, y = 0, radian = 0;//int ex, ey, radius;//定义圆心半径int i, a, b, c, d, cx = 3;int smx1 = 450, smx2 = 500, smx3 = 510, smy = 175;//图解说明位置COORD pos = { 0, 5 };HWND hwnd;HANDLE hOut;HDC hdc;HPEN gpn, rpn, bpn, blue, yellow;hwnd = GetConsoleWindow();hdc = GetDC(hwnd);hOut = GetStdHandle(STD_OUTPUT_HANDLE);//得到标准的输出设备句柄(显示器等)rpn = CreatePen(PS_SOLID, cx, RGB(255, 0, 0));blue = CreatePen(PS_SOLID, cx, RGB(0, 0, 255));bpn = CreatePen(PS_SOLID, cx, RGB(255, 255, 255));gpn = CreatePen(PS_SOLID, cx, RGB(0, 255, 0));yellow = CreatePen(PS_SOLID, cx, RGB(255, 255, 0));sellsum = g1 + g2 + g3 + g4 + g5;a = g1 * 360 / sellsum;b = (g1 + g2) * 360 / sellsum;c = (g1 + g2 + g3) * 360 / sellsum;d = (g1 + g2 + g3 + g4) * 360 / sellsum;radius = 140;//半径ex = 240;ey = 240;time = 1;SelectObject(hdc, gpn);while (radian <= a){y = radius*sin(radian / 180.0*3.14);x = radius*cos(radian / 180.0*3.14);MoveToEx(hdc, ex, ey, NULL);LineTo(hdc, ex + x, ey + y);radian++;Sleep(time);}SelectObject(hdc, blue);while (radian <= b){y = radius*sin(radian / 180.0*3.14);x = radius*cos(radian / 180.0*3.14);MoveToEx(hdc, ex, ey + 1, NULL);LineTo(hdc, ex + x, ey + y);radian++;Sleep(time);}SelectObject(hdc, rpn);while (radian <= c){y = radius*sin(radian / 180.0*3.14);x = radius*cos(radian / 180.0*3.14);MoveToEx(hdc, ex, ey, NULL);LineTo(hdc, ex + x, ey + y);radian++;Sleep(time);}SelectObject(hdc, bpn);while (radian <= d){y = radius*sin(radian / 180.0*3.14);x = radius*cos(radian / 180.0*3.14);MoveToEx(hdc, ex, ey, NULL);LineTo(hdc, ex + x, ey + y);radian++;Sleep(time);}SelectObject(hdc, yellow);while (radian <= 359){y = radius*sin(radian / 180.0*3.14);x = radius*cos(radian / 180.0*3.14);MoveToEx(hdc, ex, ey - 2, NULL);LineTo(hdc, ex + x, ey + y);radian++;Sleep(time);}SelectObject(hdc, gpn);MoveToEx(hdc, smx1, smy, NULL);LineTo(hdc, smx2, smy);TextOut(hdc, smx3, smy, TEXT("牛奶"), 4);//输出文本SelectObject(hdc, blue);MoveToEx(hdc, smx1, smy += 40, NULL);LineTo(hdc, smx2, smy);TextOut(hdc, smx3, smy, TEXT("西瓜"), 4);//输出文本SelectObject(hdc, rpn);MoveToEx(hdc, smx1, smy += 40, NULL);LineTo(hdc, smx2, smy);TextOut(hdc, smx3, smy, TEXT("苹果"), 4);//输出文本SelectObject(hdc, bpn);MoveToEx(hdc, smx1, smy += 40, NULL);LineTo(hdc, smx2, smy);TextOut(hdc, smx3, smy, TEXT("白菜"), 4);//输出文本SelectObject(hdc, yellow);MoveToEx(hdc, smx1, smy += 40, NULL);LineTo(hdc, smx2, smy);TextOut(hdc, smx3, smy, TEXT("萝卜"), 4);//输出文本TextOut(hdc, smx3, smy, TEXT("萝卜"), 4);//输出文本SetConsoleCursorPosition(hOut, pos); // 设置光标位置printf("牛奶:%d %%%2.1f西瓜:%d %%%2.1f苹果:%d %%%2.1f白菜:%d %%%2.1f萝卜:%d %%%2.1f", g1, g1*100.0 / sellsum, g2, g2*100.0 / sellsum, g3, g3*100.0 / sellsum, g4, g4*100.0 / sellsum, g5, g5*100.0 / sellsum);ReleaseDC(hwnd, hdc);}/************************************************************函数名:menu()*描述:显示菜单*入口参数:无;*出口参数:无;******************************************************************/void menu(){int d1, d2, d, x, xy = 0, i, k;struct re{int top;int left;int right;int bottom;} rt[7];HWND hwnd;//窗口句柄HDC hdc, dc;//画图设备HBRUSH hbr;COORD pos3_1 = { 1, 4 }, pos2_1 = { 1, 4 }, pos2_2 = { 1, 5 }, pos2_3 = { 1, 6 }, pos2_4= { 1, 7 };INPUT_RECORD mouseRec;DWORD state = 0, res = 0;POINT pt;HPEN pn;HANDLE hOut, hIn;COLORREF c;//颜色c = RGB(0, 255, 0);hbr = CreateSolidBrush(c);hwnd = GetConsoleWindow();//得到控制台窗口句柄hdc = GetDC(hwnd); //得到画图设备句柄dc = GetDC(hwnd);//画刷hbr = CreateSolidBrush(RGB(255, 0, 0));SelectObject(dc, hbr);for (rt[1].left = 20, i = 2; i <= 6; i++) rt[i].left = rt[i - 1].left + 110;for (rt[1].right = 82, i = 2; i <= 6; i++) rt[i].right = rt[i - 1].right + 112; //绘制窗口for (i = 0; i <= 6; i++) rt[i].top = 40;for (i = 0; i <= 6; i++) rt[i].bottom = 60;strcpy(sell[0].name, "1 xx");sell[0].sex = 'M';strcpy(sell[1].name, "2xx");sell[1].sex = 'M';strcpy(sell[2].name, "3xx");sell[2].sex = 'M'; //初始化销售员姓名strcpy(sell[3].name, "4xx");sell[3].sex = 'M';hOut = GetStdHandle(STD_OUTPUT_HANDLE);//得到标准的输出设备句柄(显示器等)hIn = GetStdHandle(STD_INPUT_HANDLE);//得到标准的输入设备句柄(鼠标、键盘等)pn = CreatePen(PS_SOLID, 1, RGB(255, 0, 255));GetClientRect(hwnd, &rt);//得到控制台客户区的大小SelectObject(hdc, pn);//选画笔SetBkMode(hdc, TRANSPARENT);//设置背景保持方式MoveToEx(hdc, 1, 35, NULL);LineTo(hdc, 650, 35);LineTo(hdc, 650, 62);LineTo(hdc, 1, 62);LineTo(hdc, 1, 35);hbr = CreateSolidBrush(c);SelectObject(dc, hbr);for (i = 1; i <= 6; i++)Rectangle(dc, rt[i].left, rt[i].top, rt[i].right, rt[i].bottom);SetTextColor(hdc, RGB(255, 255, 0));////设颜色TextOut(hdc, 280, 10, TEXT("销售管理系统"), 12);//输出文本SetTextColor(hdc, RGB(255, 0, 0));////设颜色TextOut(hdc, 20, 40, TEXT("数据导入"), 8);//输出文本TextOut(hdc, 130, 40, TEXT(" 初始化"), 8);//输出文本TextOut(hdc, 240, 40, TEXT("数据查询"), 8);//输出文本TextOut(hdc, 350, 40, TEXT("删除修改"), 8);//输出文本TextOut(hdc, 460, 40, TEXT("打印报表"), 8);//输出文本TextOut(hdc, 570, 40, TEXT(" 退出"), 8);//输出文本TextOut(hdc, 8, 64, TEXT("若首次使用先点击初始化"), 22);//输出文本ShowWindow(hwnd, SW_SHOW);for (;;) // 循环{//读取输入的信息SetConsoleTextAttribute(hOut, 10);ReadConsoleInput(hIn, &mouseRec, 1, &res);Sleep(100);if (mouseRec.EventType == MOUSE_EVENT){//if (mouseRec.Event.MouseEvent.dwEventFlags == DOUBLE_CLICK) break; // 双击鼠标退出循环if (mouseRec.Event.MouseEvent.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED){GetCursorPos(&pt);ScreenToClient(hwnd, &pt);if (pt.x>rt[1].left && pt.x<rt[1].right &&pt.y>rt[1].top &&pt.y<rt[1].bottom){clear();printf("输入数据方式:1手动输入,2文件导入其他:返回");scanf("%d", &x);if (x == 1) input();else if (x == 2){printf("请输入要导入的文件及其位置:");fflush(stdin);gets(filename);daoru();file_choose = 1;//指定文件导入成功的标志printf("导入成功");}continue;}else if (pt.x>rt[2].left && pt.x<rt[2].right &&pt.y>rt[2].top &&pt.y<rt[2].bottom){clear();def();continue;}else if (pt.x>rt[3].left && pt.x<rt[3].right &&pt.y>rt[3].top &&pt.y<rt[3].bottom){clear();printf("输入数据查询方式:1具体查询,2报表输出 ,3历史查询,其他:返回:");scanf("%d", &x);if (x == 1) seek();if (x == 2) baobiao();if (x == 3){printf("请输入销售人员编号:\n1:xx 2:xx 3:xx 4:xx:");scanf("%d", &i);i--;history(i);};continue;}else if (pt.x>rt[4].left && pt.x<rt[4].right &&pt.y>rt[4].top && pt.y<rt[4].bottom){clear();printf("数据修改:1.删除 2.修改,其他:返回:");scanf("%d", &x);if (x == 1) del();else if (x == 2) input();continue;}else if (pt.x>rt[5].left && pt.x<rt[5].right &&pt.y>rt[5].top && pt.y<rt[5].bottom){clear();baobiao();continue;}else if (pt.x>rt[6].left && pt.x<rt[6].right &&pt.y>rt[6].top && pt.y<rt[6].bottom){x = MessageBox(NULL, "确定退出?", "是否退出", MB_YESNO);if (x == 6)break;if (x = 7)continue;}};}}ReleaseDC(hwnd, hdc);}。
销售管理系统程序设计——C语言

销售管理系统程序设计一,题目要求某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。
每个销售员都将当天出售的每种产品各写一张便条交上来。
每张便条包含内容:1)销售员的代号2)产品的代号3)这种产品的当天的销售额每位销售员每天可能上缴0-5张便条。
假设,收集到了上个月的所有便条,编写一个处理系统,读取上个月的销售情况(自己设定),进行如下处理。
①计算上个月每个人每种产品的销售额。
②按销售额对销售员进行排序,输出排序结果(销售员代号)③统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)④输出统计报表二,需求分析1)最好采用结构体数组和文件系统2)结构体成员包括销售员代号,产品代号,销售额3)排序算法参照冒泡法或选择排序算法等4)输出统计报表形式按照题目给出的形式在屏幕上相应位置输出三,总体设计基本流程图如下:模块划分:整个运行系统流程:输入,运算,排序,输出,储存首先输入便条数据,自动创建文本文档,储存数据然后再运算,主要为排序,既而输出数据,储存。
四,详细设计具体步骤:1:声明结构体部分【程序如下】#include<stdio.h>#include<conio.h>#define max 155struct goods {int p_num;int num;int g_num;} s[max];struct persons {int num[7];}p[6],w;2:主函数部分【程序如下】int n;/*******全局变量********/main(){int input(), output1(),output2(),output3(),output4();int arg(),mulu();int save();puts("\t\t中国地质大学\n");puts("\t\t\t C 语言程序设计\n");puts("\t\t\t资源勘查工程李晓峰021081班\n\n");puts("\t\t********************MENU********************");printf(" \n\n\n \*******销售管理系统********\n\n\n");printf("请输入销售信息:(按-1结束)\n\n销售员代号1--4 产品代号1--5 销售额\n");for(n=0;n<max;n++){scanf("%d",&s[n].p_num);if(s[n].p_num==(-1))break;elsescanf("%d%d",&s[n].g_num,&s[n].num);}mulu();}3:目录部分【程序如下】int mulu(){ int choice;arg();do{printf(" \n\n\n \t\t\t *******销售管理系统********\n\n\n");printf(" 1.计算上个月每个人每种产品的销售额\n\n");printf("2.按销售额对销售员进行排序,输出排序结果(销售员代号)\n\n");printf(" 3.统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果\n\n");printf("4.输出统计报表\n\n");printf("0.退出系统\n\n");printf("请选择(0-4):");scanf("%d",&choice);switch(choice){case 1: output1();break;case 2: output2();break;case 3: output3();break;case 4: output4();break;case 0: exit(0);}}while(choice!=0);}int arg(){ int k,a,j;for(k=1;k<=5;k++){ p[0].num[k]=k;for(a=1;a<=6;a++)p[k].num[a]=0;}for(k=1;k<=4;k++)p[k].num[0]=k;for(k=1;k<=4;k++)for(a=1;a<=5;a++)for(j=0;j<n;j++)if(s[j].p_num==k && s[j].g_num==a)p[k].num[a]=p[k].num[a]+s[j].num;/*************每种产品的销售额*****************/for(a=1;a<=5;a++)for(k=1;k<=4;k++)p[5].num[a]=p[5].num[a]+p[k].num[a];/*************每个人的销售额*************/for(k=1;k<=5;k++)for(a=1;a<=5;a++)p[k].num[6]=p[k].num[6]+p[k].num[a];}4:模块一:计算上个月每个人每种产品的销售额【程序如下】int output1(){ int i,k;printf("******计算上个月每个人每种产品的销售额*******");printf("%d\t",p[0].num[k]);printf("\n\n");for(i=1;i<=4;i++){for(k=0;k<=5;k++)printf("%d\t",p[i].num[k]);printf("\n\n");}mulu();}5:模块二:该模块按销售额对销售员进行排序,输出排序结果(销售员代号)分析:调用函数,采用选择法对每个销售员的销售情况进行统计输出【程序如下】int output2(){int i,r,j;{r=i;for(j=i+1;j<=4;j++)if(p[r].num[6]<p[j].num[6])r=j;if(r!=i){ w=p[i];p[i]=p[r];p[r]=w;}}printf("*********按销售额对销售员排序情况如下**********\n\n");printf("销售员代码\t销售总额\n");for(i=1;i<=4;i++)printf(" %d\t\t%d\n",p[i].num[0],p[i].num[6]);mulu();}6:模块三:该模块统计输出每种产品的总销售额,按从高到底的顺序分析:同样是调用函数,采用选择法对每种产品的总销售额进行统计输出(从高到低)【程序如下】int output3(){int k,i,r,t;for(k=1;k<5;k++){r=k;for(t=k+1;t<=5;t++)if(p[5].num[r]<p[5].num[t]) r=t;if(r!=k)for(i=0;i<=5;i++){ p[i].num[6]=p[i].num[k];p[i].num[k]=p[i].num[r];p[i].num[r]=p[i].num[6];}}printf("*****每种产品的总销售额顺序情况如下*****\n\n");printf(" 产品代码总销售额\n");for(k=1;k<=5;k++)printf(" %d\t\t%d \n",p[0].num[k],p[5].num[k]);mulu();}7:模块四:输出统计报表分析:用二维数组的形式将统计的结果从屏幕上输出来【程序如下】int output4(){ int i,k;int flage=0;printf("\t\t****销售统计报表****\n\n\n");printf(" 产品代号\n销售员码1\t2\t3\t4\t5\t销售之和\n\n")for(i=1;i<=4;i++){ for(k=0;k<=6;k++)printf("%d\t",p[i].num[k]);printf("\n\n");}printf("总和\t");for(k=1;k<=6;k++)printf("%d\t",p[5].num[k]);if(flage==0) /********保证只存一次*******/{ save();printf("\n\n信息已成功保存!_(文件名:goods_information)");flage=1;}mulu();}8:保存统计结果分析:调用函数,采用文件和指针,将输出的结果用文本文档保存下来【程序如下】int save(){FILE *fp;int i,k;if((fp=fopen("goods_information.txt","w"))==NULL){printf("\n\n按任意键退出,重新开始");getch();exit(1);}fprintf(fp,"产品代号\n销售员码1\t2\t3\t4\t5\t销售之和\n\n");for(i=1;i<=4;i++){ for(k=0;k<=6;k++)fprintf(fp,"%d\t",p[i].num[k]);fprintf(fp,"\n\n");}fprintf(fp,"总和");for(k=1;k<=6;k++)fprintf(fp,"%d\t",p[5].num[k]);fclose(fp);getch();}运行结果分析如下:1:进入系统运行,按要求输入销售员代码,产品代码,销售额2:按确定运行,选择:1 如下3:按确定运行,再选择:2 如下(求出了上个月每个人每种产品的销售额情况)4:按确定运行,再选择:3 如下:求出了按销售额对销售员进行排序,输出排序结果(销售员代号)5:按确定运行,再选择:4 如下:求出了统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)6:按确定运行如下:统计输出了销售报表7:再按确定之后就保存了报表数据,然后就可以从电脑可移动磁盘中,找到文件名为GOODS INFORMATION的文本文档,从而差看其中的统计报表数据。
c语言课程设计(销售管理系统)【完整版】

c语言课程设计(销售管理系统)【完整版】
本管理系统实现了销售管理,可以完成客户管理、商品管理以及订单管理等功能,为管理者提供更多便利。
管理系统由主菜单、客户管理、商品管理、订单管理等模块组成,主菜单模块显示并实现了上述以及其他所有模块,可以方便快捷地进行相关操作。
客户管理模块包括新建客户信息、删除客户信息、更新客户信息、查询客户信息等功能,可以快速有效地管理客户信息;
订单管理模块包括新建订单、删除订单、更新订单、查询订单等功能,能够轻松地完成销售订单的管理。
另外,系统还采用了文件存储,只要上次保存数据正确,就可以实现每次登录之后的自动加载,让操作更加简单快捷。
系统采用C语言开发,使用字符操作实现图形界面;结构体链表数据结构实现数据存储与处理;文件存储实现数据加载与保存;采用函数式编程实现功能模块;不断尝试性地增加改进系统,以确保系统运行更加稳定可靠。
本项目以C语言编程实现对销售管理系统的全面而完整的管理,能满足日常销售管理的需求;同时,丰富的图形界面,实用的功能模块和可靠的文件存储,使系统操作变得更为简单快捷。
C语言编程销售管理系统

C语言编程销售管理系统#include#include#include#include#define NULL 0#define LEN sizeof(struct records)struct sellers_list /*销售员信息结构体*/ {int snum;char sname[20];char sex[10];}sellers[4];struct products_list /*产品信息结构体*/ {int pnum;char pname[20];float price;}products[5];struct records /*销售记录结构体*/{int snum;int pnum;int amount;char time[10];struct recoreds *next;};struct records *head=NULL;struct date /*日期结构体*/{int year;int month;int day;}d[100];int tab[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};int n=0,choice;char c[100];void menu_select();void create_sellers();void create_products();void create_records(int n);void display();void insert(int m);void del();void find();void report(struct records *head);int main(){printf("\n\n\n\n\n\n\t\t\t欢迎您使用该销售管理平台!\n");printf("\n\n\n\t\t\t\t按任意键进入销售管理菜单、、、\n"); getch();system("cls");menu_select();}void menu_select() /*主菜单*/{int x;printf("****************销售管理菜单********************\n"); printf("* 1.输入销售员信息 *\n");printf("* 2.输入产品的信息 *\n");printf("* 3.输入销售的记录 *\n");printf("* 4.浏览所有的信息 *\n");printf("* 5.插入销售的记录 *\n");printf("* 6.删除销售的记录 *\n");printf("* 7.查询销售的记录 *\n");printf("* 8.导出销售的报表 *\n");printf("* 9.退出 *\n");printf("************************************************\n"); printf("请输入1-9选择相应操作:");do{scanf("%s",&c);choice=atoi(c);if(choice<1||choice>9)printf("输入错误!请输入1-9选择相应操作:");}while(choice<1||choice>9);do{switch(choice){case 1:create_sellers();getch();system("cls");menu_select();break;case 2:create_products();getch();system("cls");menu_select();break;case 3:if(head!=NULL){printf("\n你已经创建了链表,按任意键返回主菜单!\n"); getch();system("cls");menu_select();break;}else{system("cls");printf("请输入要建立的销售记录条数:");scanf("%d",&n);if(n>0)create_records(n);elseprintf("\n输入的数据有问题,请重新输入!\n");}getch();system("cls");menu_select();break;case 4:display();getch();system("cls");menu_select();break;case 5:system("cls");if(head==NULL)printf("现在是空链表,请先去创建链表!\n");else{do{printf("请正确输入要插入销售记录的位置(范围是 1--%d):",n); scanf("%d",&x);} while(x<1 || x>n);insert(x);}getch();system("cls");menu_select();break;case 6:system("cls");del();getch();system("cls");menu_select();break;case 7:system("cls");find();getch();system("cls");menu_select();break;case 8:system("cls");report(head);system("cls");menu_select();break;}}while(choice!=9);system("cls");printf("\n\n\n\n\n\n\n 谢谢使用!欢迎下次使用、、、、、、\n");getch();}void create_sellers() /*输入销售员信息*/{int i,ch;system("cls");printf("*******************选择界面*********************\n");printf("* 1.从键盘输入销售员信息 *\n");printf("* 2.从文件中读取销售员信息 *\n");printf("************************************************");printf("\n请输入1或2选择需要的操作:");do{scanf("%s",&c);ch=atoi(c);if(ch<1||ch>2)printf("输入错误!请输入1或2选择需要的操作:\n");}while(ch<1||ch>2);if(ch == 2){FILE *fp;if((fp=fopen("sellers.txt","r"))==NULL){printf("\nCannot open file strike any key exit!\n\n");exit(1);}ch=getchar();printf("销售员的编号姓名性别 \n");for(i=0;i<4;i++){fscanf(fp,"%d %s %s",&sellers[i].snum,sellers[i].sname,sellers [i].sex);printf(" %d %s %s\n",sellers[i].snum,sellers[i].sname,sellers[i] .sex);}fclose(fp);printf("销售员信息读取成功,按任意键返回主菜单!\n");}else{printf("\n 销售员的编号姓名性别 (空格隔开)\n");for(i=0;i<4;i++){scanf("%d%s%s",&sellers[i].snum,sellers[i].sname,sellers[i].s ex);}}}void create_products() /*输入产品信息*/{int j,ch;system("cls");printf("*******************选择界面*********************\n");printf("* 1.从键盘输入销售产品信息 *\n");printf("* 2.从文件中读取销售产品信息 *\n");printf("************************************************");printf("\n请输入1或2选择需要的操作:");do{scanf("%s",&c);ch=atoi(c);if(ch<1||ch>2)printf("输入错误!请输入1或2选择需要的操作:\n");}while(ch<1||ch>2);if(ch == 2){FILE *fp;if((fp=fopen("products.txt","r"))==NULL){printf("\nCannot open file strike any key exit!\n\n");exit(1);}ch=getchar();printf("产品的编号名称价格\n");for(j=0;j<5;j++){fscanf(fp,"%d %s %f",&products[j].pnum,products[j].pname, &products[j].price);printf(" %d %s %f\n",products[j].pnum,products[j].pname,pr oducts[j].price);}fclose(fp);printf("销售产品信息读取成功,按任意键返回主菜单!\n");}else{printf("\n产品的编号名称价格 (逗号隔开)\n");for(j=0;j<5;j++){scanf("%d,%s,%f",&products[j].pnum,products[j].pname,&p roducts[j].price);}}}void create_records(int n) /*创建销售记录链表*/{struct records *p;int i,j,flag,leap,ch;char a[3],b[2],c[2];printf("*******************选择界面*********************\n");printf("* 1.从键盘输入销售的记录 *\n");printf("* 2.从文件中读取销售的记录 *\n");printf("************************************************");printf("\n请输入1或2选择需要的操作:");do{scanf("%s",&c);ch=atoi(c);if(ch<1||ch>2)printf("输入错误!请输入1或2选择需要的操作:\n");}while(ch<1||ch>2);if(ch==1){printf("*********************请输入销售记录*************************\n\n");printf("销售员编号产品代号销售数量日期(YYYY-MM-DD)(空格隔开)\n");for(i=0; i{p=(struct records *)malloc(LEN);do{flag=1;scanf("%d%d%d%s",&p->snum,&p->pnum,&p->amount,p ->time);for(j=0;j<4;j++){a[j]=p->time[j];}a[4]=' ';b[0]=p->time[5];b[1]=p->time[6];c[0]=p->time[8];c[1]=p->time[9];d[i].year=atoi(a);d[i].month=atoi(b);d[i].day=atoi(c);for(j=0;j<4;j++){if(p->snum==sellers[j].snum)break;}if(j==4){printf("销售员不存在!请重新输入!\n");flag=0;continue;}for(j=0;j<5;j++){if(p->pnum==products[j].pnum)break;}if(j==5){printf("该产品不存在!请重新输入!\n");flag=0;continue;}if(p->time[4]!='-'||p->time[7]!='-'||strlen(p->time)!=10){ printf("日期格式错误!请重新输入!\n");flag=0;continue;}if(d[i].year%4==0||d[i].year%100==0||d[i].year%400==0) leap=0;elseleap=1;if(leap=1){if(d[i].day>tab[1][d[i].month]||d[i].day<0){printf("天数错误!请重新输入!\n");flag=0;continue;}}else{if(d[i].day>tab[0][d[i].month]||d[i].day<0){ printf("天数错误!请重新输入!\n");flag=0;continue;}}}while(flag==0);p->next=head;head=p;}printf("\n成功输入%d条销售记录,按任意键返回主菜单!\n",n);}else{FILE *fp;if((fp=fopen("records.txt","r"))==NULL){printf("\nCannot open file strike any key exit!\n\n");exit(1);}ch=getchar();printf("销售员编号产品代号销售数量日期(YYYY-MM-DD)\n");for(i=0;i<n;i++){p=(struct records *)malloc(LEN);fscanf(fp,"%d %d %d %s",&p->snum,&p->pnum,&p->amo unt,p->time);printf(" %d %d %d %s\n",p->snum,p->pnum,p->amount,p->time);p->next=head;head=p;}fclose(fp);printf("销售记录读取成功,按任意键返回主菜单!\n");}}void display() /*浏览所有信息*/{int i;struct records *p;system("cls");printf("*********************销售员信息*********************\n");printf("编号姓名性别 \n");for(i=0;i<4;i++)printf("%d %s %s\n",sellers[i].snum,sellers[i].sname,sellers[i]. sex);printf("*********************销售产品信息*******************\n");printf("编号名称价格\n");for(i=0;i<5;i++)printf("%d %s %f\n",products[i].pnum,products[i].pname,pr oducts[i].price);printf("**********************销售记录**********************\n");printf("销售员编号产品代号销售数量日期\n");p=head;while(p!=NULL){printf("%d %d %d %s\n",p->snum,p->pnum,p->amount,p->time);p=p->next;}printf("\n所有信息显示完毕,按任意键返回主菜单!\n");}void insert(int m) /*插入销售记录*/{struct records *p1,*p2;int i=1,j,flag,leap;char a[3],b[2],c[2];p1=head;while(i<m){p1=p1->next; i++;}printf("*********************请插入销售记录*************************\n");printf("销售员编号产品代号销售数量日期(YYYY-MM-DD) (空格隔开)\n");p2=(struct records *)malloc(LEN);do{flag=1;scanf("%d%d%d%s",&p2->snum,&p2->pnum,&p2->amou nt,p2->time);for(j=0;j<4;j++){a[j]=p2->time[j];}a[4]=' ';b[0]=p2->time[5];b[1]=p2->time[6];c[0]=p2->time[8];c[1]=p2->time[9];d[i].year=atoi(a);d[i].month=atoi(b);d[i].day=atoi(c);for(j=0;j<4;j++){if(p2->snum==sellers[j].snum)break;}if(j==4){printf("销售员不存在!请重新输入!\n");flag=0;continue;}for(j=0;j<5;j++){if(p2->pnum==products[j].pnum)break;}if(j==5){printf("该产品不存在!请重新输入!\n");flag=0;continue;}if(p2->time[4]!='-'||p2->time[7]!='-'||strlen(p2->time)!=10){ printf("日期格式错误!请重新输入!\n");flag=0;continue;if(d[i].year%4==</m)</n;i++){0||d[i].year%100==0||d[i].year%400==0)leap=0;elseleap=1;if(leap=1){if(d[i].day>tab[1][d[i].month]||d[i].day<0){printf("天数错误!请重新输入!\n");flag=0;continue;}}else{if(d[i].day>tab[0][d[i].month]||d[i].day<0){ printf("天数错误!请重新输入!\n");flag=0;continue;}}}while(flag==0);p2->next=p1->next;p1->next=p2;n++;printf("成功插入销售记录,按任意键返回主菜单!\n");}void del() /*删除指定销售记录*/{struct records *p1,*p2;int ch,m;char t[10];p1=p2=head;printf("*******************选择界面*********************\n"); printf("* 1.删除指定销售员的销售记录 *\n");printf("* 2.删除指定产品的销售记录 *\n");printf("* 3.删除指定日期的销售记录 *\n");printf("************************************************"); printf("\n请输入1-3选择需要的操作:");do{scanf("%s",&c);ch=atoi(c);if(ch<1||ch>3)printf("输入错误!请输入1-3选择需要的操作:\n");}while(ch<1||ch>3);if(ch==1){printf("请输入指定销售员的编号:");scanf("%d",&m);while(p1!=NULL && p1->snum!=m){p2=p1; p1=p1->next;}if(p1==NULL)printf("没有找到您要删除的销售记录,按任意键返回主菜单!\n");else{printf("成功删除编号为 %d的销售员的销售记录,按任意键返回主菜单!\n",m);if(p1==p2)head=p1->next;elsep2->next=p1->next;free(p1);n--;}if(n==0)head=NULL;}else if(ch==2){printf("请输入指定产品的代号:\n");scanf("%d",&m);while(p1!=NULL && p1->pnum!=m){p2=p1; p1=p1->next;}if(p1==NULL)printf("没有找到您要删除的销售记录,按任意键返回主菜单!\n");else{printf("成功删除代号为 %d的产品的销售记录,按任意键返回主菜单!\n",m);if(p1==p2)head=p1->next;elsep2->next=p1->next;free(p1);n--;}if(n==0)head=NULL;}else{printf("请输入指定的日期(YYYY-MM-DD):");scanf("%s",&t);while(p1!=NULL && strcmp(p1->time,t)!=0){p2=p1; p1=p1->next;}if(p1==NULL)printf("没有找到您要删除的销售记录,按任意键返回主菜单!\n");else{printf("成功删除日期为%s的销售记录,按任意键返回主菜单!\n",t);if(p1==p2)head=p1->next;elsep2->next=p1->next;free(p1);n--;}if(n==0)head=NULL;}}void find() /*查询指定销售员的销售记录*/{struct records *p;int flag=0,m;printf("请输入要查询的销售员编号:");scanf("%d",&m);p=head;while(p!=NULL){if(p->snum==m){flag=1;printf("销售员编号产品代号销售数量日期(YYYY-MM-DD)\n");printf(" %d %d %d %s\n",p->snum,p->pnum,p->amount,p->time);}p=p->next;}if(flag==1)printf("查询信息显示完毕,按任意键返回主菜单!\n");if(flag==0)printf("没有找到您要查找的销售记录,按任意键返回主菜单!\n");}void report(struct records *head) /*显示销售报表*/{int i,j,flag,leap;char s1[10],s2[10],a[4],b[2],c[2];int report[5][6]={0};struct records *ptr=head;struct sellers_list *p=sellers;struct products_list *q=products;system("cls");printf("请输入您要查询的起止时间与截止时间(格式为YYYY-XX-DD)(回车间隔)\n");getchar();do{flag=1;gets(s1);for(j=0;j<4;j++){a[j]=s1[j];}a[4]=' ';b[0]=s1[5];b[1]=s1[6];c[0]=s1[8];c[1]=s1[9];d[0].year=atoi(a);d[0].month=atoi(b);d[0].day=atoi(c);if(s1[4]!='-'||s1[7]!='-'||strlen(s1)!=10){printf("日期格式错误!请重新输入!\n");flag=0;continue;}if(d[0].year%4==0||d[0].year%100==0||d[0].year%400==0) leap=0;elseleap=1;if(leap=1){if(d[0].day>tab[1][d[0].month]||d[0].day<0){printf("天数错误!请重新输入!\n");flag=0;continue;}}else{if(d[0].day>tab[0][d[0].month]||d[0].day<0){ printf("天数错误!请重新输入!\n");flag=0;continue;}}}while(flag==0);do{flag=1;gets(s2);for(j=0;j<4;j++){a[j]=s2[j];}a[4]=' ';b[0]=s2[5];b[1]=s2[6];c[0]=s2[8];c[1]=s2[9];d[1].year=atoi(a);d[1].month=atoi(b);d[1].day=atoi(c);if(s2[4]!='-'||s2[7]!='-'||strlen(s2)!=10){printf("日期格式错误!请重新输入!\n");flag=0;continue;}if(d[1].year%4==0||d[1].year%100==0||d[1].year%400==0) leap=0;elseleap=1;if(leap=1){if(d[1].day>tab[1][d[1].month]||d[1].day<0){printf("天数错误!请重新输入!\n");flag=0;continue;}}else{if(d[1].day>tab[0][d[1].month]||d[1].day<0){ printf("天数错误!请重新输入!\n");flag=0;continue;}}}while(flag==0);while(ptr!=NULL){/*将对应日期内销售数量累加到报表相应位置*/s2[0]=a[0];if((strcmp(ptr->time,s1)>=0)&&(strcmp(ptr->time,s2)<=0)) {for(i=0;i<4;i++){if(ptr->snum == sellers[i].snum)break;}for(j=0;j<5;j++){if(ptr->pnum ==products[j].pnum)break;}report[i][j] += ptr->amount;}ptr=ptr->next;}/*横竖向汇总*/for(i=0;i<5;i++){for(j=0;j<4;j++)report[4][i]+=report[j][i];}for(i=0;i<5;i++){for(j=0;j<5;j++)report[i][5] +=report[i][j];}printf("****************************销售统计报表****************************************\n");printf(" 产品代号销售之和 \n");printf("销售员代号 ");for(i=0;i<5;i++)printf("%10d",products[i].pnum);printf("\n");for(i=0;i<5;i++){if(i<4)printf("%10d ",sellers[i].snum);elseprintf("每种产品之和 ");for(j=0;j<6;j++){printf("%10d",report[i][j]);}if(i<4)printf("\n");elseprintf(" 总和\n");}printf("\n按任意键返回主菜单!\n"); getchar();}。
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篇) 摘要随着计算机技术的飞速发展和激烈的市场竞争,销售管理系统在企业结构中已经占据主导地位,而使用计算机来进行销售管理不仅错误少、灵活度高,并且效率高、操作简便。
c语言课程设计销售管理系统

c语言课程设计销售管理系统一、教学目标本课程的教学目标是使学生掌握C语言销售管理系统的基本概念、设计方法和实现技巧。
通过本课程的学习,学生应能理解销售管理系统的业务流程,运用C语言进行系统设计和编程实现,培养学生的实际编程能力和解决实际问题的能力。
具体来说,知识目标包括:理解销售管理系统的功能和结构;掌握C语言的基本语法和数据结构;了解软件工程的基本原理和方法。
技能目标包括:能够使用C语言进行程序设计和调试;能够运用面向对象的方法进行系统设计;能够使用常用的软件开发工具。
情感态度价值观目标包括:培养学生对计算机科学的兴趣和热情;培养学生良好的团队合作精神和创新精神。
二、教学内容本课程的教学内容主要包括三个部分:C语言基础知识、销售管理系统的设计方法和实践操作。
第一部分,C语言基础知识,包括C语言的基本语法、数据类型、运算符、控制结构等。
这部分内容将引导学生掌握C语言的基本编程技巧,为后续的销售管理系统设计打下基础。
第二部分,销售管理系统的设计方法,包括需求分析、系统设计、编码实现和测试等。
这部分内容将引导学生了解软件工程的基本原理和方法,培养学生运用面向对象的方法进行系统设计的能力。
第三部分,实践操作,包括使用C语言实现一个简单的销售管理系统。
这部分内容将引导学生动手实践,培养学生的实际编程能力和解决实际问题的能力。
三、教学方法为了实现本课程的教学目标,我们将采用多种教学方法,包括讲授法、案例分析法、实验法和讨论法等。
讲授法将用于讲解C语言的基本语法和数据结构,以及销售管理系统的设计方法和原理。
案例分析法将用于分析真实的销售管理案例,使学生更好地理解销售管理系统的实际应用。
实验法将用于让学生动手编写代码和调试程序,培养学生的实际编程能力。
讨论法将用于引导学生进行小组讨论和交流,培养学生的团队合作精神和创新精神。
四、教学资源为了支持本课程的教学内容和教学方法,我们将准备多种教学资源,包括教材、参考书、多媒体资料和实验设备。
c语言课程设计销售管理系统

c语言课程设计销售管理系统一、教学目标本章节的教学目标分为三个部分:知识目标、技能目标和情感态度价值观目标。
1.知识目标:通过本章节的学习,学生需要掌握销售管理系统的概念、原理和基本框架,了解C语言在销售管理系统中的运用。
2.技能目标:学生能够运用C语言编写简单的销售管理程序,具备独立分析和解决问题的能力。
3.情感态度价值观目标:培养学生对计算机科学的兴趣,提高学生运用C语言解决实际问题的意识。
二、教学内容本章节的教学内容主要包括销售管理系统的概念、原理、基本框架及其在C语言中的应用。
具体包括以下几个部分:1.销售管理系统的概念和原理:介绍销售管理系统的定义、功能、特点和基本原理。
2.销售管理系统的基本框架:讲解销售管理系统的基本框架,包括数据结构、算法和程序设计。
3.C语言在销售管理系统中的应用:通过实例分析,展示如何使用C语言编写销售管理程序。
三、教学方法为了提高教学效果,本章节将采用多种教学方法相结合的方式进行教学。
具体包括以下几种方法:1.讲授法:讲解销售管理系统的概念、原理和基本框架。
2.案例分析法:分析实际销售管理系统的案例,让学生了解C语言在销售管理系统中的应用。
3.实验法:安排课后实验,让学生动手编写销售管理程序,巩固所学知识。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:选用权威、实用的C语言教材,为学生提供基础知识。
2.参考书:推荐学生阅读与销售管理系统相关的参考书籍,拓宽知识面。
3.多媒体资料:制作PPT、教学视频等多媒体资料,提高课堂趣味性。
4.实验设备:确保每位学生都能接触到计算机,进行课后实验。
五、教学评估本章节的教学评估将采用多元化的评估方式,以全面、客观、公正地评价学生的学习成果。
评估方式包括:1.平时表现:通过课堂参与、提问、讨论等环节,评估学生的学习态度和积极性。
2.作业:布置与销售管理系统相关的编程作业,评估学生的编程能力和理解程度。
C语言设计实现销售管理系统源代码

#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();}。
C语言-销售管理系统报告书

C语言-销售管理系统报告书C语言课程设计报告一、题目设计一个C语言程序(销售管理系统)二、内容1、每一记录包括销售员的编号、产品编号、产品当天的销售额、上个月每个人每种产品的销售额、每种产品的总销售额。
2、输入功能:可以完成记录的输入3、显示功能:完成所要求员工的记录的显示4、查找功能:完成按员工编号查找员工记录,并显示。
5、排序功能: 按销售额对销售员进行排序, 对这些产品按从高到底的顺序输出排序结果。
6、保存功能:将员工记录保存在自定义的文件中。
三、设计要求1、整个系统均用C 语言实现;2、利用指针、链表来实现员工销售情况的数据结构设计3、系统具有输入、显示、查询、删除、排序、插入、保存、读取基本功能4、系统的各个功能模块都用函数的形式来实现。
5、可以将员工的销售情况从文件当中读取出来。
具体要求:某公司有四个销售员(编号:1-4),负责销售五种产品(编号1-5)每个销售员都将当天出售的每种产品各写一张便条交上来。
每张便条包含内容:1)销售员的代号2)产品的代号3)这种产品当天的销售额每位销售员每天的可能上交0-5 张便条。
假设,收集到了上个月的所有便条,编写一个处理系统,读取上个月的销售情况,进行如下处理:主要功能:1、计算上个月每个人每种产品的销售额。
2、按销售额对销售员进行排序,输出排序结果(销售员代号)3、统计每种产品的总销售额,对这些产品按从高到底的顺序输出排序结果(需输出产品的代号和销售额)4、输出统计报表四、总体设计1、程序设计组成框图销售系统五、详细设计1、功能函数f1()——本函数由梁俊贤设计函数的功能: 计算上个月每个人每种产品的销售额函数的入口:从 main()的switch()开关结构中进入, 即choice 的值为1时进入该函数,打 开.dat 数据文件,然后提示用户通过键盘 对该月的员工销售情况进行数据的读入。
函数调用关系: 被主函数调用。
由switch()开关结构中进 入,并在文中无返回值的空值 void 函数。
c语言销售管理系统

C语言销售管理系统系统说明C语言销售管理系统是一款基于C语言的控制台程序,旨在管理企业的销售业务。
该系统主要包括以下功能模块:•用户登录:用户可通过输入用户名和密码进行登录,实现系统权限的控制。
•销售管理:实现商品的销售、入库、退货等操作,生成相应的销售订单和退货订单。
•库存管理:查询商品库存量,实现库存预警功能,在商品库存达到最低值时,系统会自动提示。
•客户管理:记录客户信息,包括客户名称、联系方式等。
技术架构该系统采用C语言开发,主要使用了文件操作、结构体、指针等语言特性。
具体技术架构如下:•数据存储:系统采用文件系统作为数据存储方式,使用了C语言提供的文件操作API实现文件读写操作。
•界面设计:系统通过控制台界面对用户进行交互,使用了C语言提供的标准输入输出函数进行界面开发。
•数据结构:系统采用结构体来组织订单、商品、客户等数据,使用指针和链表等数据结构来实现数据的管理和操作。
•用户权限管理:系统采用用户名和密码的方式进行用户身份验证,通过文件读写来实现对用户权限的控制。
系统功能用户登录用户登录是系统的基础功能,只有经过身份验证的用户才能访问系统其他功能模块。
用户在登录界面输入用户名和密码后,系统会读取保存在文件中的用户信息进行验证。
如果验证通过,系统会输出欢迎信息并跳转到主菜单界面;否则,系统会提示用户用户名或密码错误。
销售管理销售管理是系统的核心功能模块,它包括了商品的销售、入库、退货等核心业务。
用户可通过销售管理界面选择相应的操作,输入相关信息后,系统会根据输入的信息生成销售订单或退货订单,同时更新商品库存和客户信息。
系统还支持订单的查询、导出功能,方便用户进行记录和统计。
库存管理库存管理是系统的基础功能模块,它主要通过查询商品的库存量,判断是否需要进行进货、补货等操作。
系统会根据库存预警规则,设置商品的最低库存量和提醒方式,当库存量低于最低值时,系统会自动提示用户进行相应的操作。
客户管理客户管理模块主要记录客户的名称、联系方式等信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
printf("* 2.输入产品的信息 *\n");
printf("* 3.输入销售的记录 *\n");
}
fclose(fp);
printf("销售员信息读取成功,按任意键返回主菜单!\n");
}
else
{
printf("\n 销售员的编号 姓名 性别 (空格隔开)\n");
for(i=0;i<4;i++)
{
scanf("%d%s%s",&sellers[i].snum,sellers[i].sname,sellers[i].sex);
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#define NULL 0
#define LEN sizeof(struct records)
struct sellers_list /*销售员信息结构体*/
printf("************************************************\n");
printf("请输入1-9选择相应操作:");
do{
scanf("%s",&c);
choice=atoi(c);
if(choice<1||choice>9)
{
printf("\n你已经创建了链表,按任意键返回主菜单!\n");
getch();
system("cls");
menu_select();
break;
}
else
{
system("cls");
char c[100];
void menu_select();
void create_sellers();
void create_products();
void create_records(int n);
void display();
void insert(int m);
menu_select();
break;
case 2:
create_products();
getch();
system("cls");
menu_select();
break;
case 3:
if(head!=NULL)
struct records /*销售记录结构体*/
{
int snum;
int pnum;
int amount;
char time[10];
struct recoreds *next;
};
struct records *head=NULL;
struct date /*日期结构体*/
void del();
void find();
void report(struct records *head);
int main()
{
printf("\n\n\n\n\n\n\t\t\t欢迎您使用该销售管理平台!\n");
printf("\n\n\n\t\t\t\t按任意键进入销售管理菜单、、、\n");
getch();
system("cls");
menu_select();
}
void menu_select() /*主菜单*/
{
int x;
printf("****************销售管理菜单********************\n");
system("cls");
menu_select();
break;
case 4:
display();
getch();
system("cls");
menu_select();
break;
case 5:
system("cls");
getch();
system("cls");
menu_select();
break;
case 7:
system("cls");
find();
getch();
system("cls");
menu_select();
printf("\n请输入1或2选择需要的操作:");
do{
scanf("%s",&c);
ch=atoi(c);
if(ch<1||ch>2)
printf("输入错误!请输入1或2选择需要的操作:\n");
}while(ch<1||ch>2);
if(ch == 2)
break;
case 8:
system("cls");
report(head);
system("cls");
menu_select();
break;
}
}while(choice!=9);
system("cls");
printf("输入错误!请输入1-9选择相应操作:");
}while(choice<1||choice>9);
do{
switch(choice)
{
case 1:
create_sellers();
getch();
system("cls");
printf("* 7.查询销售的记录 *\n");
printf("* 8.导出销售的报表 *\n");
printf("* 9.退出 *\n");
printf("* 1.从键盘输入销售员信息 *\n");
printf("* 2.从文件中读取销售员信息 *\n");
printf("************************************************");
{
FILE *fp;
if((fp=fopen("products.txt","r"))==NULL)
{
printf("\nCannot open file strike any key exit!\n\n");
exit(1);
printf("\n\n\n\n\n\n\n 谢谢使用!欢迎下次使用、、、、、、\n");
getch();
}
void create_sellers() /*输入销售员信息*/
{
int i,ch;
system("cls");
printf("*******************选择界面*********************\n");
} while(x<1 || x>n);
insert(x);
}
getch();
system("cls");
menu_select();
break;
case 6:
system("cls");
del();
printf("* 4.浏览所有的信息 *\n");
printf("* 5.插入销售的记录 *\n");
printf("* 6.删除销售的记录 *\n");
{
int year;
int month; int源自day; }d[100];
int tab[2][13]={
{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31}};
int n=0,choice;
{
int snum;
char sname[20];
char sex[10];
}sellers[4];
struct products_list /*产品信息结构体*/
{
int pnum;
char pname[20];
float price;
}products[5];
printf("销售员的编号 姓名 性别 \n");
for(i=0;i<4;i++){
fscanf(fp,"%d %s %s",&sellers[i].snum,sellers[i].sname,sellers[i].sex);
printf(" %d %s %s\n",sellers[i].snum,sellers[i].sname,sellers[i].sex);