服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - C语言实现销售管理系统课程设计

C语言实现销售管理系统课程设计

2022-10-25 13:36suwu150 C/C++

这篇文章主要为大家详细介绍了C语言实现销售管理系统课程设计,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了C语言实现销售管理系统的具体代码,供大家参考,具体内容如下

一.C程序设计课程设计题目简介

该设计要求学生以某公司销售管理业务为背景,设计、开发一套“销售管理系统”软件。

通过该题目的设计过程,可以培养学生结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解,针对c语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。得到软件工程的综合训练,提高解决实际问题的能力。

二.C程序设计课程设计的任务

1、查阅文献资料,一般在5篇以上;

2、以某公司销售管理业务为背景,通过调研、分析现有的管理模式和已有的管理软件,建立系统模型;

3、完成软件结构设计和算法设计;

4、完成系统的软件开发和测试工作;

5、撰写设计说明书;

6、做好答辩工作。

三.C程序设计课程设计的主要内容、功能及技术指标

1、问题分析及解决方案框架确定:充分地分析和理解问题本身,弄清要求做什么。在确定解决方案框架过程中,综合考虑系统功能,考虑怎样使系统结构清晰、合理、简单和易于调试。最后确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系,并画出函数之间的调用关系图。

2、详细设计和编码:定义相应的存储结构,确定各个函数的算法,并画出流程图,在此基础上进行代码设计,每个明确的功能模块程序一般不超过60行,否则要进一步划分。

3、上机前程序静态检查:上机前程序静态检查可有效提高调试效率,减少上机调试程序时的无谓错误。静态检查主要有两种途径:用一组测试数据手工执行程序;通过阅读或给别人讲解自己的程序而深入全面地理解程序逻辑。把程序中的明显错误事先排除。

4、程序调试与测试:采用自底向上,分模块进行,即先调试低层函数。能够熟练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它。调试正确后,认真整理源程序及其注释,形成格式和风格良好的源程序清单和结果。

5、完成课程设计报告

① 需求和规格说明:设计题目和问题描述:题目要解决的问题是什么;

② 设计思路:主要算法思想,程序功能图,函数之间的调用关系图;

   设计表示:每个函数或过程的功能,列出每个过程或函数所调用的过程或函数,并画出各函数的流程图;

   详细设计:主要算法的伪代码;

③ 调试报告:调试过程中遇到的主要问题,是如何解决的;对设计和编码的回顾讨论和分析;改进设想;经验和体会等;

④ 程序实现注释;

⑤ 附录:源程序清单和结果。如果题目规定了测试数据,则结果要求包含这些测试数据和运行输出,当然还可以含其他测试数据和运行输出。

6、某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容: 销售员的代号 、产品的代号、这种产品的当天的销售额 。每位销售员每天可能上缴0-5张便条。假设,收集到了上个月的所有便条,编写一个处理系统,读取上个月的销售情况,进行如下处理:

系统以菜单方式工作,录入信息用文件保存;计算上个月每个人每种产品的销售额; 按销售额对销售员进行排序,输出排序结果(销售员代号);统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额);输出统计报表。
下面是源代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
#include "stdio.h" /*输入输出函数*/ 
#include "stdlib.h"/*通用应用程序函数*/
typedef struct/*定义结构体变量*/
{
    int gonghao; /*销售员代号*/
    int a1; /*产品一代号*/
    int a2; /*产品二代号*/
    int a3; /*产品三代号*/
    int a4; /*产品四代号*/
    int a5; /*产品五代号*/
}DATA;
int menu_select(); /*声明函数*/
int enter(); /*声明函数*/
void salor(int n); /*声明函数*/
int sum(DATA t[100],int n, int e); /*声明函数*/
void list1(int n);/*声明函数*/
void list2();/*声明函数*/
main()/*主函数*/
{      int length;
    system("color 3b");
    
    for( ; ; )/*无限循环*/
    {switch(menu_select()) /*根据用户的选择判断该调用哪个功能函数*/
    {
    case 1:length=enter();break
    case 2:salor(length);break
    case 3:list1(length);break;  
    case 4:list2();break
    case 0:exit(0);
    }
    
int menu_select() /*菜单函数*/
{  
    int n;
    printf("                                    菜单                          \n\n"); 
    printf("    设计人:吴继康、付鹏阳       班级:计算机一班\n");
    printf("      1 输入便条上的内容\n"); 
    printf("      2 统计上个月每种产品每人销售的数量\n"); 
    printf("      3 按销售额将销售员排序\n"); 
    printf("      4 销售报表\n");
    printf("      0 退出\n"); 
    printf("---------------------------------end---------------------------\n\n"); 
    printf(" 请输入(0-4) "); 
    scanf("%d",&n); 
    return n;
 
 
int enter() /*清单输入*/
{
    int i,num;
    FILE *fp;
    DATA t[100];
    printf("请输入要写的便条条数:\n"); 
    scanf("%d",&num);
    printf("工号    电脑      电视      冰箱      风扇      手机"); 
    for(i=0;i<num;i++) 
    {
        printf("\n\n------------------------------------\n");
        scanf("%d\t  %d\t  %d\t  %d\t  %d\t  %d",&t[i].gonghao,&t[i].a1,&t[i].a2,&t[i].a3,&t[i].a4,&t[i].a5);
    }
    if((fp=fopen("wujikang.dat","ab+"))==NULL)
    
        printf("不能打开文件\n");
        exit(1); 
    
    for(i=0;i<num;i++) 
    
        fprintf(fp,"%d\t%d\t%d\t%d\t%d\t%d\t",t[i].gonghao,t[i].a1,t[i].a2,t[i].a3,t[i].a4,t[i].a5); 
        fprintf(fp,"\r\n"); 
    
    
    fclose(fp); 
    printf("\n-----------------------------------\n\n\n"); 
    return i; 
}
void salor(int n) /*每位销售员销售额*/
    int i=0,s; 
    int b1=0,b2=0,b3=0,b4=0,b5=0;
    int k=0;
    DATA t[100];
    FILE *fp;
    if((fp=fopen("wujikang.dat","rb+"))==NULL)
    
        printf("不能打开文件\n");
        exit(1); 
    
    rewind(fp);
    while(fscanf(fp,"%d\t%d\t%d\t%d\t%d\t%d",&(t[k].gonghao),&(t[k].a1),&(t[k].a2), &(t[k].a3),&(t[k].a4),&(t[k].a5))>0) 
    k++;
    fclose(fp);
    printf("请输入要查询售货员的代号(1-4):"); 
    scanf("%d",&s);                    
    for(i=0;i<k;i++)
        if(t[i].gonghao==s) 
        {b1+=t[i].a1; 
        b2+=t[i].a2; 
        b3+=t[i].a3; 
        b4+=t[i].a4; 
        b5+=t[i].a5;}; 
        printf("工号 电脑 电视 冰箱 风扇 手机\n"); 
        printf("%d\t  %d\t   %d\t   %d\t       %d\t   %d\t",s,b1,b2,b3,b4,b5); 
 
 
void list1 (int n) /*显示清单*/
{
    int i,j,s; 
    int m[10],c[10];
    int k=0;
    DATA t[100];
    FILE *fp;
    if((fp=fopen("wujikang.dat","rb+"))==NULL)
    
        printf("不能打开文件\n");
        exit(1); 
    
    rewind(fp);
    while(fscanf(fp,"%d\t%d\t%d\t%d\t%d\t%d",&(t[k].gonghao),&(t[k].a1),&(t[k].a2), &(t[k].a3),&(t[k].a4),&(t[k].a5))>0) /*从fp指向的文件上读入便条信息*/
    k++;
    fclose(fp);
    for(i=0;i<4;i++) /*将所输入的条数存入结构体数组中*/
        m[i]=i+1; 
    for(i=0;i<4;i++) 
        c[i]=sum(t,k,m[i]); 
    for(i=0;i<4;i++)
        for(j=i+1;j<4;j++) 
            if(c[i]<c[j]) 
            {
                s=m[i]; 
                m[i]=m[j]; 
                m[j]=s; 
                s=c[i]; 
                c[i]=c[j]; 
                c[j]=s;
            
            printf("按销售额从高到低将销售员代号排序\n"); 
            for(i=0;i<4;i++)
                printf("%d\n",m[i]);
void list2() /*每种产品的销售额*/
{
    int i=0,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};
    int k=0;
    DATA t[100];
    FILE *fp;
    if((fp=fopen("wujikang.dat","rb+"))==NULL)
    
        printf("不能打开文件\n");
        exit(1); 
    
    
    rewind(fp);//qingchucuowu,zhiyutoubu
    while(fscanf(fp,"%d\t%d\t%d\t%d\t%d\t%d",&(t[k].gonghao),&(t[k].a1),&(t[k].a2), &(t[k].a3),&(t[k].a4),&(t[k].a5))>0) 
    k++;
    for(i=0;i<4;i++) 
        c[i]=sum(t,k,i+1);/*求每个人的总销售额*/
    for(i=0;i<4;i++) 
        sum0+=c[i]; /*所有产品的销售额*/
    for(i=0;i<k;i++) /*求每个人每种产品的总销售额*/
        for(j=0;j<4;j++) 
        
            if(j+1==t[i].gonghao) 
            {b1[j]+=t[i].a1; 
            b2[j]+=t[i].a2; 
            b3[j]+=t[i].a3; 
            b4[j]+=t[i].a4; 
            b5[j]+=t[i].a5; 
            }
        
        for(i=0;i<4;i++)/*每种产品的总销售额*/
        {sum1+=b1[i]; 
        sum2+=b2[i]; 
        sum3+=b3[i]; 
        sum4+=b4[i]; 
        sum5+=b5[i]; 
        
        printf("-------------------------销售报表----------------------\n\n\n"); 
        printf(" products num\n"); 
        printf(" 销售员\t1\t2\t3\t4\t5\t总和\n\n"); 
        for(i=0;i<4;i++) 
            printf(" %d\t%d\t%d\t%d\t%d\t%d\t%d\t\n",i+1,b1[i],b2[i],b3[i],b4[i],b5[i],c[i]); 
        printf("psum  %d\t%d\t%d\t%d\t%d\t%d\t",sum1,sum2,sum3,sum4,sum5,sum0); 
 int sum(DATA t[100],int n, int e) 
{
    
    int i=0,sum=0; 
    for(i=0;i<=n;i++)
        if(e==t[i].gonghao) 
        {sum+=t[i].a1; 
        sum+=t[i].a2; 
        sum+=t[i].a3; 
        sum+=t[i].a4; 
        sum+=t[i].a5; 
        
        return sum;
}  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/suwu150/article/details/51504244

延伸 · 阅读

精彩推荐
  • C/C++C++ 数据结构之kmp算法中的求Next()函数的算法

    C++ 数据结构之kmp算法中的求Next()函数的算法

    这篇文章主要介绍了C++ 数据结构之kmp算法中的求Next()函数的算法的相关资料,需要的朋友可以参考下...

    okbase7962021-05-19
  • C/C++C语言图书管理系统实验

    C语言图书管理系统实验

    这篇文章主要为大家详细介绍了C语言图书管理系统实验,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    王跃坤3742022-10-18
  • C/C++深入C++中API的问题详解

    深入C++中API的问题详解

    本篇文章是对C++中API的问题进行了详细的分析介绍,需要的朋友参考下...

    C++教程网5742020-12-01
  • C/C++C++中类的默认成员函数详解

    C++中类的默认成员函数详解

    大家好,本篇文章主要讲的是C++中类的默认成员函数详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下...

    你好,冯同学4042022-09-06
  • C/C++C语言进制转换代码分享

    C语言进制转换代码分享

    本文给大家分享的是使用C语言实现进制转换的代码,十分的简单实用,有需要的小伙伴可以参考下。...

    C语言教程网5272021-03-01
  • C/C++C/C++位操作实例总结

    C/C++位操作实例总结

    这篇文章主要介绍了C/C++位操作实例总结,是C/C++程序设计中很重要的概念,需要的朋友可以参考下...

    C++教程网12292021-01-29
  • C/C++C语言版三子棋游戏

    C语言版三子棋游戏

    这篇文章主要为大家详细介绍了C语言版三子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    LUYAO_LY6502021-12-09
  • C/C++c++中引用和指针的区别和联系

    c++中引用和指针的区别和联系

    许多人对于引用和指针的区别与联系很纠结(包括我在内O(∩_∩)O哈哈~),最近看到一篇关于引用和指针区别和联系的文章,感觉茅塞顿开,在这里和大家...

    C++教程网9022021-01-19