ImageVerifierCode 换一换
格式:DOCX , 页数:60 ,大小:37.93KB ,
资源ID:9459242      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-9459242.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(西南交通大学信息学院研究生中期筛选C++程序.docx)为本站会员(b****0)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

西南交通大学信息学院研究生中期筛选C++程序.docx

1、西南交通大学信息学院研究生中期筛选C+程序2007二编写程序或者程序段2、实现描述超市的类Suppermarket类,记录系统中现有商品(用链表实现),定义:初始化链表的构造函数增加商品的函数Append;删除商品的函数Delete;查询商品的函数Query,并显示查询结果其中,商品具有Id,名称Name,价格Price和数量Number等特性。/商品72#includestruct Goods double Id; char *Name; float Price; int Number; Goods *next;class Supermarketpublic: Goods *L; Super

2、market(); void 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) coutGoods ID:Idendl; coutName:Nameendl; coutPrice:Priceendl; coutNumber:Numbernext; coutNo goods found!next=NULL;void Supermarket:Append(double id

3、,char *name,float price,int number) Goods *r=L; Goods *p; while(r-next!=NULL) r=r-next; p=new Goods; 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

4、; if(r=NULL) coutgoods do nit exitsnext=r-next;/删除了商品 delete r;void main() Supermarket s; s.Append(1,apple,5.7,10); s.Append(2,meat,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.8Numbe

5、r:5Goods ID:3Name:milkPrice:2.7Number:8Goods ID:2Name:meatPrice:9.8Number:5Press any key to continue06二、2假定居民的基本数据包括身份证号,姓名,性别和出生日期,而居民中的成年人又多出两项数据:最高学历和职业,成年中的党员又多出一项数据:党派类别,现要求建立三个类,让成年人继承居民类,党员类继承成年人类,并要求每个类中都提供有数据添加,数据删除,数据输出的功能。/商品72#includeclass Personpublic: Person() Person(char *id,char *nam

6、e,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; Sex=sex; Birthday=birthday; void Delete() Id=; Name=; Sex=0; Birthday=; void Show() coutId:Idendl; coutName:Nameendl; coutSex:Sexendl; coutBirthday:Birthda

7、yendl; private: char *Id; char *Name; char Sex; char *Birthday;class Adult:public Personpublic: Adult() Adult(char *id,char *name,char sex,char *birthday,char *edu,char *Occ):Person(id,name,sex,birthday) Education=edu; Occupation=Occ; void Add(char *id,char *name,char sex,char *Birthday,char *edu,ch

8、ar *Occ) Person:Add(id,name,sex,Birthday); Education=edu; Occupation=Occ; void Delete() Person:Delete(); Education= ; Occupation= ; void Show() Person:Show(); coutEducation:Educationendl; coutOccupation:Occupationendl; private: char *Education; char *Occupation;class PartyMember:public Adultpublic:

9、PartyMember() PartyMember(char *id,char *name,char sex,char *Birthday,char *Edu,char *Occ,char *cate): Adult(id,name,sex,Birthday,Edu,Occ) category=cate; void Add(char *id,char *name,char sex,char *Birthday,char *cate) Person:Add(id,name,sex,Birthday); category=cate; void Delete() Person:Delete(); c

10、ategory=; void Show() Person:Show(); coutCategory:categoryendl; private: char *category;void main() Person p1; Adult a1; PartyMember pm1; p1.Add(11041062,Liming,m,19881112); p1.Show(); p1.Delete(); p1.Show(); coutendl; a1.Add(11041063,Liyan,f,19881002,graduate,monitor); a1.Show(); a1.Delete(); a1.Sh

11、ow(); coutendl; pm1.Add(11041063,Liyan,f,19881002,Party); pm1.Show(); pm1.Delete(); pm1.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; else temp1=LA; LA=LA-next; LB=head; 2、定义一个串类,在串上的操作包括:判断串是否为空;求串长;删除

12、串中从i开始的第k个字符;将串中小写变大写;将串中大写变小写;#include#include#includeclass sstringpublic: sstring()s=NULL; bool isempty() if(*s)!=0) coutThis String is not empty.endl; return true; int length();/求长度 void del_k(int i,int k);/删除串中从i开始的第k个字符 void upper();/小写变大写 void lower();/大写变小写 char *s;int sstring:length() int n=

13、0; char *temp=s; while(*temp)!=0) n+; temp+; return n; coutThe length of this string isnendl;void sstring:del_k(int i,int k) int j; int leg=length(); for(j=i+k;jleg;j+) sj-k=sj; coutThe new String is sendl;void sstring:lower()/大写变成小写 char *temp=s; int leg=length(); for(int i=0;i=A&*temp=Z) (*temp)+=

14、32; temp+; coutThe new String is sendl;void sstring:upper()/大写变成小写 char *temp=s; int leg=length(); for(int i=0;i=a&*temp=z) (*temp)-=32; temp+; coutThe new String is sendl;int main() sstring r; char str=asdsaksKKDJHJ; printf(%sn,str); r.s=str; r.isempty(); r.length(); r.del_k(2,2); r.lower(); r.uppe

15、r(); 运行结果:asdsaksKKDJHJThis String is not empty.The new String is asaksKKDJHJHJThe new String is asakskkdjhjhjThe new String is ASAKSKKDJHJHJPress any key to continue3、定义一个栈类,与栈有关的操作包括:栈初始化;判栈空;出栈操作;入栈操作;取栈元素;假定栈元素为整型。注:栈的实现可以采用顺序结构,也可以采用链表结构,要求接口与存储结构无关。方法一、用链表实现#includetypedef int type;struct Stac

16、kNode type 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(isFull()errMsg(*The Stack is Full!*);return; StackNode *p; p=top; top=new StackNode; p-next=top;

17、 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 top=head;bool isFull()return head-elementMaxStack;void prtypeStack() if(isEmpty()errM

18、sg(*The Stack is Empty!*);return ; StackNode *p; p=top; coutStack contents,top to button; while(p!=head) coutnelementprevious; private: void errMsg(char *msg)coutmsg; StackNode *head; StackNode *top; type dummy_val;void main() Stack s; type a,b; coutab; s.push(a); s.push(b); s.prtypeStack(); coutnpo

19、p:s.pop()n; s.prtypeStack();/ system(Pause); 方法二、采用顺序结构#ifndef stack_class /如果没定义stack_class,#define stack_class /那么现在开始定义stack_class#includeiostream.h#includestdlib.hconst int stack_size=50;/ 栈中元素最大个数template /模板 T表示一个类class stackprivate: int top; T stackliststack_size;public: stack(void); void pus

20、h(const T& item);/入栈 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 T&item) if(top=stack_size-1) coutst

21、ack overflow!endl;/栈满就退出 exit(1); top-; stacklisttop=item;/出栈template /对于模板类,在每一个申明和函数定义都得写这句话T stack:pop(void) T temp; if(top=-1) cout栈空了!endl;/栈满就退出 exit(1); temp=stacklisttop; top+; return temp;/返回栈顶元素/访问栈顶元素template /对于模板类,在每一个申明和函数定义都得写这句话T stack:peek(void)const if(top=-1) cout栈空了!endl;/栈满就退出 e

22、xit(1); return stacklisttop;/返回栈顶元素/判断栈空template int 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一1、/* 本程序从键盘读入整数,并将按从大到小的顺序输入整数中互不相等的那些整数。 程序

23、一边读入整数,一边构造一个从大到小顺序连接的链表,直至不能从键盘读入 整数,然后顺序输出链表上各表元的整数值。主函数每读入一个整数,就调用函数Insert, 函数Insert将还未出现在链表上的整数按从大到小的顺序插入到链表中。 为了插入方便,链表在表首有一个辅助接点。*/#includestdio.h#includestdlib.htypedef 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(v&x

24、val)/位置【1】寻找插入的位置 u=v; v=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,&x)=1) Insert(head,x); for(p=head-next;p;p=p-next) printf(%5d,p-val); printf(n);2、计算并求出K!的阶乘。/计算k的阶乘,因为数字太大,所以按位存储在a数组中,且按倒序存储 #includestdio.h#define MAXN 1000int aMAXN,bMAXN;void pnext(int k,int *cp) int c=*cp,i,m,r; for(i=0;ic

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2