标题:求助!一道编程题,给定课程从键盘输入,直接回车时结束查询
只看楼主
talo6060
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2014-7-5
结帖率:0
已结贴  问题点数:20 回复次数:39 
求助!一道编程题,给定课程从键盘输入,直接回车时结束查询
设有三个数据表、各字段规定为:学号(c,5)、姓名(c,10)、课程号(c、4)、课程名(c,10)、成绩(N,4.1)。

学生表stu.dbf
学号    姓名
93061    王燕
93062    李丽
93063    詹贵
93064    潘泰
93065    戚莎
92061    张平
92062    赵东

课程表kc.dbf
课程号    课程名
C801    数据结构
C802    多媒体
C803    数据库
C804    C++语言
C805    WEB设计
C806    操作系统
C807    接口技术
C808    程序设计

选课表xk.dbf
学号    课程号    成绩
93061    C808    61
93061    C803    78
93062    C803    90
93062    C804    48
93063    C804    89
93063    C803    65
93064    C806    82
92061    C804    91
93065    C802    70
92062    C805    76

编写程序查找显示指定课程的学生的学号、姓名、该课程成绩、给定课程从键盘输入,直接回车时结束查询。例如,当从键盘输入课程名“数据库”时,显示如下内容:
93061    王燕   78
93062    李丽   90
93063    詹贵   65

求助~~~要交的作业,求大神给出答案。
三个表.zip (1.18 KB)


[ 本帖最后由 talo6060 于 2014-7-5 11:11 编辑 ]
搜索更多相关主题的帖子: 程序设计 课程表 多媒体 数据库 数据表 
2014-07-05 00:54
uhjiok123
Rank: 1
等 级:新手上路
帖 子:12
专家分:7
注 册:2014-7-2
得分:3 
不明白为什么要 “ 回车” 来结束,  如果按得早了,想要的结果不就不显示了吗?

还是说有一个按钮是确定  ,只是你不想用鼠标点击了而已?
要是这个样  
我有一个代码:但不知道对不对
PUBLIC CXKC
SCAN
CXKC=alltrim(thisform.text输入框.value)

THISFORM.Grid1.RecordSource="数据库名.表名"
SET FILTER TO 课程名=CXKC


ENDSCAN
THISFORM.Refresh
或者是USE 数据库名?

俺不知道对不对啊,仅供参考啊!!!!

[ 本帖最后由 uhjiok123 于 2014-7-5 01:30 编辑 ]
2014-07-05 01:17
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:3 
自己先写代码,不明白的地方再来论坛求助!

坚守VFP最后的阵地
2014-07-05 01:20
uhjiok123
Rank: 1
等 级:新手上路
帖 子:12
专家分:7
注 册:2014-7-2
得分:0 
回复 3 楼 sdta
啊  SORRY  版主---
2014-07-05 01:28
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
得分:3 
作业要自己动手 别做伸手党
2014-07-05 06:34
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:3 
每专业的课程名不多,用下拉列表选择操作效率高点吧? 操作强度低,防输入错误。
2014-07-05 07:26
talo6060
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2014-7-5
得分:0 
以下是引用sdta在2014-7-5 01:20:21的发言:

自己先写代码,不明白的地方再来论坛求助!



select 1
select 2
use 选课表xk
index on alltrim<课程号> tag
gradeidx
select 3
use 课程表kc
index on alltrim<课程名> tag
coursedx
store""to csname
accept"请输入待查询的课程名:"to csname
go top
seek alltrim<sname>
if eof
  ?"没有该课程!"
  close all
  return
endif
cn=alltrim
use
select 2
go top
seek cn

我自己这样弄的,可是不对。。。。
2014-07-05 09:09
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
以下是引用talo6060在2014-7-5 09:09:19的发言:




select 1 && 什么意思
select 2
use 选课表xk
*index on alltrim<课程号> tag
*gradeidx
index on alltrim<课程号> tag gradeidx

select 3
use 课程表kc
*index on alltrim<课程名> tag
*coursedx
index on alltrim<课程名> tag coursedx && 一行代码为什么要分两行

store""to csname
accept"请输入待查询的课程名:"to csname
go top
*seek alltrim<sname>
seek alltrim(sname)
if eof
  ?"没有该课程!"
  close all
  return
endif
cn=alltrim && 什么意思
use
select 2
go top
seek cn

我自己这样弄的,可是不对。。。。


上面这段代码要实现的功能是什么

[ 本帖最后由 sdta 于 2014-7-5 09:50 编辑 ]

坚守VFP最后的阵地
2014-07-05 09:42
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
** 用数据关联举个例子
CREATE CURSOR stu (学号 C(5), 姓名 C(10))
INSERT INTO stu VALUES ("93061", "王燕")
INSERT INTO stu VALUES ("93062", "李丽")
INSERT INTO stu VALUES ("93063", "詹贵")
INSERT INTO stu VALUES ("93064", "潘泰")
INSERT INTO stu VALUES ("93065", "戚莎")
INSERT INTO stu VALUES ("92061", "张平")
INSERT INTO stu VALUES ("92062", "赵东")

CREATE CURSOR kc (课程号 C(4), 课程名 C(10))
INSERT INTO kc VALUES ("C801", "数据结构")
INSERT INTO kc VALUES ("C802", "多媒体")
INSERT INTO kc VALUES ("C803", "数据库")
INSERT INTO kc VALUES ("C804", "C++语言")
INSERT INTO kc VALUES ("C805", "WEB设计")
INSERT INTO kc VALUES ("C806", "操作系统")
INSERT INTO kc VALUES ("C807", "接口技术")
INSERT INTO kc VALUES ("C808", "程序设计")

CREATE CURSOR xk (学号 C(5), 课程号 C(4), 成绩 I)
INSERT INTO xk VALUES ("93061", "C808", 61)
INSERT INTO xk VALUES ("93061", "C803", 78)
INSERT INTO xk VALUES ("93062", "C803", 90)
INSERT INTO xk VALUES ("93062", "C804", 48)
INSERT INTO xk VALUES ("93063", "C804", 89)
INSERT INTO xk VALUES ("93063", "C803", 65)
INSERT INTO xk VALUES ("93064", "C806", 82)
INSERT INTO xk VALUES ("92061", "C804", 91)
INSERT INTO xk VALUES ("93065", "C802", 70)
INSERT INTO xk VALUES ("92062", "C805", 76)

SELECT stu
INDEX on 学号 TAG 学号

SELECT kc
INDEX on 课程号 TAG 课程号

SELECT xk
SET RELATION TO 学号 INTO "stu", 课程号 INTO "kc"

m课程名 = INPUTBOX("输入查询课程名")

IF !EMPTY(m课程名)
    **BROWSE FIELDS xk.学号, stu.姓名, xk.成绩 FOR RTRIM(kc.课程名) == "数据库"
    SET FILTER TO RTRIM(kc.课程名) == ALLTRIM(m课程名)
    GO TOP
    BROWSE FIELDS xk.学号, stu.姓名, xk.成绩
    SET FILTER TO
    GO TOP
ENDIF

SET RELATION TO
2014-07-05 10:26
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:3 
交作业的时间过了吧?

授人以渔,不授人以鱼。
2014-07-05 10:34



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-433729-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.485570 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved