C语言课程设计-销售信息统计

  • 需求分析:

1.设计题目销售信息统计

2.系统功能需求分析:

程序的功能:

  1. 销售员信息录入
  2. 销售员信息显示
  3. 产品总销售额由大到小排序
  4. 统计产品销售额信息
  5. 插入销售员及其信息
  6. 删除销售员及其信息
  7. 退出销售信息统计系统

输入输出的要求:

输入运用了scanf和gets函数;输出则运用了printf函数。

  • 概要设计:

系统总体设计框架:

  • 详细设计:

主要阐述功能模块的算法设计思路:

1、程序由哪些模块组成以及一个模块之间的层次结构、模块的调用关系:每个模块的功能程序由主函数void main()、输入void input()、显示void show()、删除void del()、排序void sort()、添加void insert()、统计void statistic()、保存void save()、退出void exit()等九个模块组成。本系统涉及的知识点:分支,循环,函数,数组,结构体,文件等。各个函数模块的实现如下:

(1)关于void main():采用switch分支控制语句,通过键盘输入值作为开关值,用以调用主菜单各大函数,从而实现主控职能。C语言的函数调用遵循先定义后引用的原则,在程序的最开始就定义了众多的全局变量,如int i.其调用关系如下:

switch(i)

{

case 0:

printf("o     退出销售信息统计系统       o\n");

exit(0);break;

case 1:

printf("-----销售员信息录入------\n");

input();break;

case 2:

printf("-----销售员信息显示------\n");

show();break;

case 3:

printf("-----销售信息保存--------\n");

save();break;

case 4:

printf("-----总销售额信息排序----\n");

sort();break;

case 5:

printf("-----统计产品销售额信息--\n");

statistics_sailer();break;

case 6:

printf("-----插入销售员及其信息--\n");

insert();break;

case 7:

printf("-----删除销售员及其信息--\n");

del();break;

default:printf("输入错误,请重新选择!!");

break;

}

}

}

(2)录入函数void inprint()的实现:由主菜单按‘1’键进入。利用循环方式,将相关信息存入结构体数组,结构体组根据实际的纪录条数,建立销售员信息。按照要求,分步依次录入信息:销售员个数,销售员姓名,销售员工号,产品一销售额,产品二销售额,实现途径为:

void input()

{

int i;

printf("请输入销售员个数\n");

scanf("%d",&n);

for(i=0;i<n;i++)

{

printf("输入销售员姓名:\n");

scanf("%s",seller[i].name);

printf("请输入销售员工号:\n");

scanf("%s",seller[i].num);

printf("请分别输入产品一和产品二的销售额:\n");

scanf("%d%d",&seller[i].sailerl ,&seller[i].sailerm );

}

system("cls");

}

(3)显示函数void show()的实现:该功能是输出销售员中的所有信息:

void show()

{

struct seller*p;

system("cls");

printf("姓名 工号 产品一销售额 产品二销售额:\n");

for(p=seller;p<seller+n;p++)

printf("%-8s %2s %6d %12d\n",p->name ,p->num ,p->sailerl , p->sailerm );

    printf("\n\n");

}

(4)排序函数void sort()的实现:

void sort()

{

struct seller temp;

int i,j;

for(i=0;i<n;i++)

seller[i].sum =seller[i].sailerl +seller[i].sailerm ;

for(j=0;j<n-1;j++)

for(i=0;i<n-1-j;i++)

if(seller[i].sum <seller[i+1].sum)

{

temp=seller[i];

seller[i]=seller[i+1];

seller[i+1]=temp;

}

system("cls");

printf("姓名 工号 产品一销售额 产品二销售额 产品总销售额:\n");

for(i=0;i<n;i++)

printf("\n%s\t%s\t%d\t%8d\t%8d\n",seller[i].name,seller[i].num ,seller[i].sailerl ,seller[i].sailerm ,seller[i].sum );

}

(5)统计函数void statistics_sailer()的实验:运用的语句是:

void statistics_sailer()

{

int i,sum1,sum2,sum;

sum1=0;sum2=0,sum=0;

for(i=0;i<n;i++)

{

sum1+=seller[i].sailerl ;

sum2+=seller[i].sailerm ;

sum=sum1+sum2;

}

system("cls");

printf("产品一的销售额:%d\n",sum1);

printf("产品二的销售额:%d\n",sum2);

printf("产品总的销售额:%d\n",sum);

}

(6)保存函数void save()运用以下语句实现:

void save()

{

FILE*fp;

int i;

fp=fopen("seller.txt","w");

for(i=0;i<n;i++)

fwrite(&seller[i],sizeof(struct seller),1,fp);

system("cls");

printf("\n\n");

printf("保存成功!\n");

printf("\n\n");

}

(7)删除函数void del()的实现:输入要删除的销售员的姓名。运用的语句是:

void del()//删除数据函数

{

char seller_name[20];

int i,j;

printf("输入要删除销售员的姓名:");

fflush(stdin);

scanf("%s",seller_name);

for(i=0;i<n;i++)

{

if(strcmp(seller_name,seller[i].name )==0)

{

for(j=i;j<n;j++)

seller[i]=seller[i+1];

n=n-1;

}

break;

}

save();

system("cls");

}

2.此程序的数据库存储的数据为:销售员的姓名、工号(身份)、产品一的销售额、产品二的销售额、产品总的销售额。

  • 调试分析过程描述:包括测试数据,测试分析结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等)

在编程过程中,我遇到了函数没有定义就运行的问题。一开始我还不知道,但通过向同学的询问终于改正了这个错误。后来又遇到了运行时出现删除一个销售员的信息,显示时又出现它的问题,通过查询原来是因为删除后没有保存,在删除模块中调入save()后就解决了。

  • 测试结果:列出所有功能的运行界面,并作文字说明。

1.系统运行主界面

#include<stdio.h>
#include<conio.h>
#include<time.h>
#include<string.h>
#include<stdlib.h>
struct seller
{
	char num[10];
	char name[20];
	int sailerl;
	int sailerm;
	int sum;
}seller[200];
FILE*fp;
int n;
void main()
{
	void insert();
	void del();
	void input();
	void show();
	void save();
	void sort();
	void statistics_sailer();
	int i;
	while(1)
	{
		printf("-----------------------------------------\n");
		printf("           销售信息统计系统              \n");
		printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n");
		printf("!        0退出销售信息统计系统          !\n");
		printf("!        1销售员信息录入                !\n");
		printf("!        2销售员信息显示                !\n");
		printf("!        3销售额信息保存                !\n");
		printf("!        4产品总销售额由大到小排序      !\n");
		printf("!        5统计产品销售额信息            !\n");
		printf("!        6插入销售员及其信息            !\n");
		printf("!        7删除销售员及其信息            !\n");
		printf("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n");
		printf("         请选择系统的功能项              \n");
		printf("-----------------------------------------\n");
		scanf("%d",&i);
		switch(i)
		{
		case 0:
			printf("o     退出销售信息统计系统       o\n");
			exit(0);break;
		case 1:
			printf("-----销售员信息录入------\n");
			input();break;
		case 2:
			printf("-----销售员信息显示------\n");
			show();break;
		case 3:
			printf("-----销售信息保存--------\n");
			save();break;
		case 4:
			printf("-----总销售额信息排序----\n");
			sort();break;
		case 5:
			printf("-----统计产品销售额信息--\n");
			statistics_sailer();break;
		case 6:
			printf("-----插入销售员及其信息--\n");
			insert();break;
		case 7:
			printf("-----删除销售员及其信息--\n");
			del();break;
		default:printf("输入错误,请重新选择!!");
			break;
		}
	}
}
void input()
{
	int i;
	printf("请输入销售员个数\n");
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		printf("输入销售员姓名:\n");
		scanf("%s",seller[i].name);
		printf("请输入销售员工号:\n");
		scanf("%s",seller[i].num);
		printf("请分别输入产品一和产品二的销售额:\n");
		scanf("%d%d",&seller[i].sailerl ,&seller[i].sailerm );
	}
	system("cls");
}
void show()
{
	struct seller*p;
	system("cls");
	printf("姓名 工号 产品一销售额 产品二销售额:\n");
	for(p=seller;p<seller+n;p++)
		printf("%-8s %2s %6d %12d\n",p->name ,p->num ,p->sailerl , p->sailerm );
    printf("\n\n");
}
void save()
{
	FILE*fp;
	int i;
	fp=fopen("seller.txt","w");
	for(i=0;i<n;i++)
		fwrite(&seller[i],sizeof(struct seller),1,fp);
	system("cls");
	printf("\n\n");
	printf("保存成功!\n");
	printf("\n\n");
}
void sort()
{
	struct seller temp;
	int i,j;
	for(i=0;i<n;i++)
		seller[i].sum =seller[i].sailerl +seller[i].sailerm ;
	for(j=0;j<n-1;j++)
		for(i=0;i<n-1-j;i++)
			if(seller[i].sum <seller[i+1].sum)
			{
				temp=seller[i];
				seller[i]=seller[i+1];
				seller[i+1]=temp;
			}
			system("cls");
			printf("姓名 工号 产品一销售额 产品二销售额 产品总销售额:\n");
			for(i=0;i<n;i++)
				printf("\n%s\t%s\t%d\t%8d\t%8d\n",seller[i].name,seller[i].num ,seller[i].sailerl ,seller[i].sailerm ,seller[i].sum );
}
void statistics_sailer()
{
	int i,sum1,sum2,sum;
	sum1=0;sum2=0,sum=0;
	for(i=0;i<n;i++)
	{
		sum1+=seller[i].sailerl ;
		sum2+=seller[i].sailerm ;
		sum=sum1+sum2;
	}
	system("cls");
	printf("产品一的销售额:%d\n",sum1);
	printf("产品二的销售额:%d\n",sum2);
	printf("产品总的销售额:%d\n",sum);
}
void insert()//插入数据函数
{
	char ch;
	do
	{
		printf("\n\t\t输入新插入销售员信息\n");
		printf("\n输入销售员姓名:");
		fflush(stdin);
		gets(seller[n].name );
		printf("\n输入销售员工号:");
		scanf("%S",seller[n].num );
		fflush(stdin);
		printf("\n输入产品一销售额:");
		fflush(stdin);
		scanf("%d",&seller[n].sailerl);
		printf("\n输入产品二销售额:");
		fflush(stdin);
		scanf("%d",&seller[n].sailerm );
		printf("\n\n");
		n=n+1;
		sort();
		printf("是否继续输入?(Y/N)");
		ch=getch();
		system("cls");
	}
	while(ch!='n');
}
void del()//删除数据函数
{
	char seller_name[20];
	int i,j;
	printf("输入要删除销售员的姓名:");
	fflush(stdin);
	scanf("%s",seller_name);
	for(i=0;i<n;i++)
	{
		if(strcmp(seller_name,seller[i].name )==0)
		{
			for(j=i;j<n;j++)
				seller[i]=seller[i+1];
			n=n-1;
		}
		break;
	}
	save();
	system("cls");
}







  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
书店销售管理系统是一个用于管理书店销售业务的软件系统。它可以帮助书店管理人员记录和跟踪书籍库存、销售订单、顾客信息等,并提供相关报表和分析功能。在C语言中实现这样一个系统可以通过定义适当的数据结构和函数来完成。 以下是一个简单的示例,展示了如何使用C语言实现基本的书店销售管理系统: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> // 定义书籍结构体 typedef struct { char title[100]; char author[100]; int quantity; float price; } Book; // 添加书籍到库存 void addBook(Book *books, int *count) { printf("请输入书名: "); scanf("%s", books[*count].title); printf("请输入作者: "); scanf("%s", books[*count].author); printf("请输入数量: "); scanf("%d", &books[*count].quantity); printf("请输入价格: "); scanf("%f", &books[*count].price); (*count)++; } // 显示库存中的所有书籍 void displayBooks(Book *books, int count) { printf("库存中的书籍:\n"); for (int i = 0; i < count; i++) { printf("书名: %s\n", books[i].title); printf("作者: %s\n", books[i].author); printf("数量: %d\n", books[i].quantity); printf("价格: %.2f\n", books[i].price); printf("---------------\n"); } } int main() { Book books[100]; // 最多存储100本书 int count = 0; // 当前库存中的书籍数量 int choice; while (1) { printf("书店销售管理系统\n"); printf("1. 添加书籍到库存\n"); printf("2. 显示库存中的所有书籍\n"); printf("0. 退出\n"); printf("请选择操作: "); scanf("%d", &choice); switch (choice) { case 1: addBook(books, &count); break; case 2: displayBooks(books, count); break; case 0: exit(0); default: printf("无效的选择!\n"); } printf("\n"); } return 0; } ``` 以上代码是一个简单的书店销售管理系统的实现示例,包括添加书籍到库存和显示库存中的所有书籍两个基本功能。你可以根据实际需求进行扩展和修改。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

X-MTing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值