小型学生信息管理系统实验报告数据库proc.docx
《小型学生信息管理系统实验报告数据库proc.docx》由会员分享,可在线阅读,更多相关《小型学生信息管理系统实验报告数据库proc.docx(14页珍藏版)》请在冰点文库上搜索。
小型学生信息管理系统实验报告数据库proc
大连民族学院
计算机科学与工程学院实验报告
实验题目:
数据库应用系统的初步开发
课程名称:
数据库系统概论(实验课)
实验类型:
□演示性□验证性□操作性□设计性■综合性
专业:
软件工程班级:
083班
学生姓名:
陈婧学号:
2008082304
实验日期:
2010年6月3日
实验地点:
计算机学院多媒体机房
(一)
实验学时:
6学时实验成绩:
指导教师签字:
年月日
一.实验题目:
数据库应用系统的初步开发---小型学生信息管理系统的开发
二.实验目的:
掌握的嵌入式SQL并进行综合应用。
利用开发工具(VC)设计实现简单的数据库应用系统(学生信息管理系统),并做到界面友好、使用方便。
三.实验内容:
对学生信息表用proc完成以下任务:
打印出所有学生的基本信息。
可以交互式的添加一个新的学生。
可以根据某个学生的学号交互式的修改该学生的年龄。
可以根据该学生的学号交互式的删除该学生的信息。
四.实验步骤:
为防止实验结果出现乱码,重新配置Oracle数据库服务,启动OracleOraHome90TNSListener和OracleServiceORCL服务。
连接数据库:
sqlplus/nolog↙
connsystem/system@orcl↙
创建学生信息表cj_s,SQL语句为:
createtablecj_s(
snovarchar2(10),
snamevarchar2(10),
ssexvarchar2
(2),
sageint,sdeptvarchar2(20));
编写扩展名为".pc"的文件
编译源代码:
在DOS中找到pc文件所在的路径,并使用命令使其生成c源文件(proc命令)
执行编译后生成的“.c”文件,用VC打开生成的c源文件,编译运行即可
VC编译器配置
a.在VC编译器中,选择“工具->选项”,在弹出的对话框中找到“目录”选项,下拉列表中分别选择“includefiles”和“libraryfiles”,并分别向其中添加Oracle安装目录中“precomp/public”和“precomp/lib/MSVC”路径,具体视本机器上Oracle的安装路径而定。
b.在VC编译器中,选择“工程->设置”,在弹出的选项卡中选择“连接”选项,在其“类库模块”中添加Oracle安装目录中“precomp/lib/MSVC”路径下的lib文件(oraSQL10.liboraSQX10.lib)。
五.实验代码:
#include
#include
#include
#include
#include
execsqlincludesqlca;
intmain()
{
execsqlincludesqlca;/*定义SQL通信区*/
execsqlbegindeclaresection;
/*主变量说明开始*/
chars_no[10];
chars_name[10];
chars_sex[2];
ints_age;
chars_dept[20];
intsel;
intcount;
charuser_name[50],user_pwd[20],net_name[20];
voidmenu();/*友好界面函数声明*/
execsqlenddeclaresection;
/*主变量声明结束*/
printf("pleaseenterusername:
");
scanf("%s",user_name);
getchar();
printf("pleaseenterpassword:
");
scanf("%s",user_pwd);
getchar();
printf("pleaseenternetName:
");
scanf("%s",net_name);
getchar();
execsqlconnect:
user_name/*连接数据库*/
identifiedby:
user_pwdusing:
net_name;
while
(1){
menu();
scanf("%d",&sel);
getchar();
system("cls");
switch(sel)
{
case1:
{
count=0;
execsqldeclaresxcursorfor/*定义游标sx*/
select*
fromcj_s;/*sx对应的语句*/
execsqlopensx;
/*打开游标sx,指向查询结果的第一行*/
for(;;)
/*用循环结构逐条处理结果集中的记录*/
{
execsqlfetchsxinto
:
s_no,:
s_name,:
s_sex,:
s_age,:
s_dept;/*推进游标,将当前数据放入主变量*/
if(sqlca.sqlcode!
=0)/*sqlcode!
=0,表示操作不成功*/
{
if(count==0)
{
printf("没有任何学生信息!
\n");
break;
}
break;
}
if(count++==0)
{
printf("-------------------学生信息遍历表-------------------\n");
printf("学号姓名性别年龄院系\n");
}
printf("%s%10s%2s%10d%28s\n",s_no,s_name,s_sex,s_age,s_dept);
}
execsqlclosesx;/*关闭游标*/
execsqlcommitwork;/*提交更新*/
getchar();
break;
}
case2:
{
printf("请输入要添加学生的学号:
");
scanf("%s",s_no);
getchar();
printf("请输入要添加学生的姓名:
");
scanf("%s",s_name);
getchar();
printf("请输入要添加学生的性别:
");
scanf("%s",s_sex);
getchar();
printf("请输入要添加学生的年龄:
");
scanf("%d",&s_age);
getchar();
printf("请输入要添加学生的院系:
");
scanf("%s",s_dept);
getchar();
execsqlinsertintocj_s
values(:
s_no,:
s_name,:
s_sex,:
s_age,:
s_dept);
execsqlcommitwork;
printf("添加学生信息成功!
\n");
getchar();
break;
}
case3:
{
printf("请输入要删除学生的学号:
");
scanf("%s",s_no);
getchar();
execsqldeletefromcj_s
wheresno=:
s_no;
if(sqlca.sqlcode!
=0)
{
printf("没有要删除的学生信息!
\n");
getchar();
break;
}
execsqlcommitwork;
printf("删除学生信息成功!
\n");
getchar();
break;
}
case4:
{
printf("请输入要修改学生的学号:
");
scanf("%s",s_no);
getchar();
printf("请输入新的年龄:
");
scanf("%d",&s_age);
getchar();
execsqlupdatecj_s
setsage=:
s_age
wheresno=:
s_no;
if(sqlca.sqlcode!
=0)
{
printf("没有要修改的学生信息!
\n");
getchar();
break;
}
execsqlcommitwork;
printf("修改学生信息成功!
\n");
getchar();
break;
}
default:
{
printf("成功退出系统,谢谢使用,再见!
\n");
printf("特别鸣谢本系统开发人员:
陈婧!
\n");
printf("\n");
return0;
break;
}
}
}
}
voidmenu()
{
system("cls");
printf("----------------学生信息管理系统----------------\n");
printf("\n");
printf("1.遍历学生信息\n");
printf("2.添加学生信息\n");
printf("3.删除学生信息\n");
printf("4.修改学生信息\n");
printf("5.退出\n");
printf("\n");
printf("----------------软件083班陈婧制作---------------\n");
printf("\n");
printf("->请选择:
");
}
五.实验结果:
连接数据库和建表:
编译“.pc”文件:
打开执行编译后生成的“.c”文件:
配置VC编辑器:
【程序执行结果】
登录连接数据库:
友好界面显示:
遍历学生信息:
添加学生信息:
删除学生信息:
修改学生信息:
退出系统:
六.体会:
经过6课时的奋战,终于完成了本次小型学生信息管理系统实验。
我觉得这次实验不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高,可以更加有信心的去面对即将到来的课程设计。
通过这次实验,我清晰的知晓自己知识还比较欠缺,自己要学习的东西还有很多。
清晰的认识到自己什么东西都会一点,什么东西都懂一点,眼高手低的缺点。
但是通过这次实验,我明白了学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己的知识、实践能力和综合素质。
更应该注重自己思考问题,解决问题,动手能力的提高。