1、东北大学计算机软件基础实验计算机软件基础实验第一题的程序列表如下:#include stdio.h#include malloc.h#include stdlib.h#define maxsize 50typedef int datatype;typedef structdatatype datamaxsize; int last; sequenlist;void creatlist (sequenlist *L) int n,i,a;int tmp;printf(请输入表数据的个数:n);scanf(%d,&n);printf(输入数据个数:n);scanf(%d,&a);printf(请输
2、入数据:n);for(i=0;idatai=tmp;L-last=n-1;printf(n);void printout (sequenlist *L) int i;for(i=0;ilast;i+) printf(data%d=,i);printf(%dn,L-datai);void sort(sequenlist *L)int i,j;datatype a;for(i=0;ilast;i+)for(j=0;jlast-i;j+)if(L-datajL-dataj+1)a=L-dataj;L-dataj=L-dataj+1;L-dataj+1=a;void change(sequenlist
3、 *L)int a,b;int i,j;printf(插入请输入2,删除请输1:n);scanf(%d,&a);switch(a)case 2: printf(请输入插入数据:n);break; case 1: printf(请输入删除数据:n);break;scanf(%d,&b);switch(a)case 2: for(i=0;ilast;i+) if(bL-datai&bdatai+1) break; for(j=L-last-i;ji;j-) L-dataj+1=L-dataj; L-datai+1=b; ;break;case 1: for(i=0;ilast;i+) if(b=L
4、-datai) break; for(j=i+1;jlast-1;j+) L-dataj-1=L-dataj;break;default:printf(请正确输入数值:n); printf(插入请输入1,删除请输0:n); void main()sequenlist *L1;L1=(sequenlist*)malloc(sizeof(sequenlist);printf(第一张表:n);creatlist(L1);sort(L1);printf(排序后的第一张表为:n);printout(L1);dochange(L1);printf(改变后的表为:n);printout(L1);while
5、(!0);程序运行截图:第二题程序代码:#include stdio.h#include iostream#include #include const int MAX_LEN = 10; / 字符串的长度const int MAX_SIZE = 30; / 栈或队的最大元素个数struct QUEUE /定义一个队列的结构体 int nMaxSize; / 最大值 int nCount; / 个数 int nFront; / 头 int nRear; / 尾 char szQueueMAX_SIZEMAX_LEN;struct STACK /定义一个栈的结构 int nMaxSize; /
6、最大值 int nTop; / 栈顶 char szStackMAX_SIZEMAX_LEN;void InitQueue(QUEUE *q,int nMaxSize) / 队列的初始化操作 (*q).nMaxSize=nMaxSize; (*q).nCount=0; (*q).nFront=0; (*q).nRear=0;void InQueue(QUEUE *q, char *pItem) /进入队列的函数 if(*q).nCount=(*q).nMaxSize) printf(The queue is FULL!); else (*q).nCount+; strcpy(*q).szQue
7、ue(*q).nRear,pItem); (*q).nRear=(*q).nRear+1)%(*q).nMaxSize); void OutQueue(QUEUE *q, char *pItem) /出队列的函数 if(*q).nCount=0) printf(The queue is EMPTY!); else strcpy(pItem,(*q).szQueue(*q).nFront); (*q).nCount-; (*q).nFront=(*q).nFront+1)%(*q).nMaxSize); void InitStack(STACK *s,int nMaxSize) /栈的初始化操作
8、函数 (*s).nMaxSize=nMaxSize; (*s).nTop=0;void PushStack(STACK *s, char *pItem) /压栈的函数 if(*s).nTop=(*s).nMaxSize) printf(The stack is FULL!); else (*s).nTop+; strcpy(*s).szStack(*s).nTop,pItem); void PopStack(STACK *s, char *pItem) /弹栈的函数 if(*s).nTop=0) printf(The stack is EMPTY!); else strcpy(pItem,(*
9、s).szStack(*s).nTop); (*s).nTop-; void GetTopStack(STACK *s, char *pItem) /获得栈顶中操作符的函数 if(*s).nTop=0) printf(The stack is EMPTY!); else strcpy(pItem,(*s).szStack(*s).nTop); int Priority(char *op) / 获得操作符的优先级 int nPriority=0; switch(op0) case: nPriority=3; break; case*: case/: nPriority=2; break; cas
10、e+: case-: nPriority=1; break; case;: nPriority=0; return nPriority;void Compute(char *num1, char *num2, char *op, char *chResult) / 计算表达式的值 double fNum2,fNum1; double fResult=0; fNum1=atof(num1); fNum2=atof(num2); switch(op0) case: fResult=pow(fNum1,fNum2); break; case*: fResult=fNum1*fNum2; break;
11、 case/: fResult=fNum1/fNum2; break; case+: fResult=fNum1+fNum2; break; case-: fResult=fNum1-fNum2; break; sprintf(chResult,%.4f,fResult);/把计算结果转换成字符串 return;void main() char tempMAX_LEN; char epsnMAX_SIZEMAX_LEN; int i=0; int n=0; struct QUEUE q; / 声明一个队列 InitQueue(&q,MAX_SIZE); /初始化队列 struct STACK
12、OS; / 声明OS栈和NS栈 struct STACK NS; InitStack(&OS,MAX_SIZE); /初始化堆栈 InitStack(&NS,MAX_SIZE); / 输入表达式,并放入到队列当中 printf(Please input a equation now:nn); while(1) scanf(%s,temp); if(!strcmp(temp,;) InQueue(&q,;); break; strcpy(epsnn+,temp); InQueue(&q,temp); for(i=0;i Priority(op) / 运算符的优先级栈顶运算符 PushStack(
13、&OS,x); OutQueue(&q,x); continue; if (x0 = ; & op0 = ;) / 扫描结束 PopStack(&NS,chResult); printf(=%snn,chResult); break; if (Priority(x) = Priority(op) / 不大于栈顶运算符 PopStack(&NS,num1); PopStack(&NS,num2); PopStack(&OS,op); Compute(num2,num1,op,chResult); PushStack(&NS,chResult); 第三题:1、创建三个表Stu、Course、Sco
14、reCREATE TABLE Stu( Sno CHAR(4)PRIMARY KEY, Sname CHAR(10), Sex CHAR(4), Age NUMERIC, BirthDay DATETIME, Class CHAR(10),);CREATE TABLE Course( Cno CHAR(2)PRIMARY KEY, Cname CHAR(10), Chour NUMERIC,);CREATE TABLE Score( Sno CHAR(4), Cno CHAR(2), PRIMARY KEY(Sno,Cno), Grade NUMERIC,);2、向Stu表中插入数据/*插入数
15、据*/Insert into Stu(Sno,Sname,Sex,Age,BirthDay,Class)values (0101,张强,男,20,1994-02-20,自动化01班);Insert into Stu(Sno,Sname,Sex,Age,BirthDay,Class)values (0102,李红,女,20,1994-08-10,自动化01班);Insert into Stu(Sno,Sname,Sex,Age,BirthDay,Class)values (0103,王涛,男,21,1993-05-18,自动化01班);Insert into Stu(Sno,Sname,Sex,
16、Age,BirthDay,Class)values (0104,刘丽,女,19,1995-03-05,自动化02班);Insert into Stu(Sno,Sname,Sex,Age,BirthDay,Class)values (0105,孙东,男,21,1993-12-17,自动化02班);Insert into Stu(Sno,Sname,Sex,Age,BirthDay,Class)values (0106,王平,男,22,1992-11-30,自动化02班);Insert into Stu(Sno,Sname,Sex,Age,BirthDay,Class)values (0201,欧
17、阳燕,女,20,1994-04-11,电子01班);Insert into Stu(Sno,Sname,Sex,Age,BirthDay,Class)values (0202,杨锐,男,20,1994-05-13,电子01班);Insert into Stu(Sno,Sname,Sex,Age,BirthDay,Class)values (0203,刘艳,女,18,1996-01-21,电子01班);Insert into Stu(Sno,Sname,Sex,Age,BirthDay,Class)values (0204,周宇,男,20,1994-07-10,电子01班);3、导入课程数据In
18、sert into Score (Sno,Cno,Grade)values (0101,01,87);Insert into Score (Sno,Cno,Grade)values (0102,01,90);Insert into Score (Sno,Cno,Grade)values (0103,01,79);Insert into Score (Sno,Cno,Grade)values (0104,01,89);Insert into Score (Sno,Cno,Grade)values (0105,01,58);Insert into Score (Sno,Cno,Grade)valu
19、es (0106,01,77);Insert into Score (Sno,Cno,Grade)values (0201,01,95);Insert into Score (Sno,Cno,Grade)values (0202,01,80);Insert into Score (Sno,Cno,Grade)values (0203,01,76);Insert into Score (Sno,Cno,Grade)values (0204,01,70);Insert into Score (Sno,Cno,Grade)values (0101,02,91);Insert into Score (
20、Sno,Cno,Grade)values (0102,02,88);Insert into Score (Sno,Cno,Grade)values (0103,02,75);Insert into Score (Sno,Cno,Grade)values (0104,02,91);Insert into Score (Sno,Cno,Grade)values (0105,02,76);Insert into Score (Sno,Cno,Grade)values (0106,02,76);Insert into Score (Sno,Cno,Grade)values (0201,02,90);I
21、nsert into Score (Sno,Cno,Grade)values (0202,02,84);Insert into Score (Sno,Cno,Grade)values (0203,02,83);Insert into Score (Sno,Cno,Grade)values (0204,02,57);2Select Sname,Cname,Grade from Stu,Course,Score where Stu.Sno=Score.Sno and Course.Cno=Score.Cno;Select distinct Stu.Sno,Sname,Class from Stu,
22、Score where Stu.Sno=Score.Sno and Grade=85)and exists(Select * from Score where Stu.Sno=Score.Sno and Score.Cno=02 and Score.Grade=85 )Update Course set Cname=网络技术 where Cno=01;Update Stu set Sname=zhangxu,Sex=m,age=20where Sno=0101;Update Score set Grade=60 where Sno in(Select Sno from Stu whereSex=男) and Grade between 55 and 59;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1