实验报告实验课程:软件技术基础学生姓名:学号:专业班级:机械设计制造及其自动化班南昌大学实验报告学生姓名:学号:专业班级:实验类型:验证综合设计创新实验日期:实验成绩:实验一:建立物业管理公司数据库
一、实验项目名称数据库管理系统综合应用-物业管理公司数据库
二、实验目的通过物业管理公司数据库的分析、设计到上机编程、调试和应用等全过程,进一步了解和掌握数据库这一章所讲解的内容。掌握使用T_SQL语句和企业管理器对数据表进行插入、修改和删除数据的操作,并体会数据完整性约束的作用,加深对数据完整性及其约束的理解。数据查询是数据库中最基本的操作,也是使用最频繁的操作,因此必须掌握SQL的查询语句(SELECT语句)的使用方法。进一步掌握SELECT语句的使用方法,通过实验能够熟练地使用SELECT语句。通过本实验,要熟练掌握INSERT、UPDATE、DELETE语句的语法和使用方法。掌握简单表的数据查询、数据排序和多表操作时数据连接查询的操作方法。掌握嵌套查询和统计查询的操作方法。
三、实验设备
1、安装SQLServer的服务器系统
2、安装了SQLServer客户端的计算机系统
3、由服务器与客户端的计算机系统所构成的计算机网络四.实验步骤
1、物业管理公司E-R图模型:
2、将物业管理公司的E-R图转换为关系模式:
1、计算机系统
2、安装TurboC或其他C语言集成开发工具
四、程序#include#include#defineLENsizeof(linklist)#defineNULL0typedefstructnode/_定义单链表结点结构类型_/intdata;/_结点的数据域_/structnode_ne_t;/_结点的指针域_/linklist;linklist_Linkcreat()/_建立单链表函数_/int_;linklist_head,_p,_rear;/_head,rear分别为头指针和尾指针_/head=(structnode_)malloc(LEN);head-data=-999;/_头指针数据域初始为-999_/rear=head;/_尾指针的初始值为头结点head_/printf(t请输入一组正整数以0结束输入:nt);scanf(%d,_);while(_!=0)/_输入数据以0为结束标志_/p=(structnode_)malloc(LEN);/_生成一个新结点_/p-data=_;/_给新结点数据域赋值_/rear-ne_t=p;/_新结点插入到表尾_rear之后_/rear=p;/_将尾指针rear指向新的尾结点之后_/scanf(%d,_);rear-ne_t=NULL;/_将单链表最后一个结点rear指针域置空_/printf(t建立链表成功!n);return(head);voidLinksearch(linklist_head)/_查找单链表结点函数_/int_;inti=0;linklist_p;printf(t请输入要查找节点的值:);scanf(%d,_);p=head;/_从头结点开始扫面_/while(p-ne_t!=NULL)(p-data!=_)/_循环判断查找数据_/p=p-ne_t;/_扫描下移_/i ;/_数据位置后移_/if(p-data=_)/_如果查找成功输出数据所在位置_/printf(t查找成功!n);printf(t查找的数据所在位置为:%dn,i);elseprintf(t查找结点不存在!n);linklist_Linkinsert(linklist_head)/_单链表结点插入函数_/int_,i,j=1;linklist_s,_q;printf(t请输入要插入的位置:);scanf(%d,i);printf(t请输入要插入的数据:);scanf(%d,_);s=(structnode_)malloc(LEN);/_建立插入数据的结点_/s-data=_;/_给新结点数据域赋值_/for(q=head;(q!=NULL)(jne_t;/_指针后移指向下一个结点_/if(q!=NULL)printf(t插入成功!n);s-ne_t=q-ne_t;/_新结点s后继指向原q结点的后继_/q-ne_t=s;/_q结点的后继指向新结点s_/elseprintf(t插入失败!n);return(head);linklist_Linkdelete(linklist_head)/_删除单链表结点函数_/linklist_p,_q;inti,j=1;/_j为结点计数变量初始为1_/printf(t输入要删除的位置:);/_输入删除的位置_/scanf(%d,i);p=head;while(p-ne_t!=NULL)(jne_t;j ;if(p-ne_t!=NULL)/_若该结点存在删除该结点_/q=p-ne_t;/_p的后继地址赋给q_/printf(t删除成功!n);printf(t删除的数据为:);printf(%dn,q-data);/_输出删除结点数据_/p-ne_t=q-ne_t;/_原始p结点后继指向q删除结点的后继_/free(q);/_释放删除结点空间q_/elseprintf(t删除失败!);return(head);voidLinkprint(linklist_head)/_输出单链表函数_/linklist_p;p=head;if(p=NULL)/_如果表为空输出失败信息_/printf(t输出失败!n);printf(t输出链表为:);while(p-ne_t!=NULL)/_从表头开始循环输出_/p=p-ne_t;/_指针后移指向下一个结点_/printf(=,p-data);printf(n);intSelect()intk;printf(-n);printf(t1.建立单链表n);printf(t2.查找单链表n);printf(t3.插入结点n);printf(t4.删除结点n);printf(t5.输出单链表n);printf(t6.退出n);doprintf(t请输入选择的功能:);scanf(%d,k);printf(-n);while(k6);return(k);voidmain()intn;linklist_head;while
(1)n=Select();/_菜单显示函数_//_输入选择的功能_//_主函数_//_输入选择功能_/switch(n)case1:head=Linkcreat();Linkprint(head);break;/_建立单链表函数_/case2:Linksearch(head);break;/_建立单链表函数_/case3:head=Linkinsert(head);Linkprint(head);break;/_单链表结点插入函数_/case4:head=Linkdelete(head);Linkprint(head);break;/_删除单链表结点函数_/case5:Linkprint(head);break;/_输出单链表函数_/case6:e_it(0);