C++程序设计第一章函数编程题.docx
- 文档编号:8586222
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:21
- 大小:21.50KB
C++程序设计第一章函数编程题.docx
《C++程序设计第一章函数编程题.docx》由会员分享,可在线阅读,更多相关《C++程序设计第一章函数编程题.docx(21页珍藏版)》请在冰豆网上搜索。
C++程序设计第一章函数编程题
6-1工作备忘录的生成(链表)(10分)
每天都要处理很多事务,为了更好地安排工作,希望在每天开始工作前,根据工作记录,生成工作备忘录。
首先输入工作记
录数(大于0的一个整数),再逐条输入各条工作记录,每条工作记录包括:
工作名,开始时间,结束时间。
假设每项工作
的开始时间均小于它的结束时间,并且各项工作的开始时间互不相同。
我们的工作是需要把这些工作记录按开始时间排序并输出,在输出时,如果某项工作与若干项工作冲突(在做该项工作时,
需要同时做其它工作),则在该工作名前加'*'。
函数接口定义:
Node*add(Node*,Node*);
voiddisplay(Node*);
裁判测试程序样例:
#include
#include
structNode{
stringname;
intstart;
intend;
Node*next;
};
Node*add(Node*,Node*);
voiddisplay(Node*);
boolcheck(Node*head){
if(head==NULL||head->next==NULL)returntrue;
Node*p=head->next;
if(head->start>p->start)returnfalse;
returncheck(p);
}
intmain(){
Node*head=NULL,*p;
inti,repeat;
cin>>repeat;
for(i=0;i p=newNode; cin>>p->name>>p->start>>p->end; p->next=NULL; head=add(head,p); } if(! check(head))cout<<"ERROR"< display(head); return0; } /*请在这里填写答案*/ 输入样例: 4 aaa1920 ccc169200 ddd153170 bbb20111输出样例: 第一章1/13 aaa1920bbb20111 *ddd153170 *ccc169200 Node*add(Node*head,Node*p){//把节点p插入到链表,按照任务的起始时间升序排列 Node*q=head,*s=head; while((q! =NULL)&&(q->start 早于p节点的起始时间 s=q;//s始终在q的前面 q=q->next; }//直到当前节点NULL或者q的起始时间晚于p的起始时间 if(q==head){//p应该接在链表的开始位置,即成为新的表头 p->next=head; head=p; }else{ p->next=q; s->next=p; } returnhead; } voiddisplay(Node*head){ Node*p=head,*q; boolconflict;//用于标识是否有冲突 while(p! =NULL){//当前p节点不空,是有效任务 conflict=false; q=head; while(! conflict&&q! =p){//检查p的开始时间是否小于p之前的任务的结束时间 if(q->end>p->start){//p之前的任务的结束时间如果大于p的开始时间则冲突 conflict=true; break; } q=q->next; } q=p->next; while(! conflict&&q! =NULL){//检查p的结束时间是否大于p之后的任务的开始时间 if(p->end>q->start){//p之后的任务的开始时间如果大于p的结束时间则冲突 conflict=true; break; } q=q->next; } if(conflict){//当前任务与其它的任务时间冲突 cout<<"*"; } cout< p=p->next; } } 第一章2/13 6-2函数调用(10分) 编写三个函数: 求两个整数的最大值、最小值、和。 分别用这三个函数作为实参,再写一个计算函数compute, 对两个整数进行各种计算。 其中一个形参为指向具体算法函数的指针。 函数接口定义: intmax(inta,intb); intmin(inta,intb); intsum(inta,intb); intcompute(inta,intb,int(*func)(int,int)); 裁判测试程序样例: 在这里给出函数被调用进行测试的例子。 例如: #include intmax(inta,intb);intmin(inta,intb);intsum(inta,intb); intcompute(inta,intb,int(*func)(int,int)); intmain(){ inta,b,res; cin>>a>>b; res=compute(a,b,&max); cout<<"Maxof"< res=compute(a,b,&min); cout<<"Minof"< res=compute(a,b,&sum);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 程序设计 第一章 函数 编程