8.8上机实践源代码
c语言实践上机优秀综合设计源代码总结
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 前言:提供者:郁哲仅供参考,如有不足之处请见谅++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 题目:MP3system代码如下:#include<stdio.h>#include<string.h>#include<stdlib.h>#define NAME "sunzeng"#define CODE "200810404101"#define END "B Y E B Y E"#define N 5/*用来改变下载歌曲的数目*/#define M 10/*代表MP3中原有歌曲数目*/#define O 10/*用来改变屏保时倒计时的秒数*/#define P 4/*用来改变屏保时输出沙漏图案的高度*/#define Q 3/*关机倒计时的秒数*/#define R 3/*开机倒计时的秒数*/void enter(){int num=1;char name[30],code[20];while(num<=3){printf("Please input your usename:");scanf("%s",name);printf("Please input your code:");scanf("%s",code);if(strlen(name)<=20&&strlen(code)==12)if(strcmp(NAME,name)==0&&strcmp(CODE,code)==0){strcat(name,code);printf("Welcome to %s\n",name);break;}num++;if(num<=3)printf("Error!Please input again!\n");if(num>3)printf("You are not the use of this system!\n");}}struct MP3{char name[50];char lyric[100];double store;};typedef struct{ char name[50];char lyric[100];}SYSTEM;getmusic(SYSTEM *xt){int i=0;printf("Enter music name & lyric : \n");do{gets(xt[i].name);getchar();gets(xt[i].lyric);getchar();i++;}while(i<N);}getsore(SYSTEM *xt){int i,j,k;SYSTEM temp;for(i=0;i<N-1;i++){k=i;for(j=i+1;j<N;j++)if(strlen(xt[k].lyric)>strlen(xt[j].lyric))k=j;temp=xt[k];xt[k]=xt[i];xt[i]=temp;}}outmusic(SYSTEM *xt){int i;printf("After sorted play the loaded music:\n");for(i=0;i<N;i++){printf("The song name of %d is:%sThe lyric of song is:%s",i,xt[i].name,xt[i].lyric); printf("\n");}}void way(){printf("-----------------------------------------------------\n");printf("| §1 按歌词所占字节大小排列|\n"); printf("| §2 按歌曲所占内存大小排列|\n"); printf("| |\n"); printf("| |\n"); printf("| 请您选择|\n");printf("------------------------------------------------------\n");}void screen1(){printf("-------------------------------------\n");printf("| ************ |\n");printf("| ******** |\n");printf("| **** |\n");printf("| ** |\n");printf("| ** |\n");printf("| ****** |\n");printf("-------------------------------------\n");}void screen2(){printf("-----------------------------------\n");printf("| ***** @@ |\n");printf("| ***** * * |\n");printf("| * * * * |\n");printf("| * * * * |\n");printf("| * * * * |\n");printf("| @ @ * * |\n");printf("| @@ |\n");printf("-----------------------------------\n");}void Pscreen1(){int i;for(i=O;i>=0;i--){system("cls");printf("%d",i);_sleep(1000);}printf("\n");}void Pscreen2(){int i,j,k;for(i=0;i<=P;i++){for(j=0;j<=i;j++)printf(" ");for(k=0;k<=2*(P-i);k++)printf("* * ");printf("\n");}for(i=0;i<=P;i++){for(j=0;j<=P-i;j++)printf(" ");for(k=0;k<=2*i;k++)printf("* * ");printf("\n");}}void menu(){printf("---------------------------------------\n");printf("| §1 播放模式|\n");printf("| §2 录音模式|\n");printf("| §3 系统设置|\n");printf("| §4 电子书|\n");printf("| §5 关机|\n");printf("| |\n");printf("| 请您选择|\n");printf("----------------------------------------\n");}void play(){printf("---------------------------------------------------------------------------\n");printf(" PLAYING NOW \n");}{int j,k=12;char e;for(j=0;j<=10;j++){scanf("%c",&e);if(e=='+'){k++;printf("音量%d\n",k);getchar();}if(e=='-'){k--;printf("音量%d\n",k);getchar();}if(e!='+'&&e!='-')break;}}typedef struct{char s[100];double t;} L Y;recording(L Y *p){printf("----------------------\n");printf(" 正在录音\n");scanf("%s",p->s);p->t=strlen(p->s)/4.0;printf("----------------------\n");}void MP3system(){printf("---------------------------------------\n");printf("| §1 下载设置|\n"); printf("| §2 播放模式|\n"); printf("| §3 内存状况|\n"); printf("| §4 屏保设置|\n"); printf("| |\n"); printf("| 请您选择|\n"); printf("----------------------------------------\n");}{printf("-----------------------------------------------------\n");printf("| §1 下载电子书|\n"); printf("| §2 阅读电子书|\n"); printf("| |\n"); printf("| |\n"); printf("| 请您选择|\n");printf("------------------------------------------------------\n");}void Write(){FILE *fpout;char ch;if((fpout=fopen("abc.txt","w"))==NULL){printf("Can not open this file!\n");exit(0);}ch=getchar();while (ch!='@'){fputc(ch,fpout);ch=getchar();}fclose(fpout);}void Read(){FILE *fpin;char ch;if((fpin=fopen("abc.txt","r"))==NULL){printf("Can not open this file!\n");exit(0);}ch=fgetc(fpin);while(ch!=EOF){putchar(ch);ch=fgetc(fpin);}fclose(fpin);}{int i;for(i=Q;i>=0;i--){system("cls");printf("%d",i);_sleep(1000);}printf("\n");}void open(){int i;for(i=R;i>=0;i--){system("cls");printf("%d",i);_sleep(1000);}printf("\n");}int main(){int b,c,d,g,h,j,k,m,n,x,i=5;double str=0.0,st;char y[]={'W','E','L','C','O','M'};char f;SYSTEM xt[N],temp;struct MP3 sys[10]={{"Da yue zai dong ji","Ni de rou qing shi shui,ji du rang wo ai de chen zui.",5.89},{ "Bing yu","Leng leng de bing yu zai lian shang hu luan de pai",5.32},{"Ruo shui san qian","Ruo shui san qian deng dao ni de chu xian",6.54},{"Qing guo qing cheng","Shuo yi qing guo qing cheng bu bian de rong yan",6.81},{"Gu xiang","Tian bian xi yang zhai ci ying zhao wo de lian pang",5.42},{"Lan lian hua","Mei you shen me neng gou zhu dang,wo dui zi you de xiang wang.",7.13}, {"Lv xing","Zhan zai zhe cheng shi de ji jing zhong,rang yi qie xuan xiao zuo yuan.",6.98}, {"Xiao jiu wo","XIng fu kai shi you yu zhao,yuan fen rang wo men ",6.59},{"Jin tian","Pan le hao jiu zhong yu deng dao jin tian,meng le hao jiu zhong yu ba meng shi xian",7.63},{"Cha jian er guo","Shuo le bu xi huan,yi ge hua ti rao zhe wen.",6.41}};struct MP3 cha;L Y a;printf("Please enter this system by your name and code\n");open();getchar();screen1();/*进入时界面*/for(d=0;d<=5;d++)printf("%c ",y[d]);printf("\n");printf("请按任意键进入\n");getchar();menu();/*进入主功能菜单可以选择功能*/for(x=0;x<M;x++)/*使功能菜单可以多次被使用*/{scanf("%d",&c);switch(c){case 1: play();printf("THE %d of song is:%s\n",i,sys[i].name);printf("THE lyric of song is:%s\n",sys[i].lyric);printf(" 音量+ 音量- 上一首< 下一首> \n ");printf(" 请您选择\n");printf("---------------------------------------------------------------------\n");getchar();/*按任意键进入调节功能,先音量调节,后歌曲转换。
学生登陆界面源代码
<%@page contentType="text/html;charset=utf-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>学生登陆</title><style type="text/css"><!--#Layer1 {position:absolute;width:625px;height:29px;z-index:1;left: 333px;top: 71px;}.STYLE1 {font-size: 60px;color: #5D4328;}#Layer2 {position:absolute;width:268px;height:30px;z-index:2;left: 16px;top: 23px;}#Layer3 {position:absolute;width:200px;height:43px;z-index:3;left: 481px;top: 213px;}.STYLE3 {font-size: 62px}.STYLE4 {font-size: 24px}#Layer4 {position:absolute;width:329px;height:168px;z-index:3;left: 446px;top: 190px;}#Layer5 {position:absolute;width:200px;height:115px;z-index:3;left: 602px;top: 304px;}#Layer6 {position:absolute;width:391px;height:261px;z-index:3;left: 342px;top: 205px;}#Layer7 {position:absolute;width:207px;height:170px;z-index:4;left: 657px;top: 301px;}.STYLE5 {font-size: 24px;color: #996600;font-weight: bold;}.STYLE8 {font-size: 14px; }--></style><script type="text/javascript" src="../js/jquery-1.4.3.js"></script> <script type="text/javascript" >//标识各项是否通过var flag={"name":false,"password":false};$(function(){//用户email非空,格式检查$('#txtStudentname').blur(function(){$(this).html("");var emailTXT=$('#txtStudentname').val().trim();if(emailTXT==""){$("#name\\.info").html("name地址不能为空");return;}flag.email=true;$("#name\\.info").html("<imgsrc='../image/label3_s.gif'/>");});});//密码项:非空,长度6-20字符$(function(){$("#txtPassword").blur(function(){$("#password\\.info").html("");var passwordTXT=$("#txtPassword").val().trim();//检查非空if(passwordTXT==""){$("#password\\.info").html("密码不能为空");return;}});});//表单提交事件$("#f").submit(function(){var ok=flag.email&&flag.password;if(!flag.email){$('login\\.info').html("用户名不能为空");return;//不做任何处理或者给个操作提示}if(!flag.password){$('login\\.info').html("密码不能为空");return;//不做任何处理或者给个操作提示}return true;} );</script></head><body><form action="../student/login.action" method="post" id="f"><table width="1189" height="460" bordercolor="#03BAa0"><tr><td height="152" colspan="3"><img src="../image/title.jpg"width="1217" height="147" /><div id="Layer2"><strong>欢迎您!</strong></div><divclass="STYLE1" id="Layer1"><div align="center"><strong><span class="STYLE3">C</span>语言考试系统</strong></div></div></td></tr><tr><td> </td><td width="398" bgcolor="#03BAa0"><div align="center" class="STYLE5"> <div align="center">学生登陆</div></div></td><form id="form1" name="form1" method="post"action="../student/login.action"><td height="79"> </td></tr><tr align="center"><td width="382" rowspan="2"> </td><td height="150" bgcolor="#03BAa0"><p align="center" class="STYLE8">用户名<input type="text" name="name" id="txtStudentname" /><a id="" style="color:red"></a></p><p align="center" class="STYLE4"><span class="STYLE8">密码<input type="text" name="password" id="txtPassword" /><a id="" style="color:red"></a></span></p></td><td width="403" height="325" rowspan="2"><div align="center"></div> <div align="center"></div></td></tr><tr align="center"><td height="23" bgcolor="#03BAa0"><div align="center"><input type="submit" bgcolor="#03BAa0" name="Submit" value="提交" /> <input type="submit" bgcolor="#03BAa0"name="Reset" value="取消" /><span id="" style="color:red"></span></div></td></tr><tr><td colspan="3" bgcolor="#03BAC9"><span class="STYLE4">太原师范计算机系</span></td></tr></table></body></html>。
数据库原理上机实验代码及截图
- 《数据库原理》上机实验报告2017年11月一、实验目的与要求:●熟练使用SQL定义子语言、操纵子语言命令语句●掌握关系模型上的完整性约束机制●掌握一定的数据库管理技术●能完成简单的数据库应用开发二、实验容1、实验一到实验十七(一)数据定义子语言实验(2学时)实验1:利用SQL语句创建Employee数据库代码如下:create database Employee;运行结果:实验2:利用SQL语句在Employee数据库中创建人员表person、月薪表salary及部门表dept, 暂不定义外键约束。
要求:按表1、表达、表3中的字段说明创建表1 person表结构表2 salary表结构表3 dept表结构代码如下:create table person(P_no char(6) not null primary key,P_name varchar(10) not null,Sex char(2) not null,Birthdate datetime null,Prof varchar(10) null,Deptno char(4) not null);create table salary(P_no char(6) not null primary key,Base dec(5) null,Bonus dec(5) null,Fact dec(5) null,Month int not null);create table dept(Deptno char(4) not null primary key,Dname varchar(10) not null);运行结果:(二)数据操纵子语言实验(4学时)实验3:利用SQL语句向表person、salary和dept中插入数据。
要求:按表4、表5、表6中的数据插入。
表4 表person中的数据P_no P_name Sex BirthDate Prof Deptno 000001 王云男1973-4-7 中级0001 000002 志文男1975-2-14 中级0001代码如下:insert into person (P_no,P_name,Sex,Birthdate,Prof,Deptno) values ('000001','王云','男','1973-4-7','中级','0001')insert into person (P_no,P_name,Sex,Birthdate,Prof,Deptno) values ('000002','志文','男','1975-2-14','中级','0001')insert into person (P_no,P_name,Sex,Birthdate,Prof,Deptno) values ('000003','浩然','男','1970-8-25','高级','0002')insert into person (P_no,P_name,Sex,Birthdate,Prof,Deptno) values ('000004','廖小玲','女','1979-8-6','初级','0002')insert into person (P_no,P_name,Sex,Birthdate,Prof,Deptno) values ('000005','梁玉琼','女','1970-8-25','中级','0003')insert into person (P_no,P_name,Sex,Birthdate,Prof,Deptno) values ('000006','罗向东','男','1979-5-11','初级','0003')insert into person (P_no,P_name,Sex,Birthdate,Prof,Deptno) values ('000007','尚家庆','男','1963-7-14','高级','0003')运行结果:表5 表salary中的数据P_no Base Bonus Fact S_month 000001 2100 300 1000002 1800 300 1000003 2800 280 1000004 2500 250 1000005 2300 275 1000006 1750 130 1000007 2400 210 1代码如下:insert into salary (P_no,Base,Bonus,Fact,Month) values ('000001',2100,300,2100+300,1) insert into salary (P_no,Base,Bonus,Fact,Month) values ('000002',1800,300,1800+300,1) insert into salary (P_no,Base,Bonus,Fact,Month) values ('000003',2800,280,2800+280,1) insert into salary (P_no,Base,Bonus,Fact,Month) values ('000004',2500,250,2500+500,1) insert into salary (P_no,Base,Bonus,Fact,Month) values ('000005',2300,275,2300+275,1) insert into salary (P_no,Base,Bonus,Fact,Month) values ('000006',1750,130,1750+130,1) insert into salary (P_no,Base,Bonus,Fact,Month) values ('000007',2400,210,2400+210,1)运行结果:表6 表dept中的数据Deptno Dname0001 人事部0002 财务部0003 市场部代码如下:insert into dept (Deptno,Dname) values ('0001','人事部')insert into dept (Deptno,Dname) values ('0002','财务部')insert into dept (Deptno,Dname) values ('0003','市场部')运行结果:实验4:(1)利用SQL语句修改表中的数据。
数据结构上机实验源代码
数据结构上机实验源代码栈的应用十进制数转换为八进制数,逆序输出所输入的数实验代码://stack.h,头文件class stack{public:stack();bool empty()const;bool full()const;error_code gettop(elementtype &x)const;error_code push(const elementtype x);error_code pop();private:int count;elementtype data[maxlen];};stack::stack(){count=0;}bool stack::empty()const{return count==0;}bool stack::full()const{return count==maxlen;}error_code stack::gettop(elementtype &x)const{if(empty())return underflow;else{x=data[count-1];return success;}}error_code stack::push(const elementtype x){if(full())return overflow;data[count]=x;count++;return success;}error_code stack::pop(){if(empty())return underflow;count--;return success;}//主程序#include<iostream.h>enum error_code{overflow,underflow,success};typedef int elementtype;const int maxlen=20;#include"stack.h"void read_write() //逆序输出所输入的数{stack s;int i;int n,x;cout<<"please input num int n:";cin>>n;for(i=1;i<=n;i++){cout<<"please input a num:";cin>>x;s.push(x);}while(!s.empty()){s.gettop(x);cout<<x<<" ";s.pop();}cout<<endl;}void Dec_to_Ocx(int n) //十进制转换为八进制{stack s1;int mod,x;while(n!=0){mod=n%8;s1.push(mod);n=n/8;}cout<<"the ocx of the dec is:";while(!s1.empty()){s1.gettop(x);cout<<x;s1.pop();}cout<<endl;}void main(){int n;// read_write();cout<<"please input a dec:";cin>>n;Dec_to_Ocx(n);}队列的应用打印n行杨辉三角实验代码://queue.hclass queue{public:queue(){count=0;front=rear=0;}bool empty(){return count==0;}bool full(){return count==maxlen-1;}error_code get_front(elementtype &x){if(empty())return underflow;x=data[(front+1)%maxlen];return success;}error_code append(const elementtype x){if(full())return overflow;rear=(rear+1)%maxlen;data[rear]=x;count++;return success;}error_code serve(){if(empty())return underflow;front=(front+1)%maxlen;count--;return success;}private:int count;int front;int rear;int data[maxlen];};//主程序#include<iostream.h>enum error_code{overflow,underflow,success};typedef int elementtype;const int maxlen=20;#include"queue.h"void out_number(int n) //打印前n行的杨辉三角{int s1,s2;int i;int j;int k;queue q;for(i=1;i<=(n-1)*2;i++)cout<<" ";cout<<"1 "<<endl;q.append(1);for(i=2;i<=n;i++){s1=0;for(k=1;k<=(n-i)*2;k++)cout<<" ";for(j=1;j<=i-1;j++){q.get_front(s2);q.serve();cout<<s1+s2<<" ";q.append(s1+s2);s1=s2;}cout<<"1 "<<endl;q.append(1);}}void main(){int n;cout<<"please input n:";cin>>n;out_number(n);}单链表实验实验目的:实验目的(1)理解线性表的链式存储结构。
8软件设计模式实验八代码
get { return requestContent; } set { requestContent = value; } }
//数量 private int number; public int Number {
} } } class President : Manager //院长 { public President(string name)
: base(name) {} public override void RequestApplications(Request request) {
if (request.RequestType == "请假" && request.Number <= 30) {
Request request = new Request();
request.RequestType = "请假"; request.RequestContent = "小明请假"; request.Number = 7; pxb.RequestApplications(request); Request request2 = new Request(); request2.RequestType = "请假"; request2.RequestContent = "小红请假"; request2.Number = 100; xj.RequestApplications(request2); Request request3 = new Request(); request3.RequestType = "请假"; request3.RequestContent = "小化请假"; request3.Number = 400; pxb.RequestApplications(request3); Console.Read(); } } }
操作系统实验参考代码
目录实验一WINDOWS进程初识 (2)实验二进程管理 (6)实验三进程同步的经典算法 (10)实验四存储管理 (14)试验五文件系统试验 (18)实验有关(参考)代码实验一WINDOWS进程初识1、实验目的(1)学会使用VC编写基本的Win32 Consol Application(控制台应用程序)。
(2)掌握WINDOWS API的使用方法。
(3)编写测试程序,理解用户态运行和核心态运行。
2、程序清单清单1-1 一个简单的Windows控制台应用程序// hello项目# include <iostream>void main(){std::cout << “Hello, Win32 Consol Application” << std :: endl ;}清单1-2 核心态运行和用户态运行时间比计算// proclist项目# include <windows.h># include <tlhelp32.h># include <iostream.h>// 当在用户模式机内核模式下都提供所耗时间时,在内核模式下进行所耗时间的64位计算的帮助方法DWORD GetKernelModePercentage(const FILETIME& ftKernel,const FILETIME& ftUser){// 将FILETIME结构转化为64位整数ULONGLONG qwKernel=(((ULONGLONG)ftKernel.dwHighDateTime)<<32)+ftKernel.dwLowDateTime;ULONGLONG qwUser=(((ULONGLONG)ftUser.dwHighDateTime)<<32)+ftUser.dwLowDateTime;// 将消耗时间相加,然后计算消耗在内核模式下的时间百分比ULONGLONG qwTotal=qwKernel+qwUser;DWORD dwPct=(DWORD)(((ULONGLONG)100*qwKernel)/qwTotal);return(dwPct);}// 以下是将当前运行过程名和消耗在内核模式下的时间百分数都显示出来的应用程序void main(int argc,char *argv[]){if(argc<2){cout<<"请给出你要查询的程序名"<<endl;exit(0);}// 对当前系统中运行的过程拍取“快照”HANDLE hSnapshot=::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,// 提取当前过程0);// 如果是当前过程,就将其忽略// 初始化过程入口PROCESSENTRY32 pe;::ZeroMemory(&pe,sizeof(pe));pe.dwSize=sizeof(pe);BOOL bMore=::Process32First(hSnapshot,&pe);BOOL found = FALSE;while(bMore){// 打开用于读取的过程if(!strcmp(pe.szExeFile,argv[1])){found = TRUE;HANDLE hProcess=::OpenProcess(PROCESS_QUERY_INFORMA TION,// 指明要得到信息FALSE,// 不必继承这一句柄pe.th32ProcessID);// 要打开的进程if (hProcess!=NULL){// 找出进程的时间FILETIME ftCreation,ftKernelMode,ftUserMode,ftExit;::GetProcessTimes(hProcess,// 所感兴趣的进程&ftCreation,// 进程的启动时间&ftExit,// 结束时间(如果有的话)&ftKernelMode,// 在内核模式下消耗的时间&ftUserMode);// 在用户模式下消耗的时间// 计算内核模式消耗的时间百分比DWORD dwPctKernel=::GetKernelModePercentage(ftKernelMode,// 在内核模式上消耗的时间ftUserMode);// 在用户模式下消耗的时间// 向用户显示进程的某些信息cout<< "process ID: " << pe.th32ProcessID<< ",EXE file:" << pe.szExeFile<< ",%d in Kernel mode: " << dwPctKernel << endl;// 消除句柄::CloseHandle(hProcess);}}// 转向下一个进程bMore=::Process32Next(hSnapshot,&pe);}if(found==FALSE){cout<<"当前系统没有这个可执行程序正在运行"<<endl;exit(0);}}清单1-3 核心态运行和用户态运行时间测试程序#include <stdio.h>main(){int i,j;while(1){for(i=0;i<1000;i++);for(j=1;j<1000;j++) printf(“enter kernel mode running.”);}}实验二进程管理1、实验目的1) 通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟悉操作系统的进程概念,理解Windows进程的“一生”。
操作系统实训过程代码
实训过程(步骤)或程序代码:#include <stdio.h>#include <stdlib.h>/*----------------------常量定义--------------------*/#define F 0#define T 1#define n 5 //进程数量#define m 4 //资源种类数量/*--------------------------------------------------*//*--------------------数据结构定义------------------*/int Available[m]={3,3,2}; //可用资源int Finish[n]; //用以判断系统是否有足够资源分给相应进程void Recycle(); //若进程运行完资源回收int backDos(); //判断所有进程是否运行完,完后返回操作系统/*--------------------------------------------------*//*-----------------------进程-----------------------*/struct PCB{ int flag; //状态标志,是否运行完int Max[m]; //资源最大需求量int Allocation[m]; //已分配资源int Need[m]; //还需要的资源int Request[m]; //请求资源量}P[n];/*-----------------------函数声明--------------------*/int tryAdminister(int num);//试分配void safeCheck(int num); //安全性检查void Print(); //状态输出/*主函数(只需改变n、m和下面的初始数组便可形成新的进程量,资源量和状态)*/ int main(){ int i, j, num;int total[n][m]={{7,5,3,1},{3,2,2,1},{9,0,2,2},{2,2,2,1},{4,3,3,3}};int have[n][m]={{0,1,0,0},{2,0,0,0},{3,0,2,2},{2,1,1,0},{0,0,2,1}};int want[n][m]={{7,4,3,0},{1,2,2,1},{6,0,0,0},{0,1,1,1},{4,3,1,2}};for (i=0;i<n;i++) //初始化进程资源分配状态for (j=0;j<m;j++){ P[i].flag = F;P[i].Max[j]=total[i][j];P[i].Allocation[j]=have[i][j];P[i].Need[j]=want[i][j];}Print(); //状态输出while (scanf("%d",&num)!=EOF){ printf("输入进程%d对这三类资源的需求向量(用空格隔开):\n",num);scanf("%d%d%d",&P[num].Request[0],&P[num].Request[1],&P[num].Request[2], &P[num].Request[3]);if (tryAdminister(num)==T)safeCheck(num);Recycle(); //资源回收if(backDos()==T) //所有进程完则返回操作系统return 0;Print();}return 0;}/*--------------------------------------------------------------------*//*----------------------------试分配函数-----------------------------*/int tryAdminister(int num) //试分配{ int j;for (j=0;j<m;j++)if (P[num].Request[j]>P[num].Need[j])printf("非法请求!\n\n");return F;}else if (P[num].Request[j]>Available[j]){ printf("%d号资源不够,无法分配,进程%d等待。
操作系统上机实验代码
操作系统上机实验代码修改后的md命令程序:int MdComd(int k) //md命令处理函数{// 命令形式:md <目录名>// 功能:在指定路径下创建指定目录,若没有指定路径,则在当前目录下创建指定目录。
// 对于重名目录给出错误信息。
目录与文件也不能重名。
// 学生可以考虑命令中加“属性”参数,用于创建指定属性的子目录。
命令形式如下:// md <目录名>[ <属性>]// 属性包括R、H、S以及它们的组合(不区分大小写,顺序也不限)。
例如:// md user rh// 其功能是在当前目录中创建具有“只读”和“隐藏”属性的子目录user。
short i,s,s0,kk;char attrib=(char)16,*DirName;FCB *p;char str[20]="|";kk=SIZE/sizeof(FCB);if (k<1){cout<<"\错误:命令中没有目录名。
\";return -1;}if (k>2){cout<<"\错误:命令参数太多。
\";return -1;}s=ProcessPath(comd[1],DirName,k,0,attrib);if (s<0)return s; //失败,返回if (!IsName(DirName)) //若名字不符合规则{cout<<"\命令中的新目录名错误。
\";return -1;}i=FindFCB(DirName,s,attrib,p);if (i>0){cout<<"\错误:目录重名!\";return -1;}if (k==2) //命令形式:md <目录名> <属性符>{i=GetAttrib(strcat(str,comd[2]),attrib);//由i=GetAttrib(comd[2],attrib);if (i<0)return i;}s0=FindBlankFCB(s,p);//找空白目录项if (s0<0) //磁盘满return s0;s0=M_NewDir(DirName,p,s,attrib); //在p所指位置创建一新子目录项if (s0<0) //创建失败{cout<<"\磁盘空间已满,创建目录失败。
网页源代码实验报告
一、实验目的1. 理解网页的基本结构和组成。
2. 掌握HTML、CSS和JavaScript等网页编程语言的基本语法。
3. 能够通过查看和分析网页源代码,了解网页的设计和实现方法。
4. 提高对网页性能和优化的认识。
二、实验环境1. 操作系统:Windows 102. 浏览器:Chrome3. 编程软件:Sublime Text三、实验内容1. HTML实验(1)创建一个简单的HTML页面,包含标题、段落、列表、图片等元素。
代码如下:```html<!DOCTYPE html><html><head><title>我的第一个网页</title></head><body><h1>欢迎来到我的网页</h1><p>这是一个段落。
</p><ul><li>列表项1</li><li>列表项2</li><li>列表项3</li></ul><img src="image.jpg" alt="这是一张图片"></body></html>```(2)将HTML页面保存为“index.html”,并使用浏览器打开,查看效果。
2. CSS实验(1)为上述HTML页面添加CSS样式,实现以下效果:- 标题居中显示。
- 段落文字加粗、颜色为红色。
- 列表项背景色为浅灰色。
- 图片宽度为200像素。
代码如下:```cssbody {text-align: center;}p {font-weight: bold;color: red;}ul li {background-color: lightgray;}img {width: 200px;}```(2)将CSS样式保存为“style.css”,并在HTML页面的`<head>`标签中引入。
上机实践源代码
上机实践源代码1.操作teacher表(1)首先创建数据库school,代码如下:CREATE DATABASE school;(2)创建teacher表,代码如下:CREATE TABLE teacher(id INT(4) NOT NULL UNIQUE PRIMARY KEY AUTO_INCREMENT,num INT(10) NOT NULL UNIQUE ,name VARCHAR(20) NOT NULL ,sex VARCHAR(4) NOT NULL ,birthday DATETIME ,address VARCHAR(50));(3)将teacher表的name字段的数据类型改为VARCHAR(30),代码如下:ALTER TABLE teacher MODIFY name VARCHAR(30) NOT NULL;(4)将birthday字段的位置改到sex字段的前面,代码如下:ALTER TABLE teacher MODIFY birthday DATETIME AFTER name;(5)将num字段改名为t_id,代码如下:ALTER TABLE teacher CHANGE num t_id INT(10) NOT NULL;(6)将teacher表的address字段删除,代码如下:ALTER TABLE teacher DROP address;(7)在teacher表中增加名为wages的字段,数据类型为FLOAT,代码如下:ALTER TABLE teacher ADD wages FLOAT;(8)将teacher表改名为teacherInfo,代码如下:ALTER TABLE teacher RENAME teacherInfo;(9)将teacher表的存储引擎更改为MyISAM类型,代码如下:ALTER TABLE teacherInfo ENGINE=MyISAM;2.操作department表和worker表(1)创建department表,代码如下:CREATE TABLE department(d_id INT(4) NOT NULL UNIQUE PRIMARY KEY ,d_name VARCHAR(20) NOT NULL UNIQUE ,function VARCHAR(50) ,address VARCHAR(50));(2)创建worker表,代码如下:CREATE TABLE worker (id INT(4) NOT NULL UNIQUE PRIMARY KEY AUTO_INCREMENT,num INT(10) NOT NULL UNIQUE ,d_id INT(4) ,name VARCHAR(20) NOT NULL ,sex VARCHAR(4) NOT NULL ,birthday DATE ,address VARCHAR(50) ,CONSTRAINT worker_fk FOREIGN KEY (d_id) REFERENCES department (d_id));(3)删除department表,代码如下:DROP TABLE department;4)删除worker表的外键约束,代码如下:ALTER TABLE worker DROP FOREIGN KEY worker_fk;(5)重新删除department表,代码如下:DROP TABLE department;。
操作系统实习报告(源代码)
#define false 0#define true 1#include "stdio.h"typedef struct{char name[3]; /*文件或目录名*/char type[2]; /*文件类型名*/char attribute; /*属性*/char address; /*文件或目录的起始盘块号*/char length; /*文件长度,以盘块为单位*/}content; /*目录结构*/#define n 5 /*模拟实验中系统允许打开文件的最大数量*/typedef struct{int dnum; /*磁盘盘块号*/int bnum; /*盘块内第几项*/}pointer; /*已打开文件表中读写指针的结构*/typedef struct{char name[20]; /*文件绝对路径名*/char attribute;/*文件的属性,用1个字节表示,所以用了char类型*/int number; /*文件起始盘块号*/int length; /*文件长度,文件占用的字节数*/int flag; /*操作类型,用"0"表示以读操作方式开文件,用"1"表示写操作方式打开文件*/ pointer read; /*读文件的位置,文件刚打开时dnum为文件起始盘块号,bnum为"0"*/ pointer write; /*写文件的位置,文件建立时dnum为文件起始盘块号,bnum为"0",打开时为文件末尾*/}OFILE; /*已打开文件表项类型定义*/struct{OFILE file[n]; /*已打开文件表*/int length; /*已打开文件表中登记的文件数量*/}openfile; /*已打开文件表定义*/char buffer1[64];/*模拟缓冲1*/content buffer2[8];/*模拟缓冲2*/FILE *fc; /*模拟磁盘的文件指针*/void copen(OFILE *x1,OFILE *x2)OFILE *x1,*x2;{strcpy(x1->name,x2->name);x1->attribute=x2->attribute;x1->number=x2->number;x1->length=x2->length;x1->flag=x2->flag;x1->read.dnum=x2->read.dnum;x1->read.bnum=x2->read.bnum;x1->write.dnum=x2->write.dnum;x1->write.bnum=x2->write.bnum;}sopen(name)/*在已打开文件表中查找文件name*/char *name;{int i;i=0;while(i<openfile.length&&strcmp(openfile.file[i].name,name)!=0)/*依次查找已打开文件表*/i++;if(i>=openfile.length)return(-1);return(i);}/*查找sopen函数结束*/dopen(name)/*在已打开文件表中删除文件name*/char *name;{int i;i=sopen(name);if(i==-1)printf("文件未打开/n");else{copen(&openfile.file[i],&openfile.file[openfile.length-1]);openfile.length--;}}/*删除函数结束*/iopen(x)/*在已打开文件表中插入文件name*/content *x;{int i;i=sopen(x->name);if(i!=-1){printf("文件已经打开/n");return(false);}else if(openfile.length==n){printf("已打开文件表已满/n");return(false);}else{copen(&openfile.file[openfile.length],x);openfile.length++;return(true);}}/*填写已打开文件表函数结束*/allocate( )/*分配一个磁盘块,返回块号*/{int i;fseek(fc,0,SEEK_SET); /*将模拟磁盘的文件指针移至模拟磁盘FAT表*/fread(buffer1,64L,1,fc);/*将FAT表中第一个磁盘块读入模拟缓冲buffer1中*/for(i=3;i<63;i++)if(buffer1[i]==0){ /*FAT中的第i项为0,分配第i块磁盘块,修改FAT表,并且写回磁盘*/buffer1[i]=255;fseek(fc,0,SEEK_SET);fwrite (buffer1,64L,1,fc);return(i); /*返回磁盘号*/}fread(buffer1,64L,1,fc);/*将FAT表中第二个磁盘块读入模拟缓冲buffer1中*/for(i=0;i<63;i++)if(buffer1[i]==0){/*FAT中的第i项为0,分配第i+64块磁盘块,修改FAT表,并且写回磁盘*/ buffer1[i]=255;fseek(fc,-64L,SEEK_CUR);fwrite(buffer1,64L,1,fc);return(i+64); /*返回磁盘号*/}printf("已经没有磁盘空间/n");return(false);}/*分配磁盘块函数结束*/read_file(name,length)/*读文件函数,文件路径名name,读取长度length*/char *name;int length;{int i,t;char ch;if((i=sopen(name))==-1){printf("文件没有打开或不存在/n");return(false);}if(openfile.file[i].flag==1){printf("文件以写方式打开,不能读/n");return(false);}t=0;fseek(fc,openfile.file[i].read.dnum*64L,SEEK_SET);fread(buffer1,64,1,fc);while(t<length&&buffer1[openfile.file[i].read.bnum]!='#'){putchar(buffer1[openfile.file[i].read.bnum]);/*读出一个字符(这里是在屏幕上显示)*/if((t+1)%64==0)putchar('/n');/*修改读指针*/openfile.file[i].read.bnum++;if(openfile.file[i].read.bnum>=64)/*一块读完,读取下一个盘块*/{fseek(fc,openfile.file[i].read.dnum/64*64, SEEK_SET);fread(buffer1,64,1,fc);openfile.file[i].read.dnum=buffer1[openfile.file[i].read.dnum%64];/*修改读指针*/openfile.file[i].read.bnum=0;fseek(fc,openfile.file[i].read.dnum*64L,SEEK_SET);fread(buffer1,64,1,fc);/*读取下一个*/}t++;}}/*读函数结束*/write_file(name,buff,length)/*写文件函数*/char *name;/*文件路径名*/char *buff;/*存放准备写入磁盘的内容*/int length;/*写入内容的长度*/{int i,t,dd;if((i=sopen(name))==-1)/*文件不存在,无法写*/{printf("文件没有打开或不存在/n");return(false);}if(openfile.file[i].flag==0){printf("文件以读方式打开,不能写/n");return(false);}t=0;fseek(fc,openfile.file[i].write.dnum*64L, SEEK_SET);fread(buffer1,64,1,fc);while(t<length){buffer1[openfile.file[i].write.bnum]=buff[t];openfile.file[i].write.bnum++;openfile.file[i].length++;if(openfile.file[i].write.bnum>=64){fseek(fc, openfile.file[i].write.dnum*64L, SEEK_SET);fwrite(buffer1,64,1,fc);/*一块写完,写回磁盘*/if((dd=allocate())==false){openfile.file[i].write.bnum--;openfile.file[i].length--;printf("无磁盘空间,部分信息丢失,写失败/n");return(false);}/*if*/fseek(fc,openfile.file[i].write.dnum/64*64L, SEEK_SET);fread(buffer1,64,1,fc);buffer1[openfile.file[i].write.dnum%64]=dd;fseek(fc,openfile.file[i].write.dnum/64*64L, SEEK_SET);fwrite(buffer1,64,1,fc);openfile.file[i].write.dnum=dd;openfile.file[i].write.bnum=0;}/*if*/t++;}/*while*/fseek(fc, openfile.file[i].write.dnum*64L, SEEK_SET);fwrite(buffer1,64,1,fc);/*一块写完,写回磁盘*/}/*写函数结束*/search(name,flag,dnum,bnum)/*查找路径名为name的文件或目录,返回该目录的起始盘块号*/char *name;int flag; /*flag=8表示查找目录,否则为文件*/int *dnum,*bnum;/*返回找到文件或目录的目录项的位置:盘块dnum中第bnum项*/ {int k,i,s,t,j,last=0;char pna[3],type[2];if((strcmp(name,"")==0)||(strcmp(name,"/")==0))/*根目录*/return(2);k=0;if(name[0]=='/')k=1;i=2; /*i=根目录的起始盘块号*/while(last!=1){/*pna=从name中分离出"/"后一个目录名(或文件名)*/for(s=0;name[k]!='.'&&name[k]!='/'&&s<3&&name[k]!='/0';s++,k++)pna[s]=name[k];for(;s<3;s++)/*用空格补全名字长度*/pna[s]=' ';while(name[k]!='.'&&name[k]!='/0'&&name[k]!='/')/*除去多余字符*/k++;type[0]=type[1]=' ';if(name[k]=='.')/*取文件类型名type*/if(flag==8){printf("目录不应该有有类型名,查找失败/n");return(false);}else{/*文件遇到类型名认为结束,后面的字符作废*/k++;if(name[k]!='/0')type[0]=name[k];k++;if(name[k]!='/0')type[1]=name[k];if(name[k]!='/0'&&name[k+1]!='/0'){printf("文件名错误/n");return(false);}last=1;}elseif(name[k]!='/0')k++;if(name[k]=='/0')last=1;/*查找目录且名字等于pna的目录项*/fseek(fc,i*64L,SEEK_SET);fread(buffer2,64L,1,fc);j=0;if(last==1&&flag!=8)while(j<8&&!(buffer2[j].attribute!=8&&buffer2[j].name[0]==pna[0]&&buffer2[j].name[1]==pna[1]&&buffer2[j].name[2]==pna[2]&&buffer2[j].type[0]==type[0]&&buffer2[j].type[1]==type[1]))j++;elsewhile(j<8&&!(buffer2[j].attribute==8&&buffer2[j].name[0]==pna[0]&&buffer2[j].name[1]= =pna[1]&&buffer2[j].name[2]==pna[2]))j++;if(j<8)/*找到该目录或文件*/if(last==1)/*查找结束*/{*dnum=i;*bnum=j;return(buffer2[j].address);}else/*查找还未结束*/i=buffer2[j].address;/*读取下一个盘块*/elsereturn(false);}/*while 查找结束*/}/*search()结束*/create_file(name,attribute)/*建立文件函数,路径名name,文件属性attribute*/char *name;int attribute;{int dnum,bnum,i,j,last,k,s,d,t,tt,b,dd,flag,dn,bn;char dname[3],tname[2],pathname[20];OFILE x;if(attribute%2==1){printf("只读文件,无法写,不能建立/n");return(false);}if(openfile.length==n){printf("已打开表已满,不能建立/n");return(false);}/* 将name分成两部分,目录路径pathname和目录名dname*/for(j=0;name[j]!='/0';j++)/*查找最后一个"/"*/if(name[j]=='/')s=j;/*分离目录路径*/for(j=0;j<s;j++)pathname[j]=name[j];pathname[j]='/0';/*分离文件名*/for(k=0,j=s+1;name[j]!='/0'&&k<3&&name[j]!='.';j++,k++)dname[k]=name[j];if(k==0){printf("错误文件名或目录名/n");return(false);}for(;k<3;k++)dname[k]=' ';k=0;if(name[j++]=='.')/*分离类型名*/{for(;name[j]!='/0'&&k<2&&name[j]!='.';j++,k++)tname[k]=name[j];}for(;k<2;k++)tname[k]=' ';if((d=search(pathname,8,&dn,&bn))==false)/*找到目录路径,返回该目录所在块号dn 和项数bn*/{printf("目录不存在,不能建立");return(false);}/*确认该目录不存在的同时查找空目录项*/b=-1;fseek(fc,d*64L,SEEK_SET);fread(buffer2,64L,1,fc); /*读出dnum盘块的内容*/for(t=0;t<8;t++){if(buffer2[t].name[0]==dname[0]&&buffer2[t].name[1]==dname[1]&&buffer2[t].name[2]== dname[2]&&buffer2[t].type[0]==tname[0]&&buffer2[t].type[1]==tname[1]){/*找到名字dname的文件,建立失败*/printf("文件已经存在,不能建立/n");return(false);}if(buffer2[t].name[0]=='$'&&b==-1)b=t;}/*for*/if(b==-1)/*没有空目录项,建立失败*/{printf("目录无空间/n");return(false);}if((dd=allocate( ))==false)/*分配给建立目录的磁盘盘块dd*/{printf("建立文件失败/n");return(false);}/*填写目录项*/for(i=0;i<3;i++)buffer2[b].name[i]=dname[i];for(i=0;i<2;i++)buffer2[b].type[i]=tname[i];buffer2[b].attribute=attribute;buffer2[b].address=dd;buffer2[b].length=0;fseek(fc,d*64L,SEEK_SET);fwrite(buffer2,64L,1,fc);/*填写已打开文件表*/strcpy(,name);x.attribute=attribute;x.number=dd;x.length=0;x.flag=1;x.read.dnum=x.write.dnum=dd;x.read.bnum=x.write.bnum=0;iopen(&x);}/*建立文件结束*/open_file(name,attribute)/*打开文件函数*/char *name;int attribute;{OFILE x;int dnum,bnum,last,i,d;if((d=search(name,4,&dnum,&bnum))==false){printf("文件不存在,打开操作失败/n");return(false);}fseek(fc,dnum*64L,SEEK_SET);/*读出对应目录项*/fread(buffer2,64,1,fc);if((buffer2[bnum].attribute%2==1)&& attribute==1)/*对只读文件要求写*/ {printf("文件不能写,打开失败");return(false);}strcpy(,name);x.attribute=buffer2[bnum].attribute;x.number=buffer2[bnum].address;x.read.dnum=x.write.dnum=buffer2[bnum].address;x.read.bnum=x.write.bnum=0;x.flag=attribute;if(attribute==1){while(d!='/xff')/*寻找文件末尾*/{fseek(fc, d/64*64L, SEEK_SET);fread(buffer1,64L,1,fc);/*读出dnum项所在FAT*/last=d;d=buffer1[d%64];/*读出dnum块下一块内容赋给dnum*/ }/*while*/x.write.dnum=last;/*填写写指针*/fseek(fc, last*64L, SEEK_SET);fread(buffer1,64L,1,fc);for(i=0;i<64&&buffer1[i]!='#';i++);x.write.bnum=i;x.length=(buffer2[bnum].length-1)*64+i;}iopen(&x);/*填写已打开文件表*/}close_file(name)/*关闭文件函数*/char *name;{int i,dnum,bnum;if((i=sopen(name))==-1){printf("打开的文件中没有该文件,关闭失败/n");return(false);}if(openfile.file[i].flag==1)/*写文件的追加文件结束符*/{fseek(fc,openfile.file[i].write.dnum*64L, SEEK_SET);fread(buffer1,64,1,fc);buffer1[openfile.file[i].write.bnum]='#';fseek(fc,openfile.file[i].write.dnum*64L, SEEK_SET);fwrite(buffer1,64,1,fc);fputc('#',fc);search(name,4,&dnum,&bnum);/*查找该文件目录位置*//*修改目录中的文件长度*/fseek(fc,dnum*64L, SEEK_SET);fread(buffer2,64,1,fc);buffer2[bnum].length=openfile.file[i].length/64+1;fseek(fc, dnum*64L, SEEK_SET);fwrite(buffer2,64,1,fc);}/*在已打开文件表中删除该文件的登记项*/if(openfile.length>1)copen(&openfile.file[i],&openfile.file[openfile.length-1]);openfile.length--;}delete(name)/*删除文件*/char *name;{int dnum,bnum,t;if((t=search(name,4,&dnum,&bnum))==false){printf("文件不存在/n");return(false);}if(sopen(name)!=-1){printf("该文件打开,不能删除/n");return(false);}fseek(fc,dnum*64L, SEEK_SET);fread(buffer2,64,1,fc);buffer2[bnum].name[0]='$';/*将该文件的目录置成空目录*/fseek(fc,dnum*64L, SEEK_SET);fwrite(buffer2,64,1,fc);while(t!='/xff')/*通过FAT查找每一个盘块号,并依次删除*/{dnum=t;fseek(fc, dnum/64*64, SEEK_SET);fread(buffer1,64,1,fc);t=buffer1[dnum%64];buffer1[dnum%64]=0;fseek(fc, dnum/64*64L, SEEK_SET);fwrite(buffer1,64,1,fc);}}/*文件删除结束*/md(name)/*建立目录函数,目录路径名name*/char *name;{int dnum,bnum,i,j,last,k,s,d,t,tt,b,dd,flag,dn,bn;char dname[3],pathname[20];i=2;/* i=根目录的起始盘块号*//* 将name分成两部分,目录路径pathname和目录名dname*/ for(j=0;name[j]!='/0';j++)/*查找最后一个"/"*/if(name[j]=='/')s=j;/*分离目录路径*/for(j=0;j<s;j++)pathname[j]=name[j];pathname[j]='/0';/*分离目录名*/for(k=0,j=s+1;name[j]!='/0'&&k<3&&name[j]!='.';j++,k++) dname[k]=name[j];if(k==0){printf("错误文件名或目录名/n");return(false);}for(;k<3;k++)dname[k]=' ';if((d=search(pathname,8,&dn,&bn))==false)/*找到目录路径*/{printf("目录不存在,不能建立/n");return(false);}b=-1;/*确认该目录不存在的同时查找空目录项*/fseek(fc,d*64L,SEEK_SET);fread(buffer2,64L,1,fc);/*读出d盘块的内容*/for(t=0;t<8;t++){if(buffer2[t].name[0]==dname[0]&&buffer2[t].name[1]==dname[1] &&buffer2[t].name[2]==dname[2]&&buffer2[t].attribute==8) {/*找到名字dname的目录,建立失败*/printf("目录已经存在,不能建立/n");return(false);}if(buffer2[t].name[0]=='$'&&b==-1)b=t;}/*for*/if(b==-1)/*没有空目录项,不能建立*/{printf("目录无空间/n");return(false);}if((dd=allocate( ))==false)/*分配给建立目录的磁盘盘块dd*/{printf("目录不能建立/n");return(false);}/*填写目录项*/for(i=0;i<3;i++)buffer2[b].name[i]=dname[i];buffer2[b].type[0]=buffer2[b].type[1]=' ';buffer2[b].attribute=8;buffer2[b].address=dd;buffer2[b].length=0;fseek(fc,d*64L,SEEK_SET);fwrite(buffer2,64L,1,fc);/*分给新建目录的盘块初始化*/for(t=0;t<8;t++)buffer2[t].name[0]='$';fseek(fc, dd*64L, SEEK_SET);fwrite(buffer2,64L,1,fc);}/*建立目录结束*/dir(name)/*显示目录内容*/char *name;{int i,bnum,t,tt,dnum,dn,bn;if((dnum=search(name,8,&dn,&bn))==false)/*找到目录路径,返回该目录所在块号dn和盘块内项数bn*/{printf("目录不存在/n");return(false);}printf("名称扩展名起始盘块长度/n");/*显示目录内容*/fseek(fc,dnum*64L, SEEK_SET);fread(buffer2,64L,1,fc);for(t=0;t<8;t++)/*显示该盘块中目录项的内容*/if(buffer2[t].name[0]!='$')printf(" %c%c%c %c%c %4d%7d/n", buffer2[t].name[0], buffer2[t].name[1],buffer2[t].name[2], buffer2[t].type[0], buffer2[t].type[1],buffer2[t].address, buffer2[t].length);}/*显示目录函数结束*/typefile(name)/*显示文件内容*/char *name;{int i,dnum,dn,bn,t;if((dnum=search(name,1,&dn,&bn))==false){printf("文件不存在/n");return(false);}if(sopen(name)!=-1){printf("该文件打开,不能显示/n");return(false);}while(dnum!='/xff'){fseek(fc,dnum*64L,SEEK_SET);fread(buffer1,64,1,fc);/*读一个盘块到缓冲*/for(t=0;t<64&&buffer1[t]!='#';t++)/*显示缓冲中内容*/ putchar(buffer1[t]);printf("/n");/*获得下一个盘块*/fseek(fc, dnum/64*64L, SEEK_SET);fread(buffer1,64,1,fc);dnum=buffer1[dnum%64];}}/*显示文件函数结束*/change(name,attribute)/*改变文件name的属性为attribute*/char *name;int attribute;{int dnum,bnum;if(search(name,1,&dnum,&bnum)==false)/*查找文件目录*/ {printf("文件不存在/n");return(false);}if(sopen(name)!=-1){printf("该文件打开,不能改变文件属性/n");return(false);}fseek(fc,dnum*64L,SEEK_SET);fread(buffer2,64,1,fc);/*读出该目录所在盘块*/buffer2[bnum].attribute=attribute;/*修改属性*/fseek(fc,dnum*64L,SEEK_SET);fwrite(buffer2,64,1,fc);/*写回磁盘*/}/*改变文件属性函数结束*/main( ){char name[20];int attribute,type,length,i,a,j;char buffer[64];/*建立文件,模拟磁盘*/if((fc=fopen("c://os//c","w+"))==NULL){printf("无法打开文件/n");exit(0);}/*初始化已打开文件表*/openfile.length=0;/*初始化磁盘*//*初始化文件分配表*/buffer1[0]=buffer1[1]=buffer1[2]=255;/*磁盘第0、1块存放FAT表,第2块存放跟目录*/for(i=3;i<64;i++)buffer1[i]=0;buffer1[13]=buffer1[49]=254;/*假定模拟磁盘中有两个坏盘块:第13块和49块*/fwrite(buffer1,64L,1,fc);for(i=0;i<64;i++)buffer1[i]=0;fwrite(buffer1,64L,1,fc);/*初始化根目录*/for(i=0;i<8;i++)buffer2[i].name[0]='$';/*若目录项的第一个字符为"$"表示该目录项为空*/ fwrite(buffer2,64L,1,fc);/*初始化已打开文件表*/while(1){printf("/n 0 - 结束/n");printf(" 1 - 建立文件/n");printf(" 2 - 打开文件/n");printf(" 3 - 读文件/n");printf(" 4 - 写文件/n");printf(" 5 - 关闭文件/n");printf(" 6 - 删除文件/n");printf(" 7 - 建立目录/n");printf(" 8 - 显示目录内容/n");printf(" 9 - 显示文件内容/n");printf(" 10 - 改变文件属性/n");printf(" 选择功能项(0~9):");scanf("%d",&a);switch(a){case 0: /*a=0程序结束*/fclose(fc);exit(0);case 1: /*a=1建立文件*/printf("输入文件路径名和文件属性(1-只读文件,3-只读系统文件,4-普通文件):");scanf("%s%d",name,&attribute);create_file(name,attribute); /*建立文件*/break;case 2: /*a=2打开文件*/printf("输入文件路径名和操作类型(0-读文件,1-写文件):");scanf("%s%d",name,&type);open_file(name,type); /*打开文件*/break;case 3: /*a=3读文件*/printf("输入文件路径名和读长度");scanf("%s%d",name,&length);read_file(name,length); /*读文件*/break;case 4: /*a=4写文件*/printf("输入文件路径名:");scanf("%s",name);printf("输入写的内容和和写长度");scanf("%s%d",buffer,&length);write_file(name,buffer,length); /*写文件*/break;case 5: /*a=5关闭文件*/printf("输入文件路径名");scanf("%s",name);close_file(name); /*关闭文件*/break;case 6: /*a=6删除文件*/printf("输入文件路径名");scanf("%s",name);delete(name); /*删除文件*/break;case 7: /*a=7建立目录*/printf("输入目录路径名");scanf("%s",name);md(name); /*建立目录*/break;case 8: /*a=8显示目录*/printf("输入目录路径名");scanf("%s",name);dir(name); /*显示目录*/break;case 9: /*a=9显示文件*/printf("输入文件路径名");scanf("%s",name);typefile(name); /*显示文件*/break;case 10:/* a=10改变文件属性*/printf("输入文件路径名和文件属性(1-只读文件,3-只读系统文件,4-普通文件):");scanf("%s%d",name,&attribute);change(name,attribute);}/* switch */}/* while */}/*main( )结束*/。
8.8点阵实验报告
2016年电子工程专业2014级卓越工程师班《单片机与微机原理及应用》课程设计报告设计题目: 8*8LED点阵设计专业班级:电子卓越1401班学生:林晓强学生学号:5120141478指导教师:聂诗良、许超(助教)答辩日期:第13周周六上午9点答辩地点:综合楼4-311实验室西南科技大学信息工程学院制2016年5月目录1.摘要 (1)1.1课程设计制作题目及要求 (2)2.系统方案设计 (2)2.1设计思路 (2)2.2总体设计框图 (3)3.硬件设计 (4)3.1 硬件选型 (4)3.2 系统硬件电路原理详图 (5)3.2.1复位电路原理图以及时钟电路原理图 (5)3.3 实际连线详图 (6)3.3.1 8*8LED点阵AD原理图 (7)3.3.2 8*8LED点阵AD PCB图 (7)3.3.3 8*8LED点阵原理仿真 (8)3.3.4 51单片机主控实物图以及原理图 (9)4.软件设计 (9)4.1 软件功能设计 (9)4.2 软件流程设计 (10)4.2.1主流程图 (10)5.软件调试 (11)5.1 单元调试 (11)5.1.1 LED点阵模块测试 (11)5.2 总体测试 (11)6.心得体会 (11)7.参考文献 (12)附录1 (13)附录2 (28)8*8LED点阵设计1摘要(1)近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。
(2)LED点阵是由发光二极管排列组成的显示器件, 在我们日常生活的电器中随处可见,极为普通也广为人知。
特别是它的发光类型属于冷光源,效率及发热量是普通发光器件难以比拟的,它采用低电压扫描驱动,具有:耗电少、使用寿命长、成本低、亮度高、故障少、视角大、可视距离远、规格品、可靠耐用、应用灵活、安全、响应时间短、绿色环保、控制灵活种等特点。
非常简单的8-8LED点阵c51源代码
非常简单的8*8LED点阵c51源代码/* 实验目的:学会8*8 点阵动态扫描方法. */ /* 实验现象:8*8 点阵光柱先从0-9 每隔一定的时间动态显示。
*/ /*【原创安全】Copyright(C)铁牛All Rights Reserved */ /*【声明】此程序仅用于学习与参考,引用请注明原创安全和作者信息!*//*************************************************************/#includereg52.h #includeintrins.h #define uchar unsigned char #define uint unsigned int uchar code row[] ={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//行扫描数组row0--row7.硬件定义为P1 口。
uchar code word[][8]={{0xC7,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xC7},//硬件定义为P0 口。
’0’{0xEF,0x8F,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF},//硬件定义为P0 口。
’1’{0xC7,0xBB,0xBB,0xF7,0xEF,0xDF,0xBF,0x83},//硬件定义为P0 口。
’2’{0xC7,0xBB,0xFB,0xC7,0xFB,0xFB,0xBB,0xC7},//硬件定义为P0 口。
’3’{0xE7,0xE7,0xD7,0xD7,0xB7,0x83,0xF7,0xF7},//硬件定义为P0 口。
’4’{0x83,0xBF,0xBF,0x87,0xFB,0xFB,0xBB,0xC7},//硬件定义为P0 口。
’5’{0xC7,0xBB,0xBF,0x87,0xBB,0xBB,0xBB,0xC7},//硬件定义为P0 口。
数据结构实验源代码
数据结构实验源代码【附】数据结构实验源代码范本一、实验背景与目的1.1 实验背景在计算机科学中,数据结构是指数据元素之间的关系,以及为操作这些数据元素所提供的方法。
数据结构对于程序的设计和性能优化具有重要影响。
1.2 实验目的本实验旨在通过编写和实现不同的数据结构,加深学生对数据结构的理解,掌握基本的数据结构操作方法。
二、实验内容2.1 线性表2.1.1 顺序表2.1.1.1 初始化顺序表2.1.1.2 插入元素到顺序表2.1.1.3 删除顺序表中的元素2.1.1.4 遍历顺序表2.1.1.5 查找指定元素在顺序表中的位置2.1.2 链表2.1.2.1 初始化链表2.1.2.2 插入元素到链表2.1.2.3 删除链表中的元素2.1.2.4 遍历链表2.1.2.5 查找指定元素在链表中的位置2.2 栈2.2.1 初始化栈2.2.2 进栈操作2.2.3 出栈操作2.2.4 获取栈顶元素2.2.5 判断栈是否为空2.3 队列2.3.1 初始化队列2.3.2 入队操作2.3.3 出队操作2.3.4 获取队首元素2.3.5 判断队列是否为空三、实验步骤3.1 线性表实现在实现顺序表和链表时,首先需要定义数据结构和所需的操作函数。
然后进行初始化、添加元素、删除元素等操作。
最后进行遍历和查找操作,并检验实验结果是否符合预期。
3.2 栈实现栈的实现过程与线性表类似,需要定义栈的数据结构和所需的函数,然后进行初始化、进栈、出栈等操作。
3.3 队列实现队列的实现也与线性表类似,需要定义队列的数据结构和函数,进行初始化、入队、出队等操作。
四、数据结构实验源代码以下是实验代码的源代码范本,包括线性表、栈和队列的实现。
(代码略,如需获取,请查看附件)五、附件本文档附带的附件为数据结构实验源代码。
六、法律名词及注释6.1 数据结构:计算机科学中,数据结构是指数据元素之间的关系,以及为操作这些数据元素所提供的方法。
6.2 顺序表:一种物理上相邻的存储结构,元素按照顺序依次存放。
C语言VC程序设计上机实验报告源代码-推荐下载
西华大学实验报告开课学院及实验室: 实验时间: 2016年 5 月1日学 生 姓 名学 号实 验 成 绩课 程 名 称C 程序设计课 程 代 码实验项目名称项 目 代 码指 导 教 师项 目 学 分现场考评成绩(40分)实验报告成绩(60分)1、实验目的2、实验设备、仪器及材料3、实验内容3.1 一般实验(非上机实验):3.1.1实验方案设计与选择(设计性、创新性实验需写该项内容)3.1.2实验原理及实验步骤(实验工作原理或实验的主要操作过程)3.1.3实验记录(核心代码及调试过程)3.2 上机实验:3.2.1上机实验的内容及要求3.2.2算法设计思想与算法实现步骤3.2.3程序核心代码,程序调试过程中出现的问题及解决方法3.2.4程序运行的结果注解:理工科实验需记录实验过程中的数据、图表、计算、现象观察等,实验过程中出现的问题;其它如在计算机上进行的编程、仿真性或模拟性实验需记录程序核心代码以及程序在调式过程中出现的问题及解决方法;记录程序执行的结果。
4、实验总结4.1实验结果分析及问题讨论4.2实验总结心得体会注解:实验总结的内容根据不同学科和类型实验要求不一样,一般理工科类的实验需要对实验结果进行分析,并且对实验过程中问题进行讨论;在计算机上进行的编程、仿真性或模拟性实验需要对上机实践结果进行分析,上机的心得体会及改进意见。
其它实验应总结实验过程写出心得体会及改进意见。
说明:各门实验课程实验报告的格式及内容要求,请按照实验指导书的要求手工书写。
缆敷设完毕,要进行检查和检测处理告与相关技术资料,并且了解现场设备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
从而采用高中资料试卷主要保护装置。
一.实验目的二、实验设备、仪器及材料三.实验内容(一)、1上机实验的内容及要求2算法设计思想与算法实现步骤3程序核心代码,程序调试过程中出现的问题及解决方法4程序运行的结果(二)、1上机实验的内容及要求2算法设计思想与算法实现步骤3程序核心代码,程序调试过程中出现的问题及解决方法4程序运行的结果(三)、1上机实验的内容及要求2算法设计思想与算法实现步骤3程序核心代码,程序调试过程中出现的问题及解决方法4程序运行的结果(四)、1上机实验的内容及要求2算法设计思想与算法实现步骤3程序核心代码,程序调试过程中出现的问题及解决方法4程序运行的结果(五)、1上机实验的内容及要求2算法设计思想与算法实现步骤3程序核心代码,程序调试过程中出现的问题及解决方法4.程序的运行结果(六)、1上机实验的内容及要求2算法设计思想与算法实现步骤3程序核心代码,程序调试过程中出现的问题及解决方法4程序运行的结果(七)、1上机实验的内容及要求2算法设计思想与算法实现步骤3程序核心代码,程序调试过程中出现的问题及解决方法西华大学实验报告4.程序的运行结果(八)、1上机实验的内容及要求2算法设计思想与算法实现步骤3程序核心代码,程序调试过程中出现的问题及解决方法西华大学实验报告4.程序的运行结果(九)、1上机实验的内容及要求2算法设计思想与算法实现步骤3程序核心代码,程序调试过程中出现的问题及解决方法4.程序的运行结果(十)、1上机实验的内容及要求2算法设计思想与算法实现步骤3程序核心代码,程序调试过程中出现的问题及解决方法4.程序的运行结果四、实验总结1实验结果分析及问题讨论2实验总结心得体会。
C语言上机实验报告--学生信息管理系统设计__内附源代码
C语言上机实验报告------学生信息管理系统设计姓名:学号:班级:指导老师:学院:学校:C语言上机实验报告------学生信息管理系统设计一、实验题目学生信息管理系统设计学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail 等。
试设计一学生信息管理系统,使之能提供以下功能:(1)系统以菜单方式工作(2)学生信息录入功能(学生信息用文件保存)---输入(3)学生信息浏览功能---输出(4)查询、排序功能---算法(5)按学号查询(6)按姓名查询(7)学生信息的删除与修改(可选项)二、本课程的地位、作用与目的为综合应用C语言程序设计理论知识、进一步提高学生综合解决问题、协调工作的能力和良好的软件开发习惯,特安排本实验内容。
希望通过该实习能够进一步激发学生的学习热情,培养学生初步编程的能力,为后续的学习和发展奠定基础。
三、分析过程1、能够实现对学生基本信息数据的增加和删除2、实现对录入保存后的学生基本信息进行格式化浏览3、提供学号和姓名两种方式对学生基本信息数据的查询4、能够对随机输入的学生基本信息数据按学号进行排序5、学生信息数据保存在文件中,方便数据的多次使用为了实现以上功能,必须设计的函数如下:录入函数、查询函数(分为姓名查询和学号查询)、删除函数、排序函数和几个菜单绘制函数等四、实验源代码:#include <stdio.h>#include<string.h>#include<conio.h>#include<stdlib.h>#include<time.h>#define num 12//定义学生结构体typedef struct student{int id;char name[num];int age;char sex[4];struct birth{int year;int month;int day;}date;char add[30];int phone;}stu;//功能选择菜单void menu(){printf("\n");printf("\n");printf(" 学生信息管理系统\n");printf("\n");printf("********************************************************************* **\n");printf(" ==============1.学生信息录入 2.学生信息浏览===============\n");printf("\n");printf(" ==============3.学号查询信息 4.姓名查询信息===============\n");printf("\n");printf(" ==============5.按学号排序 6.删除学生信息===============\n");printf("\n");printf(" ============== 0.退出系统===============\n");printf("\n");printf("\n");printf("********************************************************************* *\n");printf("\n");printf(" 按编号选择对应功能\n");printf("\n");printf(" +++++++++++++++++++ XXXXXXX制作+++++++++++++++++++++\n");printf("\n");}//修改菜单void printmenu(){printf("********************************************************* **\n");printf("-------1.完全修改 2.学号修改---------");printf("-------3.姓名修改 4.性别修改---------");printf("-------5.生日修改 6.地址修改---------");printf("-------7.电话修改 0.退出修改---------");printf("********************************************************* **\n");}//取当前时间int nowtime(){struct tm *local;time_t t;t=time(NULL);local=localtime(&t);return local->tm_year+1900;//求出当前时间的年份}//输出文件中学生信息void print(char *file){stu temp;FILE *fp=fopen(file,"r");if(fp==NULL){printf("打开文件%s失败!\n",file);return;}printf("文件%s中学生信息如下:\n",file);printf("%8s%8s%6s%6s%8s%4s%4s%16s%12s\n","学号","姓名","年龄","性别","出生年","月","日","地址","电话");fseek(fp,0,SEEK_SET);//从文件开始为之读取while(fread(&temp,sizeof(stu),1,fp))printf("%8d%8s%6d%6s%8d%4d%4d%16s%12d\n",temp.id,,temp.age,t emp.sex,temp.date.year,temp.date.month,temp.date.day,temp.add,temp.ph one);//格式化输出学生信息fclose(fp);//关闭文件}void luru(char *file){int count,sexnum,i=0,m;stu temp,temp1;FILE *fp=fopen(file,"a+");//追加方式打开文件if(fp==NULL){printf("打开文件%s失败!",file);return;}printf("请确定本次需要录入几名学生信息:");scanf("%d",&count);for (i=0;i<count ;i++ ){printf("录入要写入文件%s的第%d名学生信息\n",file,i+1); Repeat:printf("请输入学号:");m=scanf("%d",&temp.id);if (m==0){printf("输入的数据不是整型数据!\n");fflush(stdin);//清除缓存goto Repeat;}fseek(fp,0,SEEK_SET);//从文件开始位置读取while(fread(&temp1,sizeof(stu),1,fp)){if (temp1.id==temp.id)//判断学号是否已存在{printf("学号已存在!\n");goto Repeat;}//若学号已存在,返回继续读取学号}printf("请输入姓名:");scanf("%s",);printf("请输入性别:0为女生,1为男生:");{scanf("%d",&sexnum);if (sexnum==1) strcpy(temp.sex,"男");else strcpy(temp.sex,"女");}printf("请输入出生年月日:");scanf("%d%d%d",&temp.date.year,&temp.date.month,&temp.date.day);temp.age=nowtime()-temp.date.year;printf("请输入地址:");scanf("%s",&temp.add);printf("请输入联系电话11位:");scanf("%d",&temp.phone);if(!fwrite(&temp,sizeof(stu),1,fp)){printf("向文件%s写入信息失败!\n",file);return;}}printf("向文件%s写入信息成功!\n",file);fclose(fp);}int IsEmpty(FILE *fp){int len;fseek(fp,0,SEEK_END);//指针移动到文件尾len=ftell(fp);//取指针的文职获取长度return(len==0)?1:0;//0代表文件为空}void idsearch(char *file){int findid;stu temp;FILE *fp=fopen(file,"r");if (fp==NULL){printf("文件无法打开!");return;}if(IsEmpty(fp)){printf("文件为空,请先录入信息!");return;}printf("输入要查找学生的学号:");scanf("%d",&findid);fseek(fp,0,SEEK_SET);while(fread(&temp,sizeof(stu),1,fp)){if(temp.id==findid){printf("%8s%8s%6s%6s%8s%4s%4s%16s%11s\n","学号","姓名","年龄","性别","出生年","月","日","地址","电话");printf("%8d%8s%6d%6s%8d%4d%4d%16s%11d\n",temp.id,,temp.a ge,temp.sex,temp.date.year,temp.date.month,temp.date.day,temp.add,tem p.phone);//格式化输出学生信息return;}}printf("没有找到学号为%d的学生的信息!",findid);return;fclose(fp);}void namesearch(char *file){char name[num];stu temp;FILE *fp=fopen(file,"r");if (fp==NULL){printf("文件无法打开!");return;}if(IsEmpty(fp)){printf("文件为空,请先输入学生信息!");return;}printf("输入要查找的学生的姓名:");scanf("%s",name);fseek(fp,0,SEEK_SET);while(fread(&temp,sizeof(stu),1,fp)){if (!strcmp(,name)){printf("下面是姓名为%s的学生的信息:\n",name);printf("%8s%8s%6s%6s%8s%4s%4s%16s%11s\n","学号","姓名","年龄","性别","出生年","月","日","地址","电话");printf("%8d%8s%6d%6s%8d%4d%4d%16s%11d\n",temp.id,,temp.a ge,temp.sex,temp.date.year,temp.date.month,temp.date.day,temp.add,tem p.phone);//格式化输出学生信息return;}}printf("没有找到姓名为%s的学生的信息!",name);fclose(fp);}//排序函数void paixu(char *file){int i,j,k,len;stu s[num],temp;FILE *fp=fopen(file,"r");if(fp==NULL){printf("文件无法打开!");return;}if(IsEmpty(fp)){printf("文件为空,请先录入信息!");return;}fseek(fp,0,SEEK_END);//指针移动到文件末尾len=ftell(fp)/sizeof(stu);fseek(fp,0,SEEK_SET);for(i=0;i<len;i++)fread(s+i,sizeof(stu),1,fp);fclose(fp);for(i=0;i<len;i++){k=i;for(j=i+1;j<len;j++){if(s[j].id<s[k].id)k=j;}if(k!=i){temp=s[i];s[i]=s[k];s[k]=temp;}}printf("下面是按学号从小到大顺序排序后的学生的信息:\n");printf("%8s%8s%6s%6s%8s%4s%4s%16s%11s\n","学号","姓名","年龄","性别","出生年","月","日","地址","电话");for(i=0;i<len;i++)printf("%8d%8s%6d%6s%8d%4d%4d%16s%11d\n",s[i].id,s[i].name,s[i].a ge,s[i].sex,s[i].date.year,s[i].date.month,s[i].date.day,s[i].add,s[i ].phone);//格式化输出学生信息remove("学生信息表.txt");//删除以前存放数据的文件fp=fopen(file,"w");for(i=0;i<len;i++)fwrite(s+i,sizeof(stu),1,fp);fclose(fp);}//删除函数void shanchu(char *file){int i=0,len,del;stu s[num];FILE *fp=fopen(file,"r");if(fp==NULL){printf("文件无法打开!");return;}if(IsEmpty(fp)){printf("文件为空,请先录入学生信息!");return;}printf("输入需要删除的学生的学号:");scanf("%d",&del);fseek(fp,0,SEEK_SET);while(fread(s+i,sizeof(stu),1,fp)){if(s[i].id==del){printf("下面是按学号为%d的学生的信息:\n",del);printf("%8s%8s%6s%6s%8s%4s%4s%16s%11s\n","学号","姓名","年龄","性别","出生年","月","日","地址","电话");printf("%8d%8s%6d%6s%8d%4d%4d%16s%11d\n",s[i].id,s[i].name,s[i].a ge,s[i].sex,s[i].date.year,s[i].date.month,s[i].date.day,s[i].add,s[i ].phone);//格式化输出学生信息i=i-1;}i++;}fclose(fp);len=i;fp=fopen(file,"w");fseek(fp,0,SEEK_SET);for(i=0;i<len;i++) //删除后重写文件fwrite(s+i,sizeof(stu),1,fp);fclose(fp);}void main(){int key;char file[]={"学生信息表.txt"};do{menu();printf("选择对应功能操作:");scanf("%d",&key);switch(key){case 1:luru(file);break;case 2:print(file);break;case 3:idsearch(file);break;case 4:namesearch(file);break;case 5:paixu(file);break;case 6:shanchu(file);break;case 0:exit(0);default:printf("选择错误,请重新选择!");}printf("\n");printf("按任意键返回上级菜单!");getch();fflush(stdin);system("cls");}while (key!=0);}五.实验过程及结果:1.程序主菜单运行界面2.学生信息录入运行界面3.学生信息浏览运行界面4.学生学号查询运行界面5.学生姓名查询运行界面6.按学号排序运行界面第一次出现乱码,改正后运行如第二张图片所示7.删除学生信息运行界面六、感想在本次实验的过程中,出现了各种各样的问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(4)更新视图。向视图中插入三条记录,SQL代码如下:
INSERT INTO college_view VALUES( 0901, '张三', 20, '外语' );
INSERT INTO college_view VALUES( 0902, '李四', 22, '计算机' );
AS SELECT number, name, age, major FROM college
WITH LOCAL CHECK OPTION;
(3)执行SHOW CREATE VIEW语句来查看视图的详细结构。代码如下:
SHOW CREATE VIEW college_view \G
AS SELECT number, 来自ame, age, major
FROM college WHERE major='计算机'
WITH LOCAL CHECK OPTION;
(6)删除视图。SQL代码如下:
DROP VIEW college_view;
INSERT INTO college_view VALUES( 0903, '王五', 19, '计算机' );
(5)修改视图,使视图中只显示专业为“计算机”的信息。SQL代码如下:
CREATE OR REPLACE ALGORITHM=UNDEFINED VIEW
college_view (student_num, student_name, student_age, department )
age INT(5)
);
(2)使用CREATE VIEW语句来创建视图college_view。SQL代码如下:
CREATE ALGORITHM=UNDEFINED VIEW
college_view (student_num, student_name, student_age, department )
(1)在example数据库下创建college表。SQL代码如下:
CREATE TABLE college (
number INT(10) NOT NULL UNIQUE PRIMARY KEY ,
name VARCHAR(20) NOT NULL ,
major VARCHAR(20) NOT NULL ,