C语言课程设计及解决方案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言
课程设计
及解决方案
程序编写:贾朋远
学院:地学院
班级序号: 01105408
一题目要求
某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容:
1)销售员的代号
2)产品的代号
3)这种产品的当天的销售额
每位销售员每天可能上缴0-5张便条。假设,收集到了上个月的所有便条,编写一个处理系统,读取上个月的销售情况(自己设定),进行如下处理。
1)计算上个月每个人每种产品的销售额。
2)按销售额对销售员进行排序,输出排序结果(销售员代号)
3)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)
4)输出统计报表
二需求分析
可以采用结构体数组和文件系统实现。结构体成员包括销售员代号,产品代号,销售额。排序算法可以采用冒泡法或选择排序法。输出报表可在屏幕相应位置输出即可。
三总体设计
销售管理系统
1输入销售员代号,产品代号,各产品销售额
2计算相应各产品销售之和,及销售总和
3排序
4输出报表报表形式如下:
销售统计报表
产品代号销售之和
销售员代号 1 2 3 4 5
1
2
3
4
每种产品之和总和
四详细设计
1 主函数
#include
#include
#define max 620
int n;/*全局变量*/
main()
{
int input(), output1(),output2(),output3(),output4();
int arg(),mulu();
int save();
printf(" \n\n\n \t\t\t *******THE PROJECT********\n\n\n");
printf("Please input the informations :(over to 0)\n\n p_num(1~4) g_num(1~5) g_mon\n");
printf("------------------------------------------------------------------\n");
for(n=0;n {scanf("%d",&s[n].p_num); if(s[n].p_num==(0))break; else scanf("%d%d",&s[n].g_num,&s[n].num); printf("------------------------------------------------------------------\n"); } mulu(); } 2 结构体设计 struct goods {int p_num; int num; int g_num; } s[max]; struct persons {int num[7]; }p[6],work; 3 被调用函数的设计 /*目录*/ int mulu() {int choice; arg(); do { printf(" \n\n \t\t\t *******THE PROJECT********\n\n"); printf(" 1.count the g_mon of each goods every people products last month\n"); printf(" 2.put the people in order by g_mon and output the result by p_num \n"); printf(" 3.count the total g_mon,output the result in order from high to low\n"); printf(" 4.output the report form of goods \n\n"); printf(" 0.exit \n\n"); printf(" Please Choose (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 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]; } int output1() { int i,k; printf("**************The condition of everyone's g_mon last month:**********\n\n"); printf(" g_num \np_num\t"); for(k=1;k<=5;k++)