功能:屏幕上出现一个界面,让顾客或输入商品名称,或商品型号,或选择列表进而输入商品编号都可以,如查到所选商品,则列出商品编号、商品名称、商品型号、商品价格、商品产地、库存数量和已订购数量;然后给出选购流程:所选商品编号—列出对应商品的信息—要求顾客输入邮寄地址信息—确认订购,是否继续选购其它商品,列出所有选订商品,再次确认订购。建立两个文件,分别存放商品信息与订购信息。
分步实施:
1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;
2、完成最低要求:建立一个小系统,包括10种产品能供顾客选择。
3、进一步要求:完成全部功能的系统。
要求:1、用C语言实现程序设计;
2、利用结构体数组实现信息的数据结构设计;
3、系统的各个功能模块要求用函数的形式实现;
4、界面友好(良好的人机交互),程序加必要的注释。
课程设计实验报告要求:
1、预习报告:题目、课程设计任务、数据结构、程序的总体设计(算法)、模块划分。
2、实验总结报告:流程图、主要源程序代码(需打印)、测试情况及调试中问题与解决方案、
小结等。
高手请帮帮我好吗?谢谢~
#include <stdio.h>#include <string.h>
#include <malloc.h>
#include <stdlib.h>
int N//////订单数目
struct chanpin
{
long bianhao
char mingcheng[30]
char cpmingcheng[30]
int cpdingjia
int shuliang
long jine
}////订单编号、公司名称、产品名称、产品订价、订购数量、订单金额
void init(struct chanpin *p)
{
printf("输入订单编号:\t")
scanf("%d", &p->bianhao)
printf("\n输入公司名称:\t")
scanf("%s", p->mingcheng)
printf("\n输入产品名称:\t")
scanf("%s", p->cpmingcheng)
printf("\n输入产品定价:\t")
scanf("%d", &p->cpdingjia)
printf("\n输入订购数量:\t")
scanf("%d", &p->shuliang)
p->jine=p->cpdingjia * p->shuliang
}//初始化
void displaymingcheng(struct chanpin *p)
{
printf("\n")
printf("公司名称:%s\n", p->mingcheng)
}
void display(struct chanpin *p)
{
displaymingcheng(p)
puts("-----------------------------------------------")//传说中的分割线
printf("订单编号:\t%ld", p->bianhao)
//printf("\n公司名称:\t%s", p->mingcheng)
printf("\n产品名称:\t%s", p->cpmingcheng)
printf("\n产品定价:\t%d", p->cpdingjia)
printf("\n订购数目:\t%d", p->shuliang)
printf("\n总金额是:\t%ld", p->jine)
puts("-----------------------------------------------")
}//输出一个产品的全部信息
void displaycompany(struct chanpin *p)
{
char temp[30]
int i
printf("输入公司名称:\t")
gets(temp)
for(i=0i<Ni++)
{
if(strcmp(temp, p[i].mingcheng)==0)
display(&p[i])
}
puts("订单信息输出完毕!!!")
}///////////根据名称输出公司订单信息
void findbianhao(struct chanpin *p)
{
long temp
int i
printf("输入编号:\t")
scanf("%ld", &temp)
for(i=0i<Ni++)
{
if(temp==p[i].bianhao)
display((p+i))
}
puts("根据编号查找完成!!!")
}//////根据编号查询 ....其他的查找方法我没写,你可以补上
void findcpmingcheng(struct chanpin *p)
{}///////产品名称查找
void findcpdingjia(struct chanpin *p)
{}////产品定价查找
int menu()
{
int x
printf("根据公司名称输出订单输入 :\t c\n")
printf("根据编号查找输入:\t b\n")
printf("根据产品名称输入:\t m \n")
printf("根据定价查找输入:\t d \n")
printf("退出输入:\t e \n")
x=getchar()
getchar()
return x
}
void main()
{
struct chanpin *cp
int choic
int i
printf("请输入总书目:\t")
scanf("%d", &N)
cp=(struct chanpin *)malloc(N*sizeof(struct chanpin))
for(i=0i<Ni++)
init(cp+i)//初始化所有产品
for(i=0i<Ni++)
display(cp+i)///显示所有产品信息
choic=menu()
while(choic!='e')
{
if(choic=='c')
displaycompany(cp)/////调用公司查找
else if(choic=='b')
findbianhao(cp)///调用编号查找
else if(choic=='m')
findcpmingcheng(cp)////调用名称查找
else if(choic=='d')
findcpdingjia(cp)
else
printf("出入错误!\n")
choic=menu()
}
puts("感谢使用")
}
你这个题目无法实现的,因为折扣率应该是在知道原价的基础上的。目前给出条件不足。这里做个假设:如果输入是两个,折扣前和折扣的,那么可以计算,比如:float beforePayment,afterPaymentfloat percentagescanf("折扣前金额=%f",&beforePayment)scanf("折扣后金额=%f",&afterPayment)percentage=afterPayment/beforePaymentprintf("产品折扣率为:%.2f",percentage)//保留两位小数进行显示