




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言销售管理系统课设满分作品带报表和折线图显示#include #include #include #include#include#include#include#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 filename30 = sell.txt;/默认文件位置int price5 = 2, 2, 2, 2, 2 ; /默认商品价格struct goodint num;/产品编号int f_name10;/产品名称float price;/产品价格商品属性int date;/销售日期int sum;/销售数量 good5;/定义商品属性结构体,及五个商品struct sellerint num;/销售员编号char name8;/销售员姓名char sex;/销售员性别structgood good5;/五种商品 sell4; /定义销售员结构体,及四个销售员struct daystruct seller sell4; d31;struct yearstruct day d31; m12;int main(int argc, char* argv)int x = 0;x = MessageBox(NULL, 欢迎使用销售管理系统n作者:xxn班级: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; month12; month+)for (day = 0; day31; day+)/把文件读取到内存中for (i = 0; i4; i+)fscanf(fp, %6d%6d%6d%6d%6dn, &mmonth.dday.selli.good0.sum, &mmonth.dday.selli.good1.sum, &mmonth.dday.selli.good2.sum, &mmonth.dday.selli.good3.sum, &mmonth.dday.selli.good4.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(请输入具体要录入的商品种类15对应商品1-5:);/用于查找所需的具体数据scanf(%d, &x);x-;printf(输入销售数量:);scanf(%d, &mmonth.dday.selli.goodx.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(请输入具体要查找的商品种类15对应商品1-5n); scanf(%d, &t); t-; printf(该销售员这天销售本商品的数量为:%d, mmonth.dday.selli.goodt.sum);break;case 2: printf(产品代号n); printf(1.牛奶 2.西瓜 3.苹果 4.白菜 5.萝卜 销售之和n); for (j = 0; j5; j+)all += mmonth.dday.selli.goodj.sum; printf(%-8d%-8d%-8d%-8d%-8d%-10dn, mmonth.dday.selli.good0.sum, mmonth.dday.selli.good1.sum, mmonth.dday.selli.good2.sum, mmonth.dday.selli.good3.sum, mmonth.dday.selli.good4.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, partallsum5 = 0 ;int mx45 = 0 , mxsum = 0; /用于存放明细filepath();daoru();/读取数据及判断printf(请选择1销售数量报表 2销售额报表:);scanf(%d, &i);if (i = 1)for (i = 0; i0)for (month = mo + 1; month = (th - 1); month+)for (day = 0; day31; day+)for (i = 0; i4; i+)for (j = 0; j = 4; j+)mxij = mxij + mmonth.dday.selli.goodj.sum*pricej;/累加计算所有他的所有销售情况for (i = 0; i5; i+)for (j = 0, partsum = 0; j4; j+)partsum += mmonth.dday.sellj.goodi.sum*pricei;/统计同种商品数目,一维数组当天4个销售员 同种商品数目partallsumi += partsum;/间隔整月前一段for (day = a; day31; day+)for (i = 0; i4; i+)for (j = 0; j = 4; j+)mxij = mxij + mmo.dday.selli.goodj.sum*pricej;/累加计算所有他的所有销售情况for (i = 0; i5; i+)for (j = 0, partsum = 0; j4; j+)partsum += mmo.dday.sellj.goodi.sum*pricei;partallsumi += partsum;/统计同种商品数目,一维数组当天4个销售员 同种商品数目/间隔整月后一段for (day = 0; day = b; day+)for (i = 0; i4; i+)for (j = 0; j = 4; j+)mxij = mxij + mth.dday.selli.goodj.sum*pricej;/累加计算所有他的所有销售情况for (i = 0; i5; i+)for (j = 0, partsum = 0; j4; j+)partsum += mth.dday.sellj.goodi.sum*pricei;partallsumi += partsum;/统计同种商品数目,一维数组当天4个销售员 同种商品数目else if (th - mo) = 0)for (day = a; day = b; day+)for (i = 0; i4; i+)for (j = 0; j = 4; j+)mxij = mxij + mmo.dday.selli.goodj.sum*pricej;/累加计算所有他的所有销售情况for (i = 0; i5; i+)for (j = 0, partsum = 0; j4; j+)partsum += mmo.dday.sellj.goodi.sum*pricei;partallsumi += partsum;/统计同种商品数目,一维数组当天4个销售员 同种商品数目/输出报表for (i = 0; i4; i+)printf(%-6s , );/销售员姓名for (j = 0; j5; j+)printf(t%d, mxij);mxsum += mxij;/二维数组记录销售员printf(t%dn, mxsum);mxsum = 0;/用于下次循环 的初始化/输出表格同类商品总计printf(同类商品);for (i = 0; i5; i+)printf(t%d, partallsumi);/统计同种商品数目,一维数组alldat += partallsumi;/合计所有的商品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(partallsum0, partallsum1, partallsum2, partallsum3, partallsum4);/*函 数 名: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; x5; x+)mmonth.dday.selli.goodx.sum = 0;break;case 2: printf(请输入具体要删除的商品种类15对应商品1-5 :); scanf(%d, &x); x-; mmonth.dday.selli.goodx.sum = 0;break;default:break;printf(已删除指定销售员信息);save();/*函 数 名:def()*描 述:销售数据初始化*入口参数:无;*出口参数:无;*/void def()FILE *fp;int i, day, month;filepath();fp = fopen(filename, w);for (month = 0; month12; month+)for (day = 0; day31; day+)for (i = 0; i4; i+) /保存信息到文件fprintf(fp, %-6d%-6d%-6d%-6d%-6dn, mmonth.dday.selli.good0.sum = 0, mmonth.dday.selli.good1.sum = 0, mmonth.dday.selli.good2.sum = 0, mmonth.dday.selli.good3.sum = 0, mmonth.dday.selli.good4.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;/其他位置文件 标志elsex = MessageBox(NULL, 不在提醒?, 提示, MB_YESNO);if (x = 6)file_choose = 2;/其他位置文件 标志printf(设置成功n);/*函 数 名:save()*描 述:保存数据*入口参数:无;*出口参数:无;*/void save(people)FILE *fp;intday, i, month;fp = fopen(filename, w);for (month = 0; month12; month+)for (day = 0; day31; day+)for (i = 0; i4; i+)fprintf(fp, %-6d%-6d%-6d%-6d%-6dn, mmonth.dday.selli.good0.sum, mmonth.dday.selli.good1.sum, mmonth.dday.selli.good2.sum, mmonth.dday.selli.good3.sum, mmonth.dday.selli.good4.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; i0)/间隔整月前一段for (day = a; day= 16)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 += mmo.dday.sellpeople.goodj.sum;printf(t%d, mmo.dday.sellpeople.goodj.sum);mxj += mmo.dday.sellpeople.goodj.sum;printf(t%dn, sumall);more+;mx5 += sumall;sumall = 0;/计算间隔整月for (month = mo + 1; month = (th - 1); month+)for (day = 0; day= 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 += mmonth.dday.sellpeople.goodj.sum;printf(t%d, mmonth.dday.sellpeople.goodj.sum);mxj += mmonth.dday.sellpeople.goodj.sum;printf(t%d, sumall);more+;mx5 += sumall;sumall = 0;/间隔整月后一段for (day = 0; day = 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日 , th + 1, day + 1);for (j = 0; j = 4; j+)sumall += mth.dday.sellpeople.goodj.sum;printf(t%d, mth.dday.sellpeople.goodj.sum);mxj += mth.dday.sellpeople.goodj.sum;printf(t%d, sumall);more+;mx5 += sumall;sumall = 0;/一个月内时间段else if (th - mo) = 0)for (day = a; day = 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 += mmo.dday.sellpeople.goodj.sum;printf(t%d, mmo.dday.sellpeople.goodj.sum);mxj += mmo.dday.sellpeople.goodj.sum;printf(t%dn, sumall);more+;mx5 += sumall;sumall = 0;end:printf(n合计: );for (j = 0; j = 4; j+)printf(t%d, mxj);printf(t总计:%dn完成!, mx5);x = MessageBox(NULL, 是否打印条形图?, 提示, MB_YESNO);if (x = 6)clear();printf(销售员:%s 时间段:%d月%d日-%d月%d日n, , mo + 1, a + 1, th + 1, 1 + b);printf(nnnn 历史销售统计条形图);for (j = 0; j = 4; j+)txt(mxj);x = MessageBox(NULL, 是否打印扇形形图?, 提示, MB_YESNO);if (x = 6)clear();printf(销售员:%s 时间段:%d月%d日-%d月%d日, , mo + 1, a + 1, th + 1, 1 + b);printf( t销售扇形图);sxt(mx0, mx1, mx2, mx3, mx4);/*函 数 名: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)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 游戏本地化翻译平台创新创业项目商业计划书
- 农场动物健康大数据分析创新创业项目商业计划书
- 机器翻译引擎训练服务创新创业项目商业计划书
- 退休人士兴趣小组创新创业项目商业计划书
- 蓝牙音频高清传输技术创新创业项目商业计划书
- 2025年生鲜新零售行业冷链物流配送时效性与成本优化分析报告
- 2025年海洋生态系统服务功能评估在生态修复中的应用研究
- 2025年绿色建筑推广关键指标:绿色建筑与建筑废弃物资源化利用与处理研究报告
- 2025年绿色供应链管理在制造业应用案例深度分析报告001
- 2025年水性涂料生产项目环保型产品绿色营销策略研究报告
- 2024-年全国医学博士外语统一入学考试英语试题
- 冶金渣公司安全生产委员会工作职责
- 老年患者护理心理护理
- 项目担保合作协议范本
- 2024-2025学年湖南省“炎德·英才·名校联考联合体”高二第一次联考(暨入学检测)数学试题(含答案)
- 夹娃娃机合同模板
- 维修人员技能提升与企业绩效关联研究
- 2024-2030年中国儿童室内游乐园行业市场发展现状及发展趋势与投资前景研究报告
- GB 44263-2024电动汽车传导充电系统安全要求
- 项目资金融资合同范本
- DL∕T 1945-2018 高压直流输电系统换流变压器标准化接口规范
评论
0/150
提交评论