📄 form.txt
字号:
#include <iostream.h>
#include <string.h>
#include <stdlib.h>
#define STU_SIZE 100
#define n 20
#define ERROR 0
#define OK 1
typedef int status;
struct student
{
char name[20];
long int non;
float sco;
int age;
}stu[n];
typedef struct
{struct student stu[n];
struct student *stuhead;
int length;
}sqlist;
status init_list (sqlist &l)
{
l.stuhead=(struct student*) malloc (STU_SIZE*sizeof (struct student));
if(!l.stuhead) exit (ERROR);
l.length=0;
return OK;
}
void printlist(sqlist l)
{
int k;
for (k=0;k<l.length;k++)
{ cout <<"位置"<<" "<<"name"<<" "<<"non"<<" "<<"age"<<" "<<"sco\n";
cout <<k+1<<" "<<l.stu[k].name<<" "<<l.stu[k].non<<" "<<l.stu [k].age<<" "<<l.stu[k].sco<<endl;
}
}
int listinsert (sqlist &l,int i,struct student e)
{
struct student *p,*q;
cout <<
cout <<"name\n";
cin >>e.name;
cout <<"non\n";
cin >>e.non ;
cout <<"age\n";
cin >>e.age;
cout <<"sco\n";
cin >>e.sco ;
if (i<0||i>l.length+1) return ERROR;
if (i==l.length+1)
{
l.stu[l.length]=e;
++l.length;
}
else
{
p=&(l.stu[l.length-1]);
q=&(l.stu[i-1]);
for(;p>=q;p--)
{
*(p+1)=*p;
*q=e;
++l.length;
}
}
return OK;
}
int listdelete (sqlist &l,int i,struct student &e)
{
struct student *p,*q;
if (i<1||i>l.length)return ERROR;
if(i==l.length)
{
e=l.stu[l.length-1];
--l.length;
}
else
{
p=&(l.stu[i-1]);
q=&(l.stu[l.length-1]);
e=*p;
for (;p<q;p++)
{
*p=*(p+1);
}
--l.length;
}
cout <<"您删除的数据为:\n";
cout <<"name"<<" "<<"non"<<" "<<"age"<<" "<<"sco\n";
cout<<e.name<<" "<<e.non<<" "<<e.age<<" "<<e.sco<<endl;
}
main()
{
typedef int status;
struct student e;
int i;
int j;
int m;
sqlist l;
init_list (l);
loop: cout<<"选择您要执行的操作(0为插入,1为删除,其他为结束程序):";
cin >>j;
switch(j)
{
case 0: cout<<"要从当前位置插入么?(0为是,1为否):";
cin>>m;
switch(m)
{case 0:
i=l.length+1;
break;
case 1:
cout<<"输入要插入的数据位置:";
cin>>i;
break;
default:
return ERROR;
}
listinsert(l,i,e);
cout<<"显示当前列表:\n";
printlist(l);
goto loop;
break;
case 1:
cout<<"输入您要删除的数据位置:";
cin>>i;
listdelete(l,i,e);
cout<<"显示当前列表:\n";
printlist(l);
goto loop;
break;
default:
cout <<"程序结束\n";
return OK;
}
}
2
#include<iostream.h>
#include<stdlib.h>
#include<string.h>
#define ERROR 0
#define OK 1
#define N 10
#define _SIZE 20
typedef int status;
typedef struct ployn{
int coaf;
int expn;
}ployn;
typedef struct lnode{
int length;
struct lnode *next;
struct ployn ployn;
}lnode,*linklist;
status initlist (linklist &l){
l=(linklist)malloc(_SIZE*sizeof(lnode));
if(!l->next) exit (ERROR);
else return OK;
}
status Keyin (linklist &l){
int n;
int i;
struct lnode *p;
p=l->next;
cout <<"输入多项式的项数:";
cin >>n;
l->length=n;
for(i=1;i<=n;i++)
{
cout<<"输入多项式第"<<i<<"个元素的系数:";
cin>>p->ployn.coaf;
cout<<"输入多项式第"<<i<<"个元素的指数:";
cin>>p->ployn.expn;
p=p->next;
}
return OK;
}
status addployn(linklist &l1,linklist &l2,linklist &l3){
struct lnode *p1;
p1=l1->next;
struct lnode *p2;
p2=l2->next;
struct lnode *p;
p=l3;
l3->length=l1->length+l2->length;
while(p1&&p2)
{
if(p1->ployn.expn<p2->ployn->expn)
{
p->next->ployn=p1->ployn;
p=p->next;
p1=p1->next;
}
else if(p2->ployn.expn<p1->ployn.expn)
{
p->next->ployn=p2->ployn;
p=p->next;
p2=p2->next;
}
else {
p->next->ployn.coaf=p1->ployn->coaf+p2->ployn.coaf;
p->next->ployn.expn=p1->ployn->expn;
p=p->next;
p1=p1->next;
p2=p2->next;
--l3->length;
}
}
p->next=p1?p1:p2;
free(l2);
return OK;
}
status changelnode (linklist &l){
struct lnode *p;
struct lnode *q;
q=l;
int i,n,m;
cout<<"输入您要修改的项位置:";
cin>>n;
for(i=1;i<n;i++)
q=q->next;
p=q->next;
cout<<"您要修改的项为第"<<i<<"项:"<<p->ployn->coaf<<"x^"<<p->ployn.expn<<endl;
cout<<"1为删除操作,2为修改操作,请选择:";
cin>>m;
switch(m){
case 1:
q->next=p->next;
break;
case 2:
cout<<"输入修改后元素的系数:";
cin>>p->ployn.coaf;
cout<<"输入修改后元素的指数:";
cin>>p->ployn.expn;
break;
default:
return ERROR;
}
return OK;
}
status printlist(linklist &l) {
struct lnode *p;
int i;
p=l->next;
for(i=1;i<=l->length;i++,p=p->next)
{ if (p!=l->next&&p->ployn->coaf>0)cout<<"+";
cout<<p->ployn.coaf;
cout<<"x^";
cout<<p->ployn.expn;
}
return OK;
}
main(void)
{
linklist l1;
linklist l2;
linklist l3;
initlist (l1);
initlist (l2);
initlist (l3);
int k,j;
LOOP:cout<<" 以下是操作列表:\n";
cout<<" 1为输入多项式:\n";
cout<<" 2为多项式相加:\n";
cout<<" 3为修改多项式:\n";
cout<<" 其它为结束程序!\n";
cout<<" 请选择您要执行的操作:";
cin>>k;
switch(k)
{
case 1:{
Keyin (l1);
cout<<"显示多项式1:\n";
printlist (l1);
cout<<endl;
Keyin (l2);
cout<<"显示多项式2:\n";
printlist (l2);
cout<<endl;
goto LOOP;
break;}
case 2:{
addployn(l1,l2,l3);
cout <<"显示结果多项式:\n";
printlist (l3);
cout<<endl;
goto LOOP;
break;}
case 3:{
cout<<"您要修改第";
cin>>j;
cout<<"个多项式\n";
switch(j){
case 1:
{changelnode(l1);
break;}
case 2:
{changelnode(l2);
break;}
default:return ERROR;
}
cout<<endl;
goto LOOP;
break;}
default:
return ERROR;
}
return OK;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -