东北大学计算机软件基础上机实验.docx
- 文档编号:10695900
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:28
- 大小:354.58KB
东北大学计算机软件基础上机实验.docx
《东北大学计算机软件基础上机实验.docx》由会员分享,可在线阅读,更多相关《东北大学计算机软件基础上机实验.docx(28页珍藏版)》请在冰点文库上搜索。
东北大学计算机软件基础上机实验
实验一
//---
#include"stdafx.h"
#include"iostream"
#include
//程¨¬序¨°实º¦Ì现?
有®D各¡Â种?
方¤?
法¤¡§,ê?
这a里¤?
给?
出?
一°?
个?
实º¦Ì例¤y。
¡ê
//定¡§义°?
一°?
个?
线?
性?
表À¨ª
constintnMaxSize=15;//最Á?
大䨮值¦Ì
intnLen=0;//表À¨ª中D元a素?
个?
数ºy
intnLinearList[nMaxSize];
//定¡§义°?
操¨´作Á¡Â
voidLSort();
voidLOut();
voidLInsert(intn);
voidLDelete(intn);
intmain()
{
//输º?
入¨?
数ºy据Y并¡é放¤?
入¨?
线?
性?
表À¨ª中D
printf("Pleaseinputdata\n");//std:
:
cout<<"Pleaseinputdata\n";
intnIn=0;
for(inti=1;i<=10;i++)
{
scanf("%d",&nIn);//std:
:
cin>>nIn;
nLinearList[i]=nIn;
nLen++;
}
LSort();//排?
序¨°线?
性?
表À¨ª
LOut();//输º?
出?
结¨¢果?
printf("Pleaseinputadatatoinsert\n");
scanf("%d",&nIn);
LInsert(nIn);//输º?
入¨?
一°?
个?
数ºy字Á?
,ê?
并¡é插?
入¨?
到Ì?
线?
性?
表À¨ª中D
LOut();
printf("Pleaseinputadatatodelete\n");
scanf("%d",&nIn);
LDelete(nIn);//输º?
入¨?
一°?
个?
数ºy字Á?
,ê?
并¡é从䨮线?
性?
表À¨ª中D删¦?
除y
LOut();
charchTmp;
printf("Pleaseinputachartofinishthisprogram.");
chTmp=getch();
return0;
}
voidLSort()//冒¡ã泡Y排?
序¨°,由®¨¦大䨮到Ì?
小?
{
intk,temp,m;m=nLen;
while(m>0)
{
for(k=1;k { if(nLinearList[k]>nLinearList[k+1]) { temp=nLinearList[k+1]; nLinearList[k+1]=nLinearList[k]; nLinearList[k]=temp; } } m--; } } voidLOut() { printf("\n"); for(inti=1;i<=nLen;i++) { printf("%d,",nLinearList[i]); } printf("\n"); } voidLInsert(intn) { inth,l,m,k,j,temp; k=++nLen; nLinearList[k]=n; l=1; h=k-1; for(j=1;j { m=(l+h)/2; if(nLinearList[m] l=m+1; elseif(nLinearList[m]>nLinearList[k]) h=m-1; } for(j=k;j! =h+1;j--) { temp=nLinearList[j]; nLinearList[j]=nLinearList[j-1]; nLinearList[j-1]=temp; } } voidLDelete(intn) { inth,l,m,k,j; k=nLen; //nLinearList[k]=n; l=1; h=k-1; for(j=1;j { m=(l+h)/2; if(nLinearList[m] elseif(nLinearList[m]>n) h=m-1; else break; } if(nLinearList[m]==n) { for(j=m;j { nLinearList[j]=nLinearList[j+1]; } nLinearList[k]=0; nLen=k-1; } } 实验二 二.源程序 //Experiment2.cpp: 定义控制台应用程序的入口点。 #include"stdio.h" #include #include #include //程序实现有各种方法,这里给出一个实例。 constintMAX_LEN=10;//字符串的长度 constintMAX_SIZE=30;//栈或队的最大元素个数 //定义一个队列的结构 structQUEUE{ intnMaxSize;//最大值 intnCount;//个数 intnFront;//头 intnRear;//尾 charszQueue[MAX_SIZE][MAX_LEN]; }; //定义一个栈的结构 structSTACK{ intnMaxSize;//最大值 intnTop;//栈顶 charszStack[MAX_SIZE][MAX_LEN]; }; //队列的操作 voidInitQueue(QUEUE*q,intnMaxSize) { q->nMaxSize=nMaxSize; q->nCount=0; q->nFront=0; q->nRear=0; q->szQueue[MAX_SIZE][MAX_LEN]=0; } voidInQueue(QUEUE*q,char*pItem) { if(q->nCount==q->nMaxSize) { printf("TheQueueisfull! \n"); return; } strcpy(q->szQueue[q->nRear],pItem); if(q->nRear++==MAX_SIZE) q->nRear=0; q->nCount++; } voidOutQueue(QUEUE*q,char*pItem) { if(q->nCount==0) { printf("TheQueueisempty! \n"); return; } strcpy(pItem,q->szQueue[q->nFront]); if(q->nFront++==MAX_SIZE) q->nFront=0; q->nCount--; } //栈的操作 voidInitStack(STACK*s,intnMaxSize) { s->nMaxSize=nMaxSize; s->nTop=0; s->szStack[MAX_SIZE][MAX_LEN]=0; } voidPushStack(STACK*s,char*pItem) { char*p; if(s->nTop { p=s->szStack[s->nTop]; strcpy(p,pItem); s->nTop++; } else { printf("Thestackoverflow! \n"); return; } } voidPopStack(STACK*s,char*pItem) { char*p; if(s->nTop==0) { printf("stackisempty! \n"); return; } else { p=s->szStack[--s->nTop]; strcpy(pItem,p); } } voidGetTopStack(STACK*s,char*pItem) { char*p; chara[10]={0}; if(s->nTop==0) { a[0]=';'; strcpy(pItem,a); } else { p=s->szStack[s->nTop-1]; strcpy(pItem,p); } } //字符判断 intisdigit(charx) { if(x>='0'&&x<='9') return1; return0; } intPriority(char*op);//获得操作符的优先级 voidCompute(char*num1,char*num2,char*op,char*chResult);//计算表达式的值 //主函数 voidmain() { charx[MAX_LEN];//扫描的表达式 charop[MAX_LEN];//栈顶运算符 charnum1[MAX_LEN],num2[MAX_LEN];//两个操作数 charchResult[MAX_LEN];//运算结果 //***声明一个队列 structQUEUEq1; structQUEUE*q; //***声明OS栈和NS栈 structSTACKOS; structSTACKNS; structSTACK*o; structSTACK*n; inti=0; intj=0; intk=0; //****初始化 q=&q1; o=&OS; n=&NS; InitStack(o,20); InitStack(n,20); InitQueue(q,20); printf("pleaseinputtheexpressionendwith\";\n"); //录入表达式 do { printf("next\n"); scanf("%s",x); InQueue(q,x); } while(x[0]! =';'); printf("expression\n"); while(true) { if(q->nCount! =0) { OutQueue(q,x); printf("%s",x); } if(isdigit(x[0]))//是数 PushStack(n,x); else//认为是运算符,没有考虑空格等 { GetTopStack(o,op);//获得OS栈顶运算符 if(x[0]==';'&&op[0]==';')//扫描结束 {printf("\nresultis"); break; } if(Priority(x)>Priority(op))//运算符的优先级〉栈顶运算符 { PushStack(o,x); continue; } while((Priority(x)<=Priority(op))&&Priority(op))//不大于栈顶运算符 { PopStack(n,num1); PopStack(n,num2); PopStack(o,op); Compute(num2,num1,op,chResult); PushStack(n,chResult); GetTopStack(o,op); } PushStack(o,x); } } PopStack(n,chResult); printf("%s\n",chResult); } intPriority(char*op) { intnPriority=0; switch(op[0]) { case'^': nPriority=3; break; case'*': case'/': nPriority=2; break; case'+': case'-': nPriority=1; break; case';': nPriority=0; } returnnPriority; } voidCompute(char*num1,char*num2,char*op,char*chResult) { doublefNum1,fNum2; doublefResult=0; fNum1=atof(num1); fNum2=atof(num2); switch(op[0]) { 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; } 计算机软件技术实验三 关系数据语言的应用 学院: 信息学院 班级: 自动化 姓名: 学号: 实验三: 关系数据语言的应用 一、实验目的: 掌握SQL基本语句,实现数据库、表的创建,以及增删改和查询操作。 二、实验内容: 1.创建数据库MyDB; 2.创建学生表Stu,内容包括: Sno、4个字符、主键,Sname、10个字符,Sex、2个字符,Age、整数,Birthday、日期型,Class、10个字符; 3.创建课程表Course,内容包括: Cno、2个字符、主键,Cname、10个字符,Chour、整型; 4.创建成绩表Score,内容包括: Sno、4个字符、主键,Cno、2个字符、主键,Grade、整型; 5.向各个数据表中插入多条实验数据,并查看操作后的结果; 1)按学号顺序查询一个班级的所有学生(Class,Sname); 2)列出学生选择各门课程的成绩(Sname,Cname,Grade); 3)列出有过不及格成绩的学生名单(Sno,Sname,Class); 4)求学生的平均成绩和总成绩(Sname,PJCJ,ZCJ); 5)查询学生出生日期(Sno,Sname,BirthDay); 6)查找各科成绩都>=85分的学生(Sname,Class); 7)将课程号为“01”的课程名称修改为“软件技术”; 8)修改一名学生的姓名、性别、年龄; 9)将成绩为55~59分的男生的成绩修改为60分; 10)删除90年以后、80年以前出生的学生的所有信息(包括选课和成绩); 11)删除一个班级的所有学生; 12)删除所有数据表和数据库 三、实验要求: 1.实现实验内容的SQL语句,以及输出结果 2.为检验实验内容的有效性而执行的SQL语句,例如向数据表中插入数据; 3.检验运行结果(例如插入、删除)的SQL语句,以及输出的结果。 四、实验代码清单: 1、创建三个表Stu、Course、Score CREATETABLEStu20134286( SnoCHAR(4)PRIMARYKEY, SnameCHAR(10), GenderCHAR (2), AgeNUMERIC, BirthDayDATETIME, ClassCHAR(10), ); CREATETABLECourse20134286( CnoCHAR (2)PRIMARYKEY, CnameCHAR(10), ChourNUMERIC, ); CREATETABLEScore20134286( SnoCHAR(4), CnoCHAR (2), PRIMARYKEY(Sno,Cno), GradeNUMERIC, ); 2、向Stu表中插入数据 InsertintoStu20134286(Sno,Sname,Gender,Age,BirthDay,Class) values('0101','ZhangQiang','m','20','1994-02-20','ZDH01'); InsertintoStu20134286(Sno,Sname,Gender,Age,BirthDay,Class) values('0102','LiHong','wm','20','1994-08-10','ZDH01'); InsertintoStu20134286(Sno,Sname,Gender,Age,BirthDay,Class) values('0103','WangTao','m','21','1993-05-18','ZDH01'); InsertintoStu20134286(Sno,Sname,Gender,Age,BirthDay,Class) values('0104','LiuLi','wm','19','1995-03-05','ZDH01'); InsertintoStu20134286(Sno,Sname,Gender,Age,BirthDay,Class) values('0105','SunDong','m','21','1993-12-17','ZDH01'); InsertintoStu20134286(Sno,Sname,Gender,Age,BirthDay,Class) values('0106','WangPing','m','22','1992-11-30','ZDH01'); InsertintoStu20134286(Sno,Sname,Gender,Age,BirthDay,Class) values('0201','OyangYan','wm','20','1994-04-11','DZ01'); InsertintoStu20134286(Sno,Sname,Gender,Age,BirthDay,Class) values('0202','YangRui','m','20','1994-05-13','DZ01'); InsertintoStu20134286(Sno,Sname,Gender,Age,BirthDay,Class) values('0203','LiuYan','wm','18','1996-01-21','DZ01'); InsertintoStu20134286(Sno,Sname,Gender,Age,BirthDay,Class) values('0204','ZhouYu','m','20','1994-07-10','DZ01'); 3、向Course表中插入数据 InsertintoCourse20134286(Cno,Cname,Chour) values('01','jsjrjjc','48'); InsertintoCourse20134286(Cno,Cname,Chour) values('02','Java','32'); 4、向Score表中插入成绩 InsertintoScore20134286(Sno,Cno,Grade) values('0101','01','87'); InsertintoScore20134286(Sno,Cno,Grade) values('0102','01','90'); InsertintoScore20134286(Sno,Cno,Grade) values('0103','01','79'); InsertintoScore20134286(Sno,Cno,Grade) values('0104','01','89'); InsertintoScore20134286(Sno,Cno,Grade) values('0105','01','58'); InsertintoScore20134286(Sno,Cno,Grade) values('0106','01','77'); InsertintoScore20134286(Sno,Cno,Grade) values('0201','01','95'); InsertintoScore20134286(Sno,Cno,Grade) values('0202','01','80'); InsertintoScore20134286(Sno,Cno,Grade) values('0203','01','76'); InsertintoScore20134286(Sno,Cno,Grade) values('0204','01','70'); InsertintoScore20134286(Sno,Cno,Grade) values('0101','02','91'); InsertintoScore20134286(Sno,Cno,Grade) values('0102','02','88'); InsertintoScore20134286(Sno,Cno,Grade) values('0103','02','75'); InsertintoScore20134286(Sno,Cno,Grade) values('0104','02','91'); InsertintoScore20134286(Sno,Cno,Grade) values('0105','02','76'); I
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 东北大学 计算机软件 基础 上机 实验