1、12007 二编写程序或者程序段2、实现描述超市的类 Suppermarket 类,记录系统中现有商品(用链表实现) ,定义:初始化链表的构造函数增加商品的函数 Append;删除商品的函数 Delete;查询商品的函数 Query,并显示查询结果其中,商品具有 Id,名称 Name,价格Price 和数量 Number 等特性。/商品 72#includestruct Goodsdouble Id;char *Name;float Price;int Number;Goods *next;class Supermarketpublic:Goods *L;Supermarket();void
2、Append(double id,char *name,float price,int number);void Delete(double i);Goods *query(double i)Goods *r;r=L-next;while(r)if(r-Id=i)coutIdNamePriceNumbernext;coutnext=NULL;void Supermarket:Append(double id,char *name,float price,int number)Goods *r=L;Goods *p;while(r-next!=NULL)r=r-next;p=new Goods;
3、p-Id=id;p-Name=name;p-Price=price;p-Number=number;p-next=NULL;/将添加的商品放在最后面r-next=p;void Supermarket:Delete(double i)Goods *p,*r;p=L;/头指针r=L-next;while(r!=NULL)if(r-Id=i) break;p=r;r=r-next;if(r=NULL)coutnext=r-next;/删除了商品delete r;void main()Supermarket s;s.Append(1,“apple“,5.7,10);s.Append(2,“meat“,
4、9.8,5);s.Append(3,“milk“,2.7,8);s.query(1);s.query(2);s.query(3);s.Delete(1);s.query(2);运行结果:Goods ID:1Name:applePrice:5.7Number:10Goods ID:2Name:meatPrice:9.8Number:5Goods ID:3Name:milkPrice:2.7Number:8Goods ID:2Name:meatPrice:9.8Number:5Press any key to continue06 二、2假定居民的基本数据包括身份证号,姓名,性别和出生日期,而居民
5、中的成年人又多出两项数据:最高学历和职业,成年中的党员又多出一项数据:党派类别,现要求建立三个类,让成年人继承居民类,党员类继承成年人类,并要求每个类中都提供有数据添加,数据删除,数据输出的功能。/商品 72#includeclass Personpublic:Person()Person(char *id,char *name,char sex,char *birthday)Id=id;Name=name;Sex=sex;Birthday=birthday;void Add(char *id,char *name,char sex,char *birthday)Id=id;Name=name
6、;Sex=sex;Birthday=birthday;void Delete()Id=“;Name=“;Sex=0;Birthday=“;void Show()coutnext;while(p)if(LB-datadata)head=LB-next;temp-next=LA;temp1-next=LB;LB-next=temp-next;else if(LB-data=LA-data) head=LB-next;elsetemp1=LA;LA=LA-next;LB=head;2、定义一个串类,在串上的操作包括:判断串是否为空;求串长;删除串中从 i 开始的第 k 个字符;将串中小写变大写;将串
7、中大写变小写;#include#include#includeclass sstringpublic:sstring()s=NULL;bool isempty()if(*s)!=0)cout=A6struct StackNodetype element;StackNode *previous;StackNode *next;class Stackpublic:enum MaxStack=5;Stack()head=new StackNode;head-element=0;head-previous=NULL;head-next=NULL;top=head;void push(type n)if
8、(isFull()errMsg(“*The Stack is Full!*“);return;StackNode *p;p=top;top=new StackNode;p-next=top;top-element=n;top-previous=p;top-next=NULL;type pop()if(isEmpty()errMsg(“*The Stack is Empty!*“);return dummy_val;type n;StackNode *p;p=top;n=p-element;top=p-previous;delete p;return n;bool isEmpty()return
9、 top=head;bool isFull()return head-elementMaxStack;void prtypeStack()if(isEmpty()errMsg(“*The Stack is Empty!*“);return ;StackNode *p;p=top;coutelementprevious;private:void errMsg(char *msg)coutab;s.push(a);s.push(b);s.prtypeStack();cout /模板 T 表示一个类class stack7private:int top;T stackliststack_size;p
10、ublic:stack(void);void push(const T/入栈T pop(void); /出栈void clearstack(void); /清栈T peek(void) const; /返回栈顶的元素int empty(void); /判断栈空int full(void); /判断栈满;/构造 stack 函数template /对于模板类,在每一个申明和函数定义都得写这句话stack:stack(void):top(-1)/入栈template /对于模板类,在每一个申明和函数定义都得写这句话void stack:push(const Tif(top=-1)cout/对于模板
11、类,在每一个申明和函数定义都得写这句话T stack:peek(void)constif(top=-1)coutint stack:empty(void)return top=-1;/判断栈满template int stack:full(void)return top=stack_size-1;/清空栈template void stack:clearstack(void)top=-1;#endif stack_class/结束定义int main()stack sta(123);return 0;2003 一81、 /* 本程序从键盘读入整数,并将按从大到小的顺序输入整数中互不相等的那些整
12、数。程序一边读入整数,一边构造一个从大到小顺序连接的链表,直至不能从键盘读入整数,然后顺序输出链表上各表元的整数值。主函数每读入一个整数,就调用函数 Insert,函数 Insert 将还未出现在链表上的整数按从大到小的顺序插入到链表中。为了插入方便,链表在表首有一个辅助接点。*/#include“stdio.h“#include“stdlib.h“typedef struct nodeint val;struct node *next;NODE;void Insert(NODE *list, int x)NODE *u,*v,*p;int i=0;u=list;v=u-next;while(
13、vv=v-next;if(v=NULL|xv-val) /位置【2】判断是否要插入新表元p=(NODE *)malloc(sizeof(NODE);p-val=x;p-next=v; /位置【3】u-next=p; /位置【4】i+; /i 是用来观察函数void main()int x;NODE *head,*p;/首先建立只有辅助节点的空链表head=(NODE *)malloc(sizeof(NODE);head-next=NULL; /位置【5】printf(“enter integers:“);while(scanf(“%d“,for(p=head-next;p;p=p-next)p
14、rintf(“%5d“,p-val);printf(“n“);2、计算并求出 K!的阶乘。/计算 k 的阶乘,因为数字太大,所以按位存储在 a 数组中,且按倒序存储 #include“stdio.h“#define MAXN 1000int aMAXN,bMAXN;void pnext(int k,int *cp)int c=*cp,i,m,r;for(i=0;i0) /当数值较大时,如k=100,则累加后高位将有可能是多位溢出ac+=r%10;r=r/10;/输入数值小于 13 的数的阶乘unsigned long jiecheng(int k)int i;unsigned long s=1
15、;9for(i=1;itypedef struct Nodeint data;Node *next;Node *Intersect(Node *LA,Node *LB)Node *p,*q,*LC,*pc,*temp;p=LA-next;q=LB-next;pc=LC=(Node*)malloc(sizeof(Node);LC-next=NULL;while(ptemp-data=p-data;temp-next=NULL;pc-next=temp;pc=temp;p=p-next;q=q-next;else if(p-datadata)p=p-next;else q=q-next;retur
16、n LC;2、已知一组无序的整数用一个链表表示,编写一个函数对该链表表示的整数序列进行排列。/*2003 已知一组无序的整数用一个链表表示,编写一个函数对该链表表示的整数序列进行排列*/假定整数有个,链表 LT,有空头 head#define M 5#define NULL 0struct Nodeint data;struct Node *next;Usort(struct Node *LT)10int i=0;int j=0;struct Node *temp2,*temp1;for(i=0;inext;temp2=LT-next;if(j=M-1)LT-next=NULL;if(LT-d
17、atatemp2-data)temp2-next=LT;temp1-next=temp2;3、定义一个时间类,类成员包括小时,分钟,秒,在该类上的操作包括:(1 )时间初始化,利用构造函数的重载函数按下列情况初始化:只给出小时进行初始化(分,秒为 0) ;只给出小时,分(秒为 0) ;给出小时,分,秒;(2 )设置时间(参数:小时,分,秒)(3 )按上午(am)或者下午(pm)输出时间。class Timeprivate:int hour,minute,second;public:Time();Time(int h);Time(int h,int m);Time(int h,int m,int
18、 s);void SetTime(int h,int m,int s);void PrintTime();Time:Time()hour=0;minute=0;second=0;Time:Time(int h)hour=h;minute=0;second=0;Time:Time(int h,int m)hour=h;minute=m;second=0;Time:Time(int h,int m,int s)hour=h;minute=m;second=s;void Time:SetTime(int h,int m,int s)hour=h;minute=m;second=s;void Time:PrintTime()if(hour24)|(minute60)|(second60)cout=0)cout=12)cout“pm:“hour“,“minute“,“secondendl;
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。