题目名称:
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
字符串比较的函数和销售员业绩管理程序
题目名称:设计字符串比较的函数和销售员业绩管理程序 内容及要求:
1. 有两个字符串,各有10个字符,是编程完成如下功能:
(1)分别找出两个字符串中最大的字符元素;
(2)将两字符串对应位置元素逐个比较,并统计输出两个字符串对应元素大于、小于和等
于的次数。
#include "stdio.h"
#define N 11
main()
{
char a[N],b[N],maxa,maxb;
int i,bigger=0,equal=0,smaller=0;
printf("初始化你的字符串1:\n");
scanf("%s",a);
printf("初始化你的字符串2:\n");
scanf("%s",b);
maxa=a[0],maxb=b[0];
for(i=1;i
maxa)
maxa=a[i];
if(b[i]>maxb)
maxb=b[i];
}
printf("字符串a中最大的字符元素是:%c\n字符串b中最大的字符元素
是:%c\n",maxa,maxb);
for(i=0;ib[i]) bigger++;
else if(a[i]==b[i]) equal++;
else smaller++;
}
printf("a>b次数:%d\n",bigger);
printf("a=b次数:%d\n",equal);
printf("a
#include
#include
#define NULL 0
struct sales /*定义结构体数组*/
{long int num;
char name[20];
char pname[20];
long price;
long mont;
long all;
struct sales *next;
};
int n;
struct sales *creat(void); /*定义调用函数*/ struct sales *del(struct sales *head,long num);
void print(struct sales *head); void printload(struct sales *head); void change(struct sales *head); void look_a(struct sales *head); void look_b(struct sales *head); void picture(long x);
void count(struct sales *head); void conclu(struct sales *head); void pt(struct sales *p);
void display(); /*设计菜单*/
void main()
{
struct sales *head; /*定义结构体指针*/
int del_num;
char ch='1';
while(ch!='9')
{display();
switch(ch) /*执行各个操作*/
{case'1':{head=creat(); count(head); break;}
case'2':{ printf("删除链表,输入待删序号(当输入0返回菜单):\n");
scanf("%d",&del_num);
while(del_num!=0)
{head=del(head,del_num);
printf("删除链表,输入待删序号(当输入0返回菜单):\n");
scanf("%d",&del_num);}break;
}
case'3':{printf("修改编辑后的销售员数据如下:\n"); change(head);break;}
case'4':print(head); break;
case'5':{printf("按销售额由小到大排序输出:\n"); printload(head);break;}
case'6':{printf("查找如下:\n"); look_a(head);break;}
case'7':{printf("查找如下:\n"); look_b(head);break;}
case'8':{printf("统计出的销售员的销售总额:\n姓名 销售总额:\n"); conclu(head);break;}
case'9':{break;}
default:{break;}
}
scanf("%c",&ch);
}
}
struct sales *creat(void) /*建立链表*/
{
struct sales *head,*p,*tail; /*定义结构体指针*/
head=NULL;
n=0;
p=tail=(struct sales *)malloc(sizeof(struct sales));
pt(p);
while(p->num!=0)
{n=n+1;
if(n==1) head=p;
else tail->next=p;
tail=p;
p=(struct sales*)malloc(sizeof(struct sales));
pt(p);
}
tail->next=NULL;
return (head);
}
void count(struct sales *head) /*计算销售总额*/ {
struct sales *p; /*定义结构体指针*/
p=head;
if(head!=NULL)
do
{(p->all)=(p->price)*(p->mont);
p=p->next;
}while(p!=NULL);
}
struct sales *del(struct sales *head,long num) /*完成业绩信息的删除*/ {
struct sales *p,*pGuard; /*定义结构体形指针*/
if(head==NULL)
{printf("链表为空!\n");
return (head);}
p=head;
while((num!=p->num)&&(p->next!=NULL)) /*寻找销售员至链尾*/
{pGuard=p;
p=p->next;}
if(num==p->num) /*找到待删除的销售员*/
{
if(p==head) head=p->next;
else pGuard->next=p->next;
printf("删除了序号为%ld的记录\n",p->num);
n=n-1;
}
else printf("链表中不存在的序号"); /*没有找到待删除的销售员*/
return (head);
}
void change(struct sales *head) /*录入数据的重新编辑修改*/ {
struct sales *p;
int temp=1;
long int num;
p=head;
printf("输入销售员的编号:\n");
scanf("%ld",&num);
if(head!=NULL)
do{
if(num==p->num) /*查找指定的销售员*/
{printf("输入一个销售量:\n");
scanf("%ld",&p->mont);temp=0;
printf("修改编辑后的销售员销售量如下:\n");
printf("%ld\n",p->mont);}
p=p->next;
} while(p!=NULL);
if(temp) {printf("没有找到这个编号的销售员!");} /*没有找到待修改编辑的销售员*/
}
void print(struct sales *head) /*显示各销售员的录入信息*/ {
struct sales *p;
printf("现有销售记录如下:\n");
p=head;
if(head!=NULL)
do
{ printf("编号 姓名 销售产品名 产品单价 销售数量 销售总额\n"); printf("%ld------%s------%s-------%ld-------%ld-------%ld\n",p->num,p->name,p->pname,p->price,
p->mont,p->all);
p=p->next;
}while(p!=NULL);
}
void printload(struct sales *head) /*按照销售额大小显示所有业绩信息*/ {
struct sales *add[100],*p; /*定义结构体数组,结构体指针变量*/
int i,j=0,m;
p=head;
while(p!=NULL)
{add[j]=p;
p=p->next;
j++;}
m=j;
for(i=0;iall)>(add[j+1]->all))
{p=add[j];
add[j]=add[j+1];
add[j+1]=p;}
for(i=0;iname,add[i]->all);
}
void look_a(struct sales *head) /*输入姓名,显示该销售员的销售记录,并计算销售总额*/
{ char name[20];
struct sales *p;
printf("输入姓名:");
scanf("%s",name);
p=head;
if(head!=NULL)
do /*查找指定的销售员*/
{if(strcmp(name,p->name)==0)
printf("%ld,%s,%s,%ld,%ld,%ld\n",p->num,p->name,p->pname,p->price,p->mont,p->all);
p=p->next;
}while(p!=NULL);
}
void look_b(struct sales *head) /*输入产品名,显示该产品的销售记录及总量*/ { char name[20];
struct sales *p; /*定义结构体指针*/
double s=0;
printf("请输入产品名:");
scanf("%s",name);
p=head;
if(head!=NULL)
do /*查找指定的销售员*/
{if(strcmp(name,p->pname)==0)
{s+=p->mont;
printf("%ld,%s,%s,%ld,%ld,%ld\n",p->num,p->name,p->pname,p->price,p->mont,p->all);
}p=p->next;
}while(p!=NULL);
printf("该产品总售量:%f\n",s);
}
void conclu(struct sales *head) /*统计所有的销售员的销售总额*/ {
struct sales *p; /*定义结构体形指针*/
p=head;
if(head!=NULL)
do
{printf("%s",p->name);
picture(p->all);
p=p->next;
}while(p!=NULL);
}
void picture(long x) /*显示图形的设计*/ {
int a,i;
a=(int)(x/10);
printf("|");
for(i=0;inum,&p->price,&p->mont);
if(p->num!=0)
{ printf("输入:姓名,销售产品名(enter分隔):\n"); scanf("%s",p->name);
scanf("%s",p->pname);
}
}
void display()
{printf("***********************进入菜单**************************\n");
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");
}