C语言方面的题目 高分悬赏 小弟跪求好心人帮忙

来源:百度知道 编辑:UC知道 时间:2024/06/30 22:07:57
线性表的应用——简单仓库管理
建立一个简单的仓库管理程序,可以按货物编号和货物名称查询仓库存储情况,也可以增加或删除货物以及修改货物数量。
货物按编号从小到大存储,为方便查找,采用双向链表存储结构,节点结构如下:
typedef struct node{ /*定义结构体类型dnode*/
int number; /*货物编号*/
char name[MAX]; /*货物名称*/
int counter; /*货物数量*/
struct node *prior,*next; /*前驱和后继指针*/
}dnode;
程序要求:
(1)init函数用来建立双向链表,可以通过外部输入或预定义数组导入数据;
(2)insert函数用来增加新货物,通过外部输入导入数据;
(3)delete函数用于删除某种货物;
(4)amend函数用于修改某种货物的数量(当货物数量为0时,删除该货物);
(5)search函数用查找指定的货物(指定编号或名称);
(6)output_one函数用于输出某一种货物的存货信息,output函数用于输出整个仓库的存货信息;
(7)main函数根据输入的命令标示符,作相应的操作:
i增加新货物;
d删除某种货物;
a修改某种货物的数量;
s查找指定的货物(1按编号查找,2按名称查找);
o输出存货信息(1输出指定的某种货物的存货信息,2输出整个仓库的存货信息);
q退出程序。

栈的应用——中缀表达式转后缀表达式
中缀表达式就是我们最常见的那种表达式,运算符在两个操作数之间;后缀表达式一般用在编译程序中,运算符在两个操作数之后。后缀表达式不需要括号和指明运算符的优先级,其运算顺序由运算符和操作数在表达式中的顺序来决定。
下面是一个中缀表达式和后缀表达式的例子:
中缀表达式:A+B*(C/D-E)*F-G 后缀表达式:ABCD/E-*F*+G-
运算符优先级如下:
运算符 优先级
$ 0
(

//先接第1题,第2题在后面:
#include <stdlib.h>
#include <string.h>
#include <iostream.h>

#define MAX 64

typedef struct node{
int number;
char name[MAX];
int counter;
struct node *prior,*next;
}dnode;

dnode* pHead;

void init(int sum);
void insert();
void Delete(dnode* pNode);
dnode* search(char* name);
dnode* search(int number);
void amend(char* name,int counter);
void output_one(char*name);
void output();

void main()
{
dnode *pNode=NULL;
char opt1,opt2;
char name[MAX];
int counter=0;
int number=0;

cout<<"输入初始化货物类型数:"<<endl;
cin>>number;
init(number);
cout<<"i:增加新货物\nd:删除某种货物\na:修改某种货物的数量\ns:查找指定的货物\no:输出存货信息\nq:退出程序"<<endl<<endl;
while(1){
cout<<"\n选择操作:"<