东北大学计算机软件基础实验.docx_第1页
东北大学计算机软件基础实验.docx_第2页
东北大学计算机软件基础实验.docx_第3页
东北大学计算机软件基础实验.docx_第4页
东北大学计算机软件基础实验.docx_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机软件基础实验第一题的程序列表如下:#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(请输入数据: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 *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-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 (!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;/ 最大值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).szQueue(*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!);elsestrcpy(pItem,(*q).szQueue(*q).nFront);(*q).nCount-;(*q).nFront=(*q).nFront+1)%(*q).nMaxSize);void InitStack(STACK *s,int nMaxSize) /栈的初始化操作函数(*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!);elsestrcpy(pItem,(*s).szStack(*s).nTop);(*s).nTop-;void GetTopStack(STACK *s, char *pItem) /获得栈顶中操作符的函数if(*s).nTop=0)printf(The stack is EMPTY!);elsestrcpy(pItem,(*s).szStack(*s).nTop);int Priority(char *op) / 获得操作符的优先级int nPriority=0;switch(op0)case:nPriority=3;break;case*:case/:nPriority=2;break; case+: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;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 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(&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、ScoreCREATE 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表中插入数据/*插入数据*/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,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,欧阳燕,女,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、导入课程数据Insert 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)values (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 (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)valu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论