中南大学数据库实验报告
中南大学数据库实验报告
中南大学数据库实验实验题目班级姓名学号一、实验内容实验一:创建表、更新表和实施数据完整性1.运行给定的SQL Script,建立数据库GlobalToyz。
2.创建所有表的关系图。
3.列出所有表中出现的约束(包括Primary key, Foreign key, check constraint, default, unique)4.对Recipient表和Country表中的cCountryId属性定义一个用户自定义数据类型,并将该属性的类型定义为这个自定义数据类型。
5.把价格在$20以上的所有玩具的材料拷贝到称为PremiumToys 的新表中。
6.对表Toys实施下面数据完整性规则:(1)玩具的现有数量应在0到200之间;(2)玩具适宜的最低年龄缺省为1。
7.不修改已创建的Toys表,利用规则实现以下数据完整性:(1)玩具的价格应大于0;(2)玩具的重量应缺省为1。
8.给id为‘000001’玩具的价格增加$1。
实验二:查询数据库1.显示属于California和Illinoi州的顾客的名、姓和emailID。
2.显示定单号码、商店ID,定单的总价值,并以定单的总价值的升序排列。
3.显示在orderDetail表中vMessage为空值的行。
4.显示玩具名字中有“Racer”字样的所有玩具的材料。
5.根据2000年的玩具销售总数,显示“Pick of the Month”玩具的前五名玩具的ID。
6.根据OrderDetail表,显示玩具总价值大于¥50的定单的号码和玩具总价值。
7.显示一份包含所有装运信息的报表,包括:Order Number,Shipment Date, Actual Delivery Date, Days in Transit. (提示:Days in Transit = Actual Delivery Date –Shipment Date)8.显示所有玩具的名称、商标和种类(Toy Name, Brand, Category)。
数据库实验报告(通用3篇)
数据库实验报告(通用3篇)数据库试验报告篇1一、实训时间:20_年5月13日至5月24日二、实训地点:三、实训目的与意义:1,这次实习可以使我们在课本上学到的学问用于实践增加了我对电脑技巧的一些认知。
2,通过这次实习也可以让我体验到上班族的生活为我将来毕业后找工作打下了基础。
3,并且这次实习可以非常好的关心我完成将来的毕业论文。
四、实训感悟:还依旧记得来的第一天对这里很茫然,不知道实习要做些什么。
然后经过老师的急躁讲解,熟悉了自己实习要做些什么,得到了许多心理熟悉,对许多问题都有了一些更深的了解。
同时,我熟识了河北玛世电子商务有限公司,总部位于国家命名的“中国丝网之乡”、“中国丝网产业基地”、中国丝网产销基地“、”中国丝网出口基地“—河北省安平县。
使我们队公司有了更进一步的了解实习,就是在实践中学习。
经过这半个月的实习训练,我了解到自己所学的如何在实践中运用。
当然学的更多的是如何在更新网站内容和添加商品,每天不厌其烦的更新添加,观察自己的胜利更多的是兴奋。
还有发布了一些关于公司产品的博客,比如新浪,网易。
而后又尝试在百度知道上提问与回答,在回答问题的过程中,通过网站搜寻相关内容来回答各种丝网问题,通过百度知道这个平台,我对公司又了更一步的了解。
经过半个月的实训我学到了许多之前没有学过没有接触到的东西,熟悉到自己的不足,需要更加努力,才能尽快的学会在社会上生活,敢于面对社会的压力,使自己可以在社会上成长进展。
数据库试验报告篇2由于平常接触的都是一些私人项目,这些项目大都是一些类库,其他人的沟通相对可以忽视不计,因此也就不考虑规范化的文档。
实际上从学习的经受来看,我们接触的学问体系都是属于比较老或比较传统的,与现在进展快速的IT行业相比许多状况已不再适用,尤其是当开源模式渐渐走近开发者后更是如此。
虽然这次是一个数据库课程设计,由于本人在选择项目的时候是本着对自己有实际应用价值的角度考虑的,所以其中也涉及到一些数据库以外的设计。
数据库实验报告
数据库实验报告一、实验目的本次数据库实验的主要目的是通过实际操作和实践,深入了解数据库的基本概念、原理和技术,掌握数据库的设计、创建、管理和数据操作的方法,提高对数据库系统的应用能力和问题解决能力。
二、实验环境本次实验使用的数据库管理系统是 MySQL,操作系统为 Windows 10。
实验中使用的开发工具包括 MySQL Workbench 和命令行终端。
三、实验内容与步骤(一)数据库设计1、需求分析根据给定的业务场景,确定数据库需要存储的信息和数据之间的关系。
例如,对于一个学生管理系统,需要存储学生的基本信息、课程信息、成绩信息等,并且明确这些信息之间的关联,如学生与课程的选课关系、课程与成绩的对应关系等。
2、概念模型设计使用 ER 图(实体关系图)来描述数据库的概念模型。
确定实体(如学生、课程)、属性(如学生的学号、姓名,课程的课程号、课程名)以及实体之间的关系(如多对多、一对多等)。
3、逻辑模型设计将概念模型转换为关系模型,确定数据表的结构,包括表名、字段名、数据类型、主键、外键等。
例如,学生表(学号、姓名、性别、出生日期),课程表(课程号、课程名、学分),选课表(学号、课程号、成绩)等。
(二)数据库创建1、使用 MySQL Workbench 或命令行创建数据库。
2、创建数据表,按照设计好的逻辑模型定义表结构。
(三)数据插入与操作1、使用 INSERT 语句向数据表中插入数据,以模拟实际的业务数据。
2、进行数据的查询操作,使用 SELECT 语句查询满足特定条件的数据。
3、进行数据的更新和删除操作,使用 UPDATE 和 DELETE 语句修改或删除数据。
(四)数据库索引与优化1、了解索引的概念和作用,为经常用于查询、连接和排序的字段创建索引。
2、分析查询语句的执行计划,通过优化查询语句、调整数据表结构等方式提高数据库的性能。
(五)数据库备份与恢复1、学习数据库备份的方法,使用 mysqldump 工具或 MySQL Workbench 进行数据库的备份。
中南大学数据库实验三
实验1《视图与完整性约束》实验学时: 2 实验地点:二综教学楼实验日期:2014/5/9一、实验目的学习灵活熟练的进行视图的操作,认识视图的作用;掌握完整性控制的方法。
1.熟悉和掌握对数据表中视图的定义操作和SQL命令的使用;2.熟悉和掌握对数据表中视图的查询操作和SQL命令的使用;3.熟悉和掌握对数据表中视图的更新操作和SQL命令的使用,并注意视图更新与基本表更新的区别与联系;4.熟悉SQL语言对数据库进行完整性控制的方法。
二、实验内容(一)以S , C , SC表为基础完成以下视图定义及使用1.定义“SSCH”院学生基本情况视图V_SSCH;2.将S,C,SC表中学生的学号,姓名,课程号,课程名,成绩定义为视图V_S_C_G;3.将各院学生人数,平均年龄定义为视图V_NUM_AVG;4.将各位学生选修课程的门数及平均成绩定义为视图V_AVG_S_G并查询结果;5.查询平均成绩为90分以上的学生学号、姓名和成绩;6.通过视图V_SSCH,新增加一个学生记录 ('S12','YAN XI',19, 'SSCH'),并查询结果;7.通过视图V_SSCH,删除学号为“S12”学生信息,并查询结果;8.将视图V_SSCH中学号为“S12”的学生改名“中南人”。
(二)使用SQL进行数据完整性控制:包括三类完整性、check短语、constrain子句。
1. 在创建下列关系表时完成如下约束:定义实体完整性;参照完整性(外码、在删除S 中的元组时级联删除SC中相应元组、当更新S中的Sno时同时更新SC中的Sno);用户定义完整性:学生年龄<30。
2. 修改S中的约束条件,学号在100-1000之间。
创建课程关系表C :创建学生-课程表SC :3.用实验验证当操作违反了完整性约束时,系统如何处理?问题:外键与参照主键是否一定要相同?三、实验步骤1.定义视图、对视图进行查询、修改;2.进行完整性约束定义、修改;3. 进行约束违例验证。
中南大学数据结构实验报告
优选docx[键入文档标题]实验题目:(1)单链表的实现(2)栈和队列(3)二叉树的遍历(4)查找与排序学生姓名:代巍学生学号: 05指导老师:***所在学院:信息科学与工程学院专业班级:信息安全1201班指导教师评定:签名:实验一单链表的实现一、实验目的了解线性表的逻辑结构和各种存储表示方法,以及定义在逻辑结构上的各种基本运算及其在某种存储结构上如何实现这些基本运算。
在熟悉上述内容的基础上,能够针对具体应用问题的要求和性质,选择合适的存储结构设计出相应的有效算法,解决与线性表相关的实际问题二、实验内容用C/C++语言编写程序,完成以下功能:(1)运行时输入数据,创建一个单链表(2)可在单链表的任意位置插入新结点(3)可删除单链表的任意一个结点(4)在单链表中查找结点(5)输出单链表三、程序设计的基本思想,原理和算法描述:(包括程序的结构,数据结构,输入/输出设计,符号名说明等)用一组地址任意的存储单元存放线性表中的数据元素。
以元素(数据元素的映象) + 指针(指示后继元素存储位置) = 结点(表示数据元素或数据元素的映象)以“结点的序列”表示线性表称作线性链表(单链表)单链表是指数据接点是单向排列的。
一个单链表结点,其结构类型分为两部分:(1)、数据域:用来存储本身数据。
(2)、链域或称为指针域:用来存储下一个结点地址或者说指向其直接后继的指针。
1、单链表的查找对单链表进行查找的思路为:对单链表的结点依次扫描,检测其数据域是否是我们所要查好的值,若是返回该结点的指针,否则返回NULL。
2、单链表的插入因为在单链表的链域中包含了后继结点的存储地址,所以当我们实现的时候,只要知道该单链表的头指针,即可依次对每个结点的数据域进行检测。
假设在一个单链表中存在2个连续结点p、q(其中p为q的直接前驱),若我们需要在p、q之间插入一个新结点s,那么我们必须先为s分配空间并赋值,然后使p的链域存储s的地址,s的链域存储q的地址即可。
中南大学数据结构实验报告1(线性表)
实验一线性表的操作算法一、实验目的:1了解线性表的逻辑结构和存储结构,以及定义在逻辑结构上的各种基本运算2分别以数组和链表为存储结构,实现线性表的插入,删除,查找,排序,合并等操作二、实验内容:用C/C++语言编写程序,分别以数组和链表为存储结构,完成以下功能:1输入数据,创建一个线性表2可在线性表的任意位置插入新结点3可删除线性表的任意一个结点4可在线性表中查找结点5将线性表从小至大排序6将两个线性表合并三、详细设计:顺序表#include<iostream>using namespace std;#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define OVERFLOW -2typedef int Status;typedef int ElemType;#define LIST_INIT_SIZE 100#define LISTINCREMENT 10typedef struct { //结构体ElemType *elem;int length;int listsize;}SqList;SqList Lx;Status InitList_Sq(SqList &L) //分配空间{ L.elem=new ElemType[LIST_INIT_SIZE];if(!L.elem)exit(OVERFLOW);L.length =0;L.listsize=LIST_INIT_SIZE;return OK;}Status ListInsert(SqList &L,int i,ElemType e) //插入新元素{ int *q,*p;ElemType *newbase;if(i<1 || i>L.length+1) return ERROR;if(L.length>=L.listsize){ newbase=new ElemType[L.listsize+LISTINCREMENT];if(!newbase) exit(OVERFLOW);L.elem=newbase;L.listsize+=LISTINCREMENT;}q=&(L.elem[i-1]);for (p=&(L.elem[L.length-1]);p>=q;--p)*(p+1)=*p;*q=e;++L.length;return OK;}Status Listlength(SqList L) //长度{ int *p=L.elem; //判断线形表是否存在while(p){ return (L.length); }}Status GetElem(SqList L, int i,ElemType &e) //取元素{ if(i<1 || i>L.length)return ERROR;else{ e=L.elem[i-1];return e;}}void MergeList(SqList La,SqList Lb,SqList &Lc) //合并{ ElemType ai,bj;InitList_Sq(Lc);int i=1,j=1,k=0;int La_len,Lb_len;La_len=Listlength(La);Lb_len=Listlength(Lb);while((i<=La_len)&&(j<=Lb_len)){ GetElem(La,i,ai);GetElem(Lb,j,bj);if(ai<=bj){ ListInsert(Lc,++k,ai);++i; }else{ ListInsert(Lc,++k,bj);++j; }}while(i<=La_len){ GetElem(La,i++,ai);ListInsert(Lc,++k,ai);}while(j<=Lb_len){ GetElem(Lb,j++,bj);ListInsert(Lc,++k,bj);}}void show(SqList L,int i) //显示{ int j;ElemType k;cout<<"顺序表显示如下:"<<endl;for(j=0;j<i-1;j++){ k=L.elem[j];cout<<k<<"->"; }if(j==i-1 && i>0){ k=L.elem[j]; cout<<k; }cout<<endl;}void create(SqList &L,int n) //输入元素{ int e;for(int i=0;i<n;i++){ cin>>e;L.elem[i]=e;L.length=i+1; }}Status ListDelete_Sq(SqList &L,int i,ElemType &e) //删除{ ElemType *p, *q;if(i<1 || i>L.length) return ERROR;p=&(L.elem[i-1]);e=*p;q=L.elem+L.length-1;for(++p;p<=q;++p) *(p-1)=*p;--L.length;return OK;}Status Listxiugei(SqList &L,int i,ElemType &e) //修改{ if(i<1 || i>L.length)return ERROR;else{ L.elem[i-1]=e;return OK; }}void shuru(SqList &L1) //顺序表的创建{ int a;InitList_Sq(L1);cout<<"请输入顺序表的长度:";cin>>a;cout<<"请输入顺序表的元素(共"<<a<<"个)"<<endl;create(L1,a);show(L1,a);}void shanchu(SqList &L1) //删除顺序表里的元素{ int a;int j; ElemType e1;a=L1.length;cout<<"请选择所要删除元素的位置:";cin>>j;while(j<0||j>Listlength(L1)){ cout<<"输入有误,请重新输入"<<endl;cout<<"请选择所要删除元素的位置:";cin>>j; }ListDelete_Sq(L1,j,e1);cout<<"修改后的顺序表数据:"<<endl;show(L1,a-1);}void charu(SqList &L1) //插入元素到顺序表里{ int a; int j; ElemType e1;a=L1.length;cout<<"请选择所要插入元素的位置:";cin>>j;while(j<0||j>Listlength(L1)){ cout<<"输入有误,请重新输入"<<endl;cout<<"请选择所要插入元素的位置:";cin>>j; }cout<<"要插入的元素:";cin>>e1;ListInsert(L1,j,e1);cout<<"修改后的顺序表数据:"<<endl;show(L1,a+1);}void hebing(SqList &L3) //合并两个顺序表{ SqList L1,L2;int a,b;InitList_Sq(L1); InitList_Sq(L2);cout<<"请输入第一个有序表的长度:"; cin>>a;cout<<"请输入第一个有序表的元素(共"<<a<<"个)"<<endl;create(L1,a);show(L1,a);cout<<"请输入第二个有序表的长度:"; cin>>b;cout<<"请输入第二个有序表的元素(共"<<b<<"个)"<<endl;create(L2,b);show(L2,b);MergeList(L1,L2,L3);cout<<"合并后的有序表如下:"; show(L3,a+b);}void main() //主菜单{ int choice;for(;;){ cout<<"顺序表的基本操作"<<endl;cout<<"1.顺序表的创建"<<endl;cout<<"2.顺序表的显示"<<endl;cout<<"3.顺序表的长度"<<endl;cout<<"4.插入元素到顺序表里"<<endl;cout<<"5.删除顺序表里的元素"<<endl;cout<<"6.合并两个顺序表"<<endl;cout<<"7.退出系统"<<endl;cout<<"请选择:";cin>>choice;switch(choice){ case 1: shuru(Lx);break;case 2: show(Lx,Lx.length);break;case 3: cout<<"顺序表的长度:"<<Listlength(Lx)<<endl;break;case 4: charu(Lx);break;case 5: shanchu(Lx);break;case 6: hebing(Lx);break;case 7: cout<<"退出系统!"<<endl;exit(0);break;default : cout<<"输入有误,请重新选择"<<endl;break; }}}链表#include<iostream>using namespace std;#define true 1#define false 0#define ok 1#define error 0#define overflow -2typedef int Status;typedef int ElemType;typedef struct LNode //存储结构{ ElemType data;struct LNode *next;}LNode,*LinkList;void CreateList(LinkList &L,int n) //尾插法创建单链表{ LinkList p;L=new LNode;L->next=NULL; //建立一个带头结点的单链表LinkList q=L; //使q指向表尾for(int i=1;i<=n;i++){ p=new LNode;cin>>p->data;p->next=NULL;q->next=p;q=p; }}Status GetElem(LinkList L,int i,ElemType &e)//取第i个元素{ LinkList p=L->next;int j=1;while(p&&j<i){ p=p->next;++j; }if(!p||j>i) return error; //第i个元素不存在e=p->data;return ok;}Status LinkInsert(LinkList &L,int i,ElemType e) //插入{ LinkList p=L;int j=0;while(p&&j<i-1){ p=p->next;++j; } //寻找第i-1个结点 if(!p||j>i-1)return error; //i小于1或者大于表长加1 LinkList s=new LNode; //生成新结点s->data=e;s->next=p->next; //插入L中p->next=s;return ok;}Status ListDelete(LinkList &L,int i,ElemType &e) // 删除{ LinkList p=L;LinkList q;int j=0;while(p->next&&j<i-1){ //寻找第i个结点,并令p指向其前驱 p=p->next;++j; }if(!(p->next)||j>i-1) return error; //删除位置不合理q=p->next;p->next=q->next; //删除并释放结点e=q->data;delete(q);return ok;}void MergeList(LinkList &La,LinkList &Lb,LinkList &Lc) { //合并两个顺序链表LinkList pa,pc,pb;pa=La->next;pb=Lb->next;Lc=pc=La;while(pa&&pb){ if(pa->data<=pb->data){ pc->next=pa;pc=pa;pa=pa->next; }else{ pc->next=pb;pc=pb;pb=pb->next; }}pc->next=pa?pa:pb;delete(Lb);}void show(LinkList L) //显示{ LinkList p;p=L->next;while(p){ cout<<p->data<<"-->";p=p->next; }cout<<endl;}int Length(LinkList L,int i) //表长{ i=0;LinkList p=L->next;while(p){ ++i;p=p->next; }return i;}void xiugai(LinkList L) //修改{ int i,j=1;ElemType k;ElemType e,m;LinkList p=L->next;cout<<"请输入要修改的元素位置(0<i<length):";cin>>i;GetElem(L,i,e);cout<<"该位置的元素:"<<e<<endl;cout<<"修改后的元素值:";cin>>k;while(p&&j<i){ p=p->next;++j; }m=p->data;p->data=k;cout<<"修改后的单链表显示如下:"<<endl;show(L);}void hebing() //合并两个单链表{ int a,b;LinkList La,Lb,Lc;cout<<"请输入第一个有序链表的长度:"<<endl;cin>>a;cout<<"请输入第一个有序链表的元素共("<<a<<"个):"<<endl;CreateList(La,a);show(La);cout<<"请输入第二个有序链表的长度:"<<endl;cin>>b;cout<<"请输入第二个有序链表的元素共("<<b<<"个):"<<endl;CreateList(Lb,b);show (Lb);MergeList(La,Lb,Lc);cout<<"合并后的有序链表如下:"<<endl;show(Lc);}void main() //主函数{ int select;int x;ElemType y;LinkList list;for(;;){ cout<<"单链表的基本操作"<<endl;cout<<"1.单链表的创建"<<endl;cout<<"2.单链表的显示"<<endl;cout<<"3.单链表的长度"<<endl;cout<<"4.插入元素到单链表里"<<endl;cout<<"5.删除单链表里的元素"<<endl;cout<<"6.合并两个单链表"<<endl;cout<<"7.退出系统"<<endl;cout<<"请选择:";cin>>select;switch(select){ case 1:cout<<"请输入单链表的长度:"<<endl;cin>>x;cout<<"请输入"<<x<<"个元素"<<endl;CreateList(list,x);break;case 2: cout<<"单链表显示如下:"<<endl;show(list);break;case 3: int s;cout<<"单链表的长度为:"<<Length(list,s)<<endl;break;case 4: cout<<"请选择要插入的位置:"; cin>>x;while(x<0||x>Length(list,s)){ cout<<"输入有误,请重新输入"<<endl;cout<<"请选择所要插入元素的位置:";cin>>x; }cout<<"要插入的元素值:";cin>>y;LinkInsert( list,x,y);cout<<"插入后单链表显示如下:"<<endl;show(list);break;case 5: cout<<"请选择要删除的位置:"; cin>>x;while(x<0||x>Length(list,s)){ cout<<"输入有误,请重新输入"<<endl;cout<<"请选择所要删除元素的位置:";cin>>x; }ListDelete(list,x,y);cout<<"要删除的元素值:"<<y<<endl;cout<<"删除后的单链表显示如下:"<<endl;show(list);break;case 6: hebing();break;case 7: exit(0);break;default : cout<<"输入有误,请重新输入"<<endl;break;}}}四、实验结果:顺序表链表。
中南大学数据库实验(二)
数据库原理与技术第二次试验课程名称:数据库原理与技术实验报告要求:1.列出所有的SQL语句和源代码;2.程序要求有适当的注释;3.对数据完整性约束实施要求给出相应的测试用例。
4.实验报告提交电子档。
实验内容:存储过程与触发器1.编写一段程序,将每种玩具的价格提高¥0.5,直到玩具的平均价格接近$24.5为止。
此外,任何玩具的最大价格不应超过$53。
在执行语句前查询:select * from Toys 结果如下执行代码如下:create procedure inprove_pri /*创建存储过程*/asdeclare@average money /*定义变量 */select@average=AVG(mToyRate)from Toysbeginwhile@average<24 /*为保证进行最后一次循环后的@average<24.5*/ beginupdate Toysset mToyRate=mToyRate+0.5where mToyRate<53 /* 循环条件 */select@average=AVG(mToyRate)from Toysendendgoexec inprove_priselect*from Toys运行结果:再查询avg(mToyRate)代码:select AVG(mToyRate)aaa from Toys2.创建一个称为prcCharges的存储过程,它返回某个定单号的装运费用和包装费用。
create procedure prcCharges /*创建存储过程 */@cOrderNo char(6), /*定义变量 */@mShippingCharges money output,@mGiftWrapCharges money outputasbeginselect@mShippingCharges=mShippingCharges, /* 从Orders表中赋值给变量*/ @mGiftWrapCharges=mGiftWrapChargesfrom Orderswhere cOrderNo=@cOrderNo /* 赋值条件 */endgodeclare@mShippingCharges money,@mGiftWrapCharges moneyexec prcCharges'000001',@mShippingCharges output, /* 执行该存储过程*/@mGiftWrapCharges outputprint'000001订单的装运费:'+convert(char(10),@mShippingCharges) /*打印输出 */ print'000001订单的包装费:'+convert(char(10),@mGiftWrapCharges)结果如下:3.创建一个称为prcHandlingCharges的过程,它接收定单号并显示经营费用。
中南大学数据库实验报告1
数据库实验报告实验2数据库与表的操作【实验目的与要求】1.熟悉SQLSERVER2005或以上版本的安装,以及基本操作;2.熟练掌握数据库的创建方法,以及相关参数的设置;3.掌握数据表的创建、编辑、删除操作;4.掌握数据表数据的操作;5.数据导入导出。
【实验内容与步骤】在地籍空间数据库中,存在界址点(点号、X、Y)、宗地(宗地号、权属人、地点、面积)、街坊(编号、名称、负责人、联系电话)、宗地图纸(图号、图名、测量员、测量日期)、测量单位(单位编号、单位名称、负责人、联系电话)、测量员(工号、姓名、职称)实体,实体关系如下:一个界址点可以属于多个宗地,一个宗地由多个界址点构成,一个宗地只能属于一个街坊,一个街坊有多个宗地,一个宗地有一张宗地图,一张宗地图由一个测量员测量并制图,一个测量员属于一个测量单位,一个测量单位由多个测量人员组织。
1.给Management Studio创建新连接对象,使用2种以上方法停止、开启MSSQLSERVER服务;2.使用Management Studio界面创建数据库Cadastre;3.使用SQL语句创建数据库Cadastre;CREATE DATABASE[Cadastre]ON PRIMARY(NAME='Cadastre',FILENAME='D:\Cadastre.mdf',SIZE=5MB ,MAXSIZE=50MB, FILEGROWTH= 10% )LOG ON(NAME='Cadastre_log',FILENAME='D:\Cadastre_log.ldf',SIZE=2MB,MAXSIZE= 5MB ,FILEGROWTH=1MB)4.利用ManagementStudio界面创建界址点、宗地两个数据表;找到新建的数据库Cadastre-表-右键-新建表,设置相关信息,最后保存,为表起个名字。
数据库实验报告
数据库实验报告一、实验目的本次数据库实验的主要目的是深入了解数据库的基本概念和操作,掌握数据库管理系统的使用方法,提高对数据的管理和处理能力。
通过实际操作,我们希望能够熟练运用SQL 语句进行数据的查询、插入、更新和删除,以及创建和管理数据库表、索引和视图等对象。
二、实验环境本次实验使用的数据库管理系统是 MySQL 80,操作系统为Windows 10。
实验在个人计算机上进行,使用 MySQL Workbench 作为数据库管理工具。
三、实验内容1、数据库创建使用 CREATE DATABASE 语句创建了一个名为“student_management”的数据库,用于存储学生管理相关的数据。
2、表的创建在“student_management”数据库中,创建了以下几张表:“students”表,包含学生的学号(student_id)、姓名(name)、性别(gender)、年龄(age)等字段。
“courses”表,包含课程的课程号(course_id)、课程名称(course_name)、学分(credit)等字段。
“enrolls”表,用于关联学生和课程,包含学生学号(student_id)、课程号(course_id)和成绩(grade)等字段。
3、数据插入使用 INSERT INTO 语句向上述表中插入了一些示例数据,以方便后续的查询和操作。
4、数据查询通过 SELECT 语句进行了多种查询操作,例如:查询所有学生的信息。
查询特定性别学生的信息。
查询选修了某门课程的学生名单及成绩。
5、数据更新使用 UPDATE 语句对部分学生的年龄或成绩进行了修改。
6、数据删除使用 DELETE 语句删除了一些不再需要的数据记录。
7、索引创建为“students”表的“student_id”字段和“courses”表的“course_id”字段创建了索引,以提高查询效率。
8、视图创建创建了一个名为“student_course_grade_view”的视图,用于展示学生的学号、姓名、课程名称和成绩。
中南大学oracle实验报告-推荐下载
《大型数据库技术》实验报告项目名称自动编号问题专业班级学号姓名柳明实验成绩:批阅教师:年月日实验一《搭建/熟悉环境;验证例题、习题》实验学时: 2 实验地点:实验日期:一、实验目的存储过程的综合练习。
二、实验内容创建Oracle数据库(使用DBCA)◦实例名:orcl◦密码:orcl创建用户(DBA)创建emp和dept表,并插入数据◦使用demobld.sql脚本◦注意nls_date_language设置熟悉Oracle目录结构、基本操作熟悉SQL*Plus、PL/SQL Developer环境调试、运行课堂PPT上的例题(2个)、习题(2个)◦涵盖:过程/函数,触发器,包;异常处理,游标,Bulk处理,绑定变量实验二《自动编号问题》实验学时: 2 实验地点:实验日期:一、实验目的存储过程的综合练习。
二、实验内容医院门诊挂号,要求号连续,并且退的号要能重用。
每次挂号向号表中插入一条记录,退号从号表中删除一条记录,请设计一个方案来实现。
可以考虑sequence挂号、退号均使用存储过程create table hos_rec(id number(10) primary key, --连续号section varchar2(20), --挂号科室register_date date --挂号日期);三、实验步骤1、创建表create table hospital(id number(10) not null,section varchar2(20), --挂号科室register_date date );2、创建sequenceCREATE SEQUENCE id_Sequenceminvalue 1nomaxvalueINCREMENT BY 1 -- 每次加几个START WITH 1 -- 从1开始计数NOCYCLE ; -- 一直累加,不循环3、创建插入记录的存储过程create or replace procedure insert_hospital(new_section varchar2) isnew_date date;new_id number(10);id_temp number(10) :=1;cursor id_cursor is select id from hospital;beginfor id_loop in id_cursor loopexit when id_loop.id != id_temp;id_temp :=id_temp + 1;end loop;select id_Sequence.nextval into new_id from dual;if new_id < id_temp theninsert into hospital values(new_id,new_section,sysdate); else insert into hospital values(id_temp,new_section,sysdate); end if;--select sysdate into new_date from daul;--insert into hospital values(new_id,new_section,sysdate); commit;end;4、创建删除记录的存储过程create or replace procedure delete_hospital(new_id number)isbegin--select id_Sequence.nextval into new_id from dual;--select sysdate into new_date from daul;delete from hospital where id=new_id;commit;end;实验结果:插入记录:exec insert_hospital('眼科'); --运行5次后删除记录:exec delete_hospital(2);exec delete_hospital(3);再次插入记录:exec insert_hospital('眼科');实验小结:一开始和sequence搭配使用了触发器,后来使用存储过程的时候没用到触发器,就删掉了触发器。
中南大学数据库课程设计报告
数据库课程设计报告学院:信息科学与工程学院专业班级:物联网工程1201班指导老师:盛津芳学号: 0909120122姓名:浩日期: 2015年1月10日目录课程设计要求 (3)概要设计:(数据库) (5)概要设计:(程序) (7)详细设计(数据库) (8)详细设计(程序) (11)系统展示 (12)安全性控制 (19)关键技术 (20)心得体会 (20)《数据库课程设计》任务书1 任务概述某医院拟开发一个挂号系统,以方便患者就医,提高医疗服务水平。
患者在医院就诊前需要提供、身份证、联系等个人信息并办理一诊疗卡,该诊疗卡在每次挂号时需要出示给挂号的工作人员。
患者在挂号时,需说明科室名称以及医生的职称。
挂号以半个工作日为一个班次,系统中保存各科室门诊医生的排班表,每位医生每个班次能够接诊的病人人数可设置一个上限。
本次课程设计要求设计并实现一个虚拟的医院挂号系统。
系统中包含两个子系统,即由医院部工作人员使用的挂号系统,以及患者使用的网上预约挂号系统。
其中网上预约挂号系统的前端要求是浏览器,即采用B/S模式开发。
医院工作人员使用的挂号系统采用C/S模式开发,前端开发工具不限,可采用PowerBuilder, Delphi, VB,VC,Java等。
后台数据库要求采用SQL SERVER2005或Oracle 11g及以上版本。
2 功能描述2.1 医院工作人员使用的挂号系统该系统仅供医院部工作人员使用,主要分为挂号人员和系统管理人员两类角色,需提供以下功能:1)办理诊疗卡。
患者提供、身份证、联系等个人信息,挂号人员为其办理一长期有效的诊疗卡。
2)挂号。
挂号人员根据患者要求的科室、医生职称分配一个候诊号,并收取相应的诊疗费用,诊疗费用根据医生的职称分为不同的档次。
医生当班次接诊患者人数不能超过预先设定的上限。
3)修改挂号。
患者可更改就诊的科室,挂号人员根据更改后的科室和医生职称,重新计算诊疗费用的差值,多退少补。
中南大学数据库实践报告
中南大学本科生课程设计(实践)报告(SQL数据库程序设计)题目汽修店管理系统学生姓名指导教师学院湘雅医学院专业班级临床(五)1112班学生学号计算机基础教学实验中心2012年 6 月 26 日汽修店管理信息系统摘要:处在当今数字信息时代,各行各业都离不开电子信息管理系统的协助管理,在商业中作用的尤为重要。
汽修店要想管理庞大的汽车配件信息,要迅速查询配件的信息就必须得依靠管理系统来进行。
该系统将实现对汽修店配件信息的管理(包括添加、删除等),还包括对相关信息的查询等功能。
由完整的SQL数据库,窗体有完整的数据录入检查机制,登录窗口等构成统一整体,实现系统的运行与增强实用性。
关键词:SQL server数据库组件;SQL Translate 语言;汽修店管理系统;窗体;Visual Basic 6.0中文版;控件联接。
1.企业系统开发设计思想此次课程设计,设计的是一个汽修店管理系统。
该系统是立足于SQL sever数据库,利用VB程序开发工具,设计的一个运用于汽修店管理的程序。
(1)通过对汽修店管理工作过程的内容和数据流图分析,设计如下面的数据项。
①配件信息包括的数据项有:配件编号、制造商、质量规格、适用车型等。
②制造商信息包括的数据项有:制造商编号、制造商、国籍、配件、简介。
(2)数据库概念结构设计根据以上的设计方案,我做出了对各个数据结构的E-R分析图。
(3)系统概念结构设计2.汽修店管理系统功能及系统设计介绍汽修店管理系统要实现的主要功能是能对汽修店中的配件以及制造商信息进行查询和编辑管理,从而更好地进行汽车维修服务。
能通过查询特定的配件或制造商而得到相应制造商或配件的基本信息。
与此同时能够及时的添加或者删除相应的配件和制造商信息,实现管理系统的信息更新。
根据设计思想分析及数据关系图的建立,首先建立了相关联的数据库,其次设计出有如下功能的汽修店管理系统。
(1)窗体的制作○1登陆窗口这个窗口为进入整个系统的通道,用户只有在此窗口中输入正确的用户名和密码,才可进入此系统。
中南大学数据库课程设计报告
数据库课程设计报告学院:信息科学与工程学院专业班级:物联网工程1201班指导老师:***学号:***********名:**日期:2015年1月10日目录课程设计要求 (3)概要设计:(数据库) (5)概要设计:(程序) (7)详细设计(数据库) (8)详细设计(程序) (11)系统展示 (12)安全性控制 (19)关键技术 (20)心得体会 (20)《数据库课程设计》任务书1 任务概述某医院拟开发一个挂号系统,以方便患者就医,提高医疗服务水平。
患者在医院就诊前需要提供姓名、身份证号码、联系电话等个人信息并办理一张诊疗卡,该诊疗卡在每次挂号时需要出示给挂号的工作人员。
患者在挂号时,需说明科室名称以及医生的职称。
挂号以半个工作日为一个班次,系统中保存各科室门诊医生的排班表,每位医生每个班次能够接诊的病人人数可设置一个上限。
本次课程设计要求设计并实现一个虚拟的医院挂号系统。
系统中包含两个子系统,即由医院内部工作人员使用的挂号系统,以及患者使用的网上预约挂号系统。
其中网上预约挂号系统的前端要求是浏览器,即采用B/S模式开发。
医院工作人员使用的挂号系统采用C/S 模式开发,前端开发工具不限,可采用PowerBuilder, Delphi, VB,VC,Java等。
后台数据库要求采用SQL SERVER2005或Oracle 11g及以上版本。
2 功能描述2.1 医院工作人员使用的挂号系统该系统仅供医院内部工作人员使用,主要分为挂号人员和系统管理人员两类角色,需提供以下功能:1)办理诊疗卡。
患者提供姓名、身份证号码、联系电话等个人信息,挂号人员为其办理一张长期有效的诊疗卡。
2)挂号。
挂号人员根据患者要求的科室、医生职称分配一个候诊号,并收取相应的诊疗费用,诊疗费用根据医生的职称分为不同的档次。
医生当班次接诊患者人数不能超过预先设定的上限。
3)修改挂号。
患者可更改就诊的科室,挂号人员根据更改后的科室和医生职称,重新计算诊疗费用的差值,多退少补。
中南大学数据库实验报告实验二基本数据查询
中南大学数据库实验报告实验二基本数据查询1. 实验目的本次实验旨在让学生掌握基本的数据查询操作,包括使用SELECT语句查询表中的数据,并运用WHERE子句进行条件查询。
2. 实验环境•数据库管理系统:MySQL•开发工具:Navicat Premium•操作系统:Windows 103. 实验步骤3.1 数据库及表的创建首先,为本实验创建一个名为university的数据库,并在其中创建一个名为students的表。
markdown sql CREATE DATABASE university;USE university;CREATE TABLE students ( id INT PRIMARY KEY, name VARCHAR(50), age INT, gender VARCHAR(10), major VARCHAR(50) );3.2 插入测试数据在students表中插入一些测试数据,以便进行查询操作。
markdown sql INSERT INTO students (id, name, age, gender, major) VALUES (1, ‘张三’, 20, ‘男’, ‘计算机科学与技术’);INSERT INTO students (id, name, age, gender, major) VALUES (2, ‘李四’, 22, ‘女’, ‘软件工程’);INSERT INTO students (id, name, age, gender, major) VALUES (3, ‘王五’, 21, ‘男’, ‘电子信息工程’);INSERT INTO students (id, name, age, gender, major) VALUES (4, ‘赵六’, 23, ‘女’, ‘通信工程’);3.3 使用SELECT语句查询数据按照实验要求,我们需要运用SELECT语句查询学生姓名为’张三’的信息。
中南大学大型数据库实验报告
实验2 自动编号问题实验学时: 2每组人数: 1实验类型: 3 (1:基础性2:综合性3:设计性4:研究性)实验要求: 1 (1:必修2:选修3:其它)实验类别: 3 (1:基础2:专业基础3:专业4:其它)一、实验目的1. 学习Oracle数据库的基本操作;2. 学习Oracle数据库的简历及创建;3. 学习使用Oracle的sequence;4. 学习使用存储过程;5. 学习使用删除操作。
二、实验内容1、医院门诊挂号,要求号连续,并且退的号要能重用。
每次挂号向号表中插入一条记录,退号从号表中删除一条记录,请设计一个方案来实现2、可以考虑sequence三、实验要求1. 熟练使用Oracle的基本操作;2. 熟练使用Oracle sequence;3. 使用存储过程来实现挂号、退号;四、实验步骤1. 打开Oracle数据库;2. 创建表;3. 创建序列;4. 创建过程;5. 调用过程五、实验结果创建代码:运行结果:六、实验小结在本次试验中我们学会了Oracle的基本操作和表的创建过程,序列的创建,过程的创建和触发器的创建过程。
在使用存储过程实现挂号、退号,存储过程的结构的使用过程中,出现一些错误,后来在网上找到了解决的办法。
实验3 考生分类问题实验学时: 2每组人数: 1实验类型: 3 (1:基础性2:综合性3:设计性4:研究性)实验要求: 1 (1:必修2:选修3:其它)实验类别: 3 (1:基础2:专业基础3:专业4:其它)一、实验目的1. 学习Oracle数据库的基本操作;2. 学习Oracle数据库的简历及创建;3. 学习使用Oracle的sequence;4. 学习使用存储过程;5. 学习自动归类。
二、实验内容某高校的研究生招生系统,要求对考生的成绩进行处理,根据每门专业课的最低分数线和总分的最低分数线自动将考生归类为录取考生或落选考生。
三、实验要求1. 熟练使用Oracle的基本操作;四、实验步骤1. 打开Oracle数据库;2. 创建表;3. 插入数据;4. 创建序列5. 创建存储过程;5. 执行过程五、实验结果创建代码:运行结果:六、实验小结在本次试验中我们学会了Oracle的基本操作和表的创建过程,序列的创建,过程的创建和插入数据与执行过程过程。
中南大学大型数据库报告
中南大学大型数据库报告学生姓名学院信息科学与工程学院专业班级计科120x《大型数据库技术》实验一1.创建一个本地位图管理表空间CAP_ts,表空间对应一个数据文件CAP_ts.dbf,该数据文件初始大小为20M,可以自动扩展。
CREATE TABLESPACE CAP_ts datafile 'CAP_ts.dbf' size 20M reuse extent management local autoallocate;ALTER DATABASE DEFAULT TABLESPACE CAP_ts;2.在表空间CAP_ts中创建表Customers、Products和Agents,其中列cid、pid、aid分别为这3张表的主键。
向表中添加如下数据(可首先将表中数据放入EXCEL表,然后在SQL Developer中导入数据库)。
CREATE TABLE Customers(cid V ARCHAR(5) PRIMARY KEY NOT NULL,cnaem V ARCHAR(10),city V ARCHAR(10),discount REAL);CREATE TABLE Products(pid V ARCHAR(5) PRIMARY KEY NOT NULL,pnaem V ARCHAR(10),ity V ARCHAR(10),quantity NUMBER(10),price REAL);CREATE TABLE Agents(aid V ARCHAR(5) PRIMARY KEY NOT NULL,anaem V ARCHAR(10),city V ARCHAR(10),percent NUMBER(3));insert into Customers values('C001','TipTop','Duluth',10.00);insert into Customers values('C002','Basics','Dallas',12.00);insert into Customers values('C003','Allied','Dallas',8.00);insert into Customers values('C004','ACME','Duluth',8.00);insert into Customers values('C005','Oriental','Kyoto',6.00);insert into Customers values('C006','ACME','Kyoto',0.00);insert into Products values('P01','comb','Dallas',111400,0.50);insert into Products values('P02','brush','Newark',203000,0.50);insert into Products values('P03','razor','Duluth',150600,1.00);insert into Products values('P04','Pen','Duluth',125300,1.00);insert into Products values('P05','pencil','Dallas',221400,1.00);insert into Products values('P06','folde','Dallas',123100,2.00);insert into Products values('P07','case','Newark',100500,1.00);insert into Agents values('A01','smith','New York',6);insert into Agents values('A02','Jones','Newark',6);insert into Agents values('A03','Brown','Tokyo',7);insert into Agents values('A04','Gray','New York',6);insert into Agents values('A05','Otasi','Duluth',5);insert into Agents values('A06','smith','Dallas',5);3.通过数据字典视图查看是否已创建表Customers、Products和Agents,以及每个表的存储参数设置。
中南大学数据库实践报告
超市形式在我国于 20 世纪 90 年代初期起步,现已成为我国零售业的一种重 要形态。随着超市的高速发展,其经营管理也变得愈加复杂,早期的售货员站柜 台的形式已不能满足现有的发展这样就迫切地需要引进新的思想技术和管理技 术进入到超市管理中。20 世纪 90 年代后期特别是近几年,我国的超市产业飞速 发展,其经营模式更为复杂,旧的管理体制已经无法适应超市的发展,这就迫切 的需要引进新的管理技术。超市的数据和业务越来越庞大,而计算机就是一种高 效的管理系统,这就需要我们把超市的管理与计算机结合起来,从而超市管理系 统应运而生。依靠现代化的计算机信息处理技术来管理超市,节省了大量的人力、 物力,改善了员工的并且能够快速反映出商品的进、销、存等状况和各种反馈信 息分析,使管理人员快速对市场的变化做出相应的决策,加快超市经营管理效率。
商 品 信 息 管 理
↓
信
信
信
息
息
息
添
修
删
加
ห้องสมุดไป่ตู้
改
除
小型超市管理系统
↓
进
员
货
工 信
统
息
计
管
管
理
理
↓
↓
员
进
进
中南大学数据库实验
中南大学电子技术课程设计题目:数据库实验报告学院:信息科学与工程学院专业班级:电子信息1002班学号:学生姓名:指导老师:张祖平实验一、熟悉ORALCE环境并练习SQL的定义一、目的与要求本实验主要是熟悉ORACLE的运行环境,在CLIENT端进行联接设置与服务器联通,进入ORACLE的SQL*PLUS的操作环境,进一步建立表格,并考虑主键,外部键,值约束。
二、操作环境硬件:主频2GHz以上服务器(内存2GB以上、硬件空闲2.2GB以上),主频1GHz以上微机,内存1GB以上。
软件:WINDOWS XP/2000/2003 SERVER 可安装ORACLE/9i/10g/11g/13i FOR NT/WINDOWS(注意在32位与64位的区别,可选企业版) 如果windows非server如XP等,安装时请选择个人版(PERSONAL)三、实验内容1.上机步骤单机版:(1)先启动PERSONAL ORACLE(START DATABASE)(2)用sql*plus登录(开始--程序-ORACLE FOR WIN-SQLP*PLUS(与网络版相同)进入SQL*PLUS用户名:SYSTEM/manager (其中manager为缺省口令,安装需要设定,根据设定的密码进行相应变化;不要数据库联接串,其中SYSTEM为DBA用户)还有一般用户scott/tiger(3)进入SQL>状态,可以执行SQL中的任何命令(建表,插入、删除、修改、查询等),还可建立用户、数据库等操作。
(4)退出,在SQL>状态,EXIT回车网络版:在实验室上机时,一般安装时管理员已设置好.先找到windows中的oracle服务(一般为oracleserviceORCL),启动此服务,再找到sql*plus所在的位置(一般桌面上有),运行即可进行登录界面.实验室现有环境操作步骤:(1)打开控制面板,――>管理工具――>服务――>启动Oracle ServiceORCL或者如图通过界面或资源管理器右键找到管理:再找服务:启动的服务如下或有OracleService****的服务:(2)从桌面执行SQL*PLUS或在程序中(3)输入:system/manager(4)在SQL>状态输入建立用户命令:create user username identified by password;其中username与password不要数字开头,用户名username中按规则加班级学号后缀如:U_31521表示3班学号尾数为1521号的用户。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中南大学数据库课程设计课程设计题目雨伞荐购系统设计指导老师赵颖,周洋专业班级电子信息1102姓名张文博学号 0909112002实验日期 2014年7月目录一.前言 (3)1.面向对象 (3)2.课程设计目的 (3)3.课程设计总体要求 (3)4.课程设计要求 (3)5.开发工具 (3)6.开发任务概述 (3)二.后台程序设计 (4)1.系统E-R表构建 (4)2.数据字典 (6)3.SQL表格部分截图 (9)三.前台程序设计 (12)1.实验设计总体框架 (12)2.功能模块分析 (12)3.业务流程 (13)4.实验设计截图 (13)四.实验心得 (44)前言一.面向对象中南大学2010级信息科学与工程学院电子信息工程专业1101-1102班学生二.课程设计目的培养学生熟练掌握一种大型数据库系统的开发环境如ORACLE9i/10g/11g(或更高版本)或SQL SERVER2005/2008/2010(或更高版本),对其底层的数据库触发器与程序过程有深入的了解,了解并基本掌握面向数据库的C/S模式的通用开发工具如VB、PB或DELPHI或直接用语言C#或Java开发C/S模式的系统;或者采用ASP、JSP、PHP等开发技术来开发B/S模式的系统,熟悉开发一个小型应用系统的过程及主要技术。
其中基于.Net平台与J2EE平台工具套件中同时支持B/S模式与C/S模式的开发。
三.课程设计总体要求1.完成设计、程序编制、调试与检查验收2.书写完整的课程设计报告(至少20页),需求分析(要做什么事情如功能需求、信息需求、做到什么程度如性能需求、有哪些难点或关键技术),系统设计(功能模型、信息模型、数据库设计、典型处理流程或算法、典型的后台处理如触发器或过程所涉及到的逻辑等)、系统实现及关键技术、总结与展望等章节。
3.数据库与大型程序的对象命名规则一定为XXX_班号(+)学号尾4位例如car_master_10104即表示车辆主要信息表,为1班,学号尾数是0104设计的表结构,cloth_Detail_42309即表示衣服信息明细表,为4班,学号尾数是2309设计的表结构,对象(包括大的程序对象及程序名等)如果不能体现班级及学号等信息,则视为程序不合要求,程序部分成绩可能不合格。
四.课程设计要求(1)提出技术方案,主要包括开发与运行模式选择、开发工具、数据库管理系统及其主要的特性保证。
(课程设计报告中体现)(2)对系统的功能和数据进行需求分析、总体设计和详细设计,并提交设计报告。
报告中数据库设计部分要包含系统E-R图、数据字典、表、视图、索引、文件组织结构等的定义和描述,还需要包括对象命名法。
(3)程序实现各项功能,在课程设计报告中要反映实现过程中采用的关键技术和主要程序流程以及主要的操作界面。
(4)数据库后台最好有触发器与多个过程,数据结构中最好有主明细结构(即主表与明细表联动)。
五.开发工具Microsoft SQL Server 2008R2,Microsoft Visual Studio2010 中文版六.开发任务概述本次设计主要是开发商品荐购系统。
其业务需求如下:某大型网购公司已积累了稳定的用户群,为了与用户加强联系、广泛收集商品信息、给用户更好的价格,特推出商品荐购系统,即由用户推荐网上其它门店的商品明细(含价格),系统管理员通过系统获取荐购的商品信息后会通过各种渠道进行核对(主要是人工方法,系统辅助商品比较分析),如果信息属实,系统管理员会给用户(会员)增长积分(标准为1-10分),并根据会员积分的情况进行升级(如原来0分为初级会员,荐购成功积累大于等于10分,升级为1级会员,如积累100分及以上,则为10级会员,其它级别依此类推),再根据会员级别允许会员以级别相应折扣购买推荐的或其它用户推荐的商品,如初级为全价,1级为9折、5级为5折可购买自荐商品或其它用户荐购商品;6级为4折、9级为1折可购买自荐商品;10级及以上直接免费获得自荐商品。
商品荐购系统的功能主要包括1.用户或会员操作功能:(1)用户注册、用户登录、用户信息维护等;(2)商品搜索、比较、排名、推荐等;2.管理员操作功能:(1)推荐商品采纳、会员积分、会员升级;(2)商品类别维护、类似商品信息统一等;(3)商品搜索、比较、排名;(4)操作日志记录、查询与维护等。
可采用C/S模式也可以采用B/S模式,还可以采用C/S模式与B/S模式相结合的汇合模式如管理员功能中商品类别维护、类似商品信息统一等;操作日志记录、查询与维护等用C/S模式,其它功能用B/S模式等,混合模式只要实现部分功能其程序部分的成绩将是良好及以上。
最好以某一实际的商品为参考,尽量不重复!商品类别重复的,将考虑成绩降档,先由同学将开发技术与商品类别对象于18周二上午报上来(可报2-3个),由指导老师协调后于18周三反馈给大家。
每种类型的商品其描述属性不完全一样,请注意数据表结构的设计。
商品可为车辆、衣服、图书、运动器材、食品、电子设备、鲜花、手机等等,还可以冠以不同的厂家或公司如:通用汽车、红旗轿车、山河智能轻型飞机、唯品会衣服、李宁运动服装、三星手机、联想电脑等等。
后台程序设计我选择设计的是球员护腕荐购系统,使用SQL Server 2008R2建立后台程序数据表,用Microsoft Visual Studio2010编写前台程序代码,然后连接数据库完成程序实现。
一.系统E-R 表构建用 户注 册 查看已有荐购商品购买商品查找商品注册会员信息表 荐购信息表购买信息表查找信息表管 理 员更新 查询 查看荐购商品用户表 商品表 荐购信息表用户表积分 添加积分 用 户 登录 购买商品购买信息表会员信息表商品信息表用户登录查看会员信息表购买信息表商品信息表管理员更新查询添加积分商品信息表积分表荐购信息表三.SQL表格部分截图前台程序设计前台程序由Microsoft Visual studio2010设计,设计过程中与数据库建立连接,实现程序的运行。
一.实验设计总体框架二.功能模块分析 1. 注册:用户必须注册为会员才课进行购买及推荐业务.2. 推荐商品:推荐商品分为两个模块,一个是对已有的商品进行推荐,只需输入对应商品的编号就可以进行推荐,只要是会员就可以在推荐页面中看到推荐的商品.另一个模块是对没有的商品进行推荐,推荐后只有管理员可以看见。
3. 购买商品:购买商品模块只需输入商品的编号就可以购买商品,购买成功后就可以开 始设计后台数据库 前台程序设计图形界面 编写实验代码登录,注册 修改密码 修改和删除商品 查询商品 推荐商品 管理员在购物记录里看见自己购买的商品。
每个会员只能查看自己购买的商品无法看到别人购买的商品。
4.管理员模块:管理员模块主要是添加管理员的功能,管理员可以对商品进行添加和删除,以及查看会员的信息,还可以对进行推荐的会员进行添加积分的操作。
5.积分模块:积分模块主要是用于商品的折扣,当会员进行商品推荐后,管理员就可以对其进行加积分的操作,随着积分的增长会员的等级也会增长,而高等级以后购买商品就会有对应的折扣。
三.业务流程用户通过注册可以成为本店的会员,注册成会员后方可查看,购买和推荐商品,并可获得相应的积分奖励。
会员可以修改自己的用户信息,购买或者推荐商品成功后,操作完成。
四.实验设计及截图设计注册登录界面。
注册成功会员后才可登录。
using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;using System.IO;namespace 雨伞荐购系统{public partial class login : Form{public login(){InitializeComponent();}private void login_Load(object sender, EventArgs e){}private void button1_Click(object sender, EventArgs e){string shenfen = comboBox1.Text;//定义身份string username = textBox1.Text;//定义用户名string password = textBox2.Text;//定义密码变量if (shenfen == "" || username == "" || password == "")MessageBox.Show("不允许为空!!请检查");else{if (shenfen == "会员"){//string strConnection = @"Data Source=.\SQLEXPRESS;Initial Catalog=yssys;Integrated Security=True";//SqlConnection conn = new SqlConnection(strConnection);string conn2 = Properties.Settings.Default.yssysConnectionString;SqlConnection conn = new SqlConnection(conn2);//利用Format格式化字符串,将指定的String 中的格式项替换为指定的Object实例的值的文本等效项。
string sql = string.Format("select count(*) from user_21102 where 会员名='{0}' and 密码='{1}'and id='{2}'", textBox1.Text.Trim(), textBox2.Text.Trim(),textBox3.Text.Trim());SqlCommand cmd = new SqlCommand(sql, conn);//利用一个现有连接创建一个Command,用以执行sql指令;conn.Open();/*利用ExecuteScalar执行查询,并返回查询所返回的结果集中第一行的第一列。
所有其他的列和行将被忽略。