求C语言高手帮忙解答啊。。。

C语言课程设计任务书

题目:商品订购系统设计。

功能:屏幕上出现一个界面,让顾客或输入商品名称,或商品型号,或选择列表进而输入商品编号都可以,如查到所选商品,则列出商品编号、商品名称、商品型号、商品价格、商品产地、库存数量和已订购数量;然后给出选购流程:所选商品编号—列出对应商品的信息—要求顾客输入邮寄地址信息—确认订购,是否继续选购其它商品,列出所有选订商品,再次确认订购。建立两个文件,分别存放商品信息与订购信息。
分步实施:
1、 步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;
2、完成最低要求:建立一个小系统,包括10种产品能供顾客选择。
3、进一步要求:完成全部功能的系统。

要求:1、用C语言实现系统;
2、函数功能要划分好(结构化程序设计);
3、界面友好(良好的人机交互),加必要的注释;
4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。

课程设计的最后成果是实验报告一份,内容包括:
1、预习报告(题目、流程图、程序的设计思想等);
2、实验总结报告(测试方案、源程序代码(需打印)、调试中问题及解决方案、小结等)。

前段时间学链表做的,刚为你改好代码,记住!!!!——GCC编译通过,其他编译器可能编译错误误!!!!!!!!!!!!!
#include <ctype.h>
#include<stdio.h>
#ifndef READLINE_H
#define READLINE_H
int read_line(char str[],int n);
#endif
int read_line(char str[],int n)
{
int ch,i=0;
while(isspace(ch=getchar()));
while(ch!='\n' && ch !=EOF)
{
if(i<n)
str[i++]=ch;
printf("%c",ch);
ch=getchar();}
str[i]='\0';
return i;
}

#include <stdio.h>
#include <stdlib.h>
#define NAME_LEN 25
struct part{
int bianhao;
char name[26];
int jiage;
int shuliang;
struct part *next;};
struct part *inventory=NULL;
struct part *find_part(int number)
{
struct part *p;
for(p=inventory;
p!=NULL && number>p->bianhao;p=p->next);
if(p != NULL && number==p->bianhao)
return p;
return NULL;
}
void insert(void)
{
struct part *cur, *prev, *new_node;
new_node=malloc(sizeof(struct part));
if(new_node==NULL)
{
printf("full;cant\n");
return;}
printf("请输入商品编号:\n");
scanf("%d",&new_node->bianhao);
for(cur=inventory,prev=NULL;cur!=NULL && new_node->bianhao> cur->bianhao;prev=cur,cur=cur->next);
if(cur!=NULL && new_node->bianhao==cur->bianhao)
{
printf("part already exists.\n");
free(new_node);
return;}
printf("\n请输入商品名称:");
read_line(new_node->name,NAME_LEN);
printf("\n请输入价格:");
scanf("%d",&new_node->jiage);
printf("\n请输入数量:");
scanf("%d",&new_node->shuliang);
new_node->next=cur;
if(prev==NULL)
inventory=new_node;
else
prev->next=new_node;}
void search(void)
{
int number,z,y;
struct part *p;
printf("请输入编号号: ");
scanf("%d",&number);
p=find_part(number);
if(p!=NULL)
{
printf(":编号%d\n",p->bianhao);
printf("名称: %s\n",p->name);
printf("价格: %d\n",p->jiage);
printf("数量:%d\n",p->shuliang);
printf("确定销售此产品?y ?是就输入1");
scanf("%d",&y);
if(y==1){
printf("请输入出售数量");
scanf("%d",&z);
p->shuliang=p->shuliang-z;
printf("出售成功");
}
else
printf("取消销售");
}
else
printf("part not found.\n");
}
void update(void)
{
int number,change,kemu;
struct part *p;
printf("请输入编号:");
scanf("%d",&number);
p=find_part(number);
if(p!=NULL)
{
printf("\n请输入更改的类别数量和价格1或2:");
scanf("%d",&kemu);
printf("\n请输入更改的数量: ");
scanf("%d",&change);
switch(kemu)
{
case 1:p->shuliang=change;break;
case 2:p->jiage=change;break;
}
}
else
printf("part not found .\n");
}
void print(void)
{
struct part *p;
printf("part number part name quantity on hand\n");
for(p=inventory;p!=NULL;p=p->next)
printf("%8d,%-25s,%8d,%8d\n",p->bianhao,p->name,p->jiage,p->shuliang);
}
int kk(){
struct part *p;
char str[30];
printf("请输入文件路径:");
read_line(str,30);
printf("%s",str);
FILE *fp;
if((fp=fopen(str,"a+"))==NULL)
{
printf("notttttttt");
exit(0);
}
for(p=inventory;p!=NULL&&!feof(fp);p=p->next)
if((fwrite(p,sizeof(struct part),1,fp))!=1)
{printf("not");
exit(0);
};
/*fseek(fp,,SEEK_CUR);*/
fclose(fp);
}
int bb()
{
struct part *p;
char str[25];
printf("请输入文件路径:");
read_line(str,30);
printf("%s",str);
FILE *fp;
if((fp=fopen(str,"r+"))==NULL)
{
printf("notttttttt");
exit(0);
}
for(p=inventory;fp!=NULL&&!feof(fp);p=p->next)
{
p=malloc(sizeof(struct part));
fread(p,sizeof(struct
part),1,fp);
printf("%d\n %s \n%d\n %d \n ",p->bianhao,p->name,p->jiage,p->shuliang
);
}
}

int main(void)
{
char code;
for(;;)
{
printf("enter operation code: ");
scanf("%c",&code);
while(getchar()!='\n');
switch(code)
{
case 'i' : insert(); break;//录入商品信息,名称,价格,数量等
case 's' : search(); break;//搜索商品,显示信息,是否出售,库存数量会减少
case 'u' : update(); break;//更改商品价格和库存数量
case 'p' : print();break;//打印出全部商品信息
case 'k' : kk();break;//保存商品信息!
case 'l' : bb();break;//读取上次保存的信息(为避免出错,每次运行程序请先读取信息)
case 'q' : return 0;//退出
default: printf("Illegal code\n");

}
printf("\n");
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-28
这种 课程设计还是要自己动手的好 最多是自己某些不会的再问别人 而不是 整个 靠别人
第2个回答  2012-05-28
要弄的话很花时间的
第3个回答  2012-05-28
课程设计。。。。
相似回答