在线等,为什么gotoxy(0,0)函数没有定义

ietj 2003-12-22 01:09:42
程序基于Windows Console Application

急啊

...全文
119 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ietj 2003-12-23
  • 打赏
  • 举报
回复
问题解决了,我换成了BC环境下

不过goto(x,y); printf("ok");

goto(x,y)不起作用啊
yintongshun 2003-12-22
  • 打赏
  • 举报
回复
gotoxy()是C中的函数,应该在 #include<graphics.h>库中
神功智能 2003-12-22
  • 打赏
  • 举报
回复
CDC::MoveTo
CPoint MoveTo( int x, int y );
CPoint MoveTo( POINT point );

ietj 2003-12-22
  • 打赏
  • 举报
回复
win32下有吗
神功智能 2003-12-22
  • 打赏
  • 举报
回复
不是吗?至少有关
反正在控制台下是没有这个函数的,建议你用api编win32程序或则在MFC下编,要么就用tc.
ietj 2003-12-22
  • 打赏
  • 举报
回复
Windows Console Application没有绘图函数

难道gotoxy()也是绘图函数吗
神功智能 2003-12-22
  • 打赏
  • 举报
回复
控制台下不提供图形模式吧,在MFC中画吧
bluebohe 2003-12-22
  • 打赏
  • 举报
回复
Windows Console Application没有绘图函数,只有打印输出文字的函数,你要从Win32程序中使用CDC的MoveTo和LineTo
神功智能 2003-12-22
  • 打赏
  • 举报
回复
这函数是Turbo C在DOS提供的函数
vc里没有的,在MFC下有相映的函数,MoveTo()
ietj 2003-12-22
  • 打赏
  • 举报
回复
是吗??

没有别的办法吗(在VC环境下)
hanyixin 2003-12-22
  • 打赏
  • 举报
回复

记得TC里倒是有一个gotoxy,VC里是不能用的,换个别的方法吧。
zhshly007 2003-12-22
  • 打赏
  • 举报
回复
这个屏幕操作的函数可能是没有包含
我曾经在这种模式下面进行过屏幕界面的编程,发现很多屏幕操作函数用不了
不知是否是windows的控制台允许这么做
arvid_gs 2003-12-22
  • 打赏
  • 举报
回复
gotoxy 你写的函数?
字符屏幕函数 Turbo C2.0的字符屏幕函数主要包括文本窗口大小的设定、窗口颜色的设置、 窗口文本的清除和输入输出等函数。 1.文本窗口的定义 Turbo C2.0默认定义的文本窗口为整个屏幕, 共有80列(或40列)25行的文本 单元, 每个单元包括一个字符和一个属性, 字符即ASCII 码字符, 属性规定该字 符的颜色和强度。 Turbo C2.0可以定义屏幕上的一个矩形域作为窗口, 使用window()函数定义。 窗口定义之后, 用有关窗口的输入输出函数就可以只在此窗口内进行操作而不超 出窗口的边界。 window()函数的调用格式为: void window(int left, int top, int right, int bottom); 该函数的原型在conio.h 中 (关于文本窗口的所有函数其头文件均为conio.h, 后面不再说明)。 函数中形式参数(int left, int top)是窗口左上角的坐标, (int right, int bottom)是窗口的右下角坐标, 其中(left, top)和(right, bottom) 是相对于整个屏幕而言的。 Turbo C 2.0规定整个屏幕的左上角坐标为 (1, 1), 右下角坐标为(80, 25)。并规定沿水平方向为 X轴, 方向朝右; 沿垂直 方向为 Y轴, 方向朝下。若window()函数中的坐标超过了屏幕坐标的界限, 则窗 口的定义就失去了意义, 也就是说定义将不起作用, 但程序编译链接时并不出错。 另外, 一个屏幕可以定义多个窗口, 但现行窗口只能有一个(因为DOS为单任 务操作系统), 当需要用另一窗口时, 可将定义该窗口的window() 函数再调用一 次, 此时该窗口便成为现行窗口了。 如要定义一个窗口左上角在屏幕(20, 5)处, 大小为30列15行的窗口可写成: window(20, 5, 50, 25); 2. 文本窗口颜色的设置 文本窗口颜色的设置包括背景颜色的设置和字符颜色的设置, 使用的函数及 其调用格式为: 设置背景颜色: void textbackground(int color); 设置字符颜色: void textcolor(int color); 有关颜色的定义见表1。 表1. 有关颜色的定义 ━━━━━━━━━━━━━━━━━━━━━━━━━━━ 符号常数 数值 含义 字符或背景 ─────────────────────────── BLACK 0 黑 两者均可 BLUE 1 兰 两者均可 GREEN 2 绿 两者均可 CYAN 3 青 两者均可 RED 4 红 两者均可 MAGENTA 5 洋红 两者均可 BROWN 6 棕 两者均可 LIGHTGRAY 7 淡灰 两者均可 DARKGRAY 8 深灰 只用于字符 LIGHTBLUE 9 淡兰 只用于字符 LIGHTGREEN 10 淡绿 只用于字符 LIGHTCYAN 11 淡青 只用于字符 LIGHTRED 12 淡红 只用于字符 LIGHTMAGENTA 13 淡洋红 只用于字符 YELLOW 14 黄 只用于字符 WHITE 15 白 只用于字符 BLINK 128 闪烁 只用于字符 ━━━━━━━━━━━━━━━━━━━━━━━━━━━ 上表中的符号常数与相应的数值等价, 二者可以互换。例如设定兰色背景可 以使用textbackground(1), 也可以使用textbackground(BLUE), 两者没有任何 区别, 只不过后者比较容易记忆, 一看就知道是兰色。 Turbo C另外还提供了一个函数, 可以同时设置文本的字符和背景颜色, 这 个函数的调用格式为: void textattr(int attr); 其中: attr的值表示颜色形式编码的信息, 每一位代表的含义如下: 位 7 6 5 4 3 2 1 0 B b b b c c c c ↓ ┕━━━┙ ┖─────┘ 闪烁 背景颜色 字符颜色 字节低四位cccc设置字符颜色(0到15), 4~6三位bbb设置背景颜色(0到7), 第7位B设置字符是否闪烁。假如要设置一个兰底黄字, 定义方法如下: textattr(YELLOW+(BLUE<<4)); 若再要求字符闪烁, 则定义变为: textattr(128+YELLOW+(BLUE<<4); 注意: (1) 对于背景只有0 到7 共八种颜色, 若取大于7 小于15的数, 则代表的 颜色与减 7后的值对应的颜色相同。 (2) 用textbackground()和textcolor() 函数设置了窗口的背景与字符颜 色后, 在没有用clrscr()函数清除窗口之前, 颜色不会改变, 直到使用了函数 clrscr(), 整个窗口和随后输出到窗口中的文本字符才会变成新颜色。 (3) 用textattr()函数时背景颜色应左移4位, 才能使3位背景颜色移到正 确位置。 下面这个程序使用了关于窗口大小的定义、颜色的设置等函数, 在一个屏幕 上不同位置定义了7个窗口, 其背景色分别使用了7种不同的颜色。 例1.: #include #include main() { int i; textbackground(0); /* 设置屏幕背景色 */ clrscr(); /* 清除文本屏幕 */ for(i=1; i<8; i++) { window(10+i*5, 5+i, 30+i*5, 15+i); /* 定义文本窗口 */ textbackground(i); /* 定义窗口背景色 */ clrscr(); /* 清除窗口 */ } getch(); } 3. 窗口内文本的输入输出函数 一、窗口内文本的输出函数 int cprintf("<格式化字符串>", <变量表>); int cputs(char *string); int putch(int ch); cprintf()函数输出一个格式化的字符串或数值到窗口中。它与printf() 函 数的用法完全一样, 区别在于cprintf()函数的输出受窗口限制, 而printf() 函 数的输出为整个屏幕。 cputs()函数输出一个字符串到屏幕上, 它与puts()函数用法完全一样, 只 是受窗口大小的限制。 putch()函数输出一个字符到窗口内。 注意: (1) 使用以上几种函数, 当输出超出窗口的右边界时会自动转到下一行的 开始处继续输出。当窗口内填满内容仍没有结束输出时, 窗口屏幕将会自动逐行 上卷直到输出结束为止。 二、窗口内文本的输入函数 int getche(void); 该函数在前面已经讲过, 需要说明的是, getche()函数从键盘上获得一个字 符, 在屏幕上显示的时候, 如果字符超过了窗口右边界, 则会被自动转移到下一 行的开始位置。 下面这个程序给例1.中加入了一些文本的输出函数。 例2.: #include #include int main() { int i; char *c[]={"BLACK", "BLUE", "GREEN", "CYAN", "RED", "MAGENTA", "BROWN", "LIGHTGRAY"}; textbackground(0); /* 设置屏幕背景色 */ clrscr(); /* 清除文本屏幕 */ for(i=1; i<8; i++) { window(10+i*5, 5+i, 30+i*5, 15+i); /* 定义文本窗口 */ textbackground(i); /* 定义窗口背景色 */ clrscr(); /* 清除窗口 */ } getch(); return 0; } 4. 有关屏幕操作的函数 void clrscr(void); 清除当前窗口中的文本内容, 并把光标定位在窗口 的左上角(1, 1)处。 void clreol(void); 清除当前窗口中从光标位置到行尾的所有字符, 光 标位置不变。 void gotoxy(x, y); 该函数很有用, 它用来定位光标在当前窗口中的位 置。这里x, y是指光标要定位处的坐标(相对于窗口 而言), 当x, y超出了窗口的大小时, 该函数就不起 作用了。 int gettext(int xl, int yl, int x2, int y2, void *buffer); int puttext(int x1, int y1, int x2, int y2, void *buffer); gettext()函数是将屏幕上指定的矩形区域内文本内容存入buffer 指针指向 的一个内存空间。内存的大小用下式计算: 所用字节大小=行数*列数*2 其中: 行数=y2-y1+1 列数=x2-x1+1 puttext()函数则是将gettext()函数存入内存buffer中的文字内容拷贝到屏 幕上指定的位置。 int movetext(int x1, int x2, int y2, int x3, int y3); movetext()函数将屏幕上左上角为(x1, y1), 右下角为(x2, y2)的一矩形窗 口内的文本内容拷贝到左上角为(x3, y3)的新的位置。该函数的坐标也是相对于 整个屏幕而言的。 注意: 1. gettext()函数和puttext()函数中的坐标是对整个屏幕而言的, 即是屏 幕的绝对坐标, 而不是相对窗口的坐标。 2. movetext()函数是拷贝而不是移动窗口区域内容, 即使用该函数后, 原 位置区域的文本内容仍然存在。 例3. include main() { int i; char *f[]={"Load F3", "Pick Alt-F3", "New ", "Save F2", "Write to ", "Directory", "Change dir", "Os shee ", "Quit Alt-X"}; char buf[9*14*2]; clrscr(); textcolor(YELLOW); textbackground(BLUE); clrscr(); gettext(10, 2, 24, 11, buf); window(10, 2, 24, 11); textbackground(RED); textcolor(YELLOW); clrscr(); for(i=0; i<9; i++) { gotoxy(1, i++); cprintf("%s", f[i]); } getch(); movetext(10, 2, 24, 11, 40, 10); puttext(10, 2, 24, 11, buf); getch(); } 下面再介绍一些函数: void highvideo(void); 设置显示器高亮度显示字符。 void lowvideo(void); 设置显示器低亮度显示字符。 void normvideo(void); 使显示器返回到程序运行前的显示方式。 int wherex(void); 这两个函数返回当前窗口下光标的x, y坐标。 int wherey(void); 返回目录 
设计课题一:班级成绩管理系统 一、 问题描述: 对一个有N个学生的班级,每个学生有M门课程。该系统实现对班级成绩的录入、显示、修改、排序、保存等操作的管理。 二、功能要求: 1、本系统采用一个结构体数组,每个数据的结构应当包括:学号、姓名、M门课程名称。 2、本系统显示这样的菜单: 请选择系统功能项: a、 成绩录入 b、 成绩显示 c、 成绩保存 d、 成绩排序 e、 成绩修改(要求先输入密码) f、 成绩统计 (1) 显示每门课程成绩最高的学生的基本信息 (2) 显示每门课程的平均成绩 (3) 显示超过某门课程平均成绩的学生人数 g、 退出系统 3、执行一个具体的功能之后,程序将重新显示菜单。 4、将学生成绩保存到文件中。 三、算法提示: 1、数据结构:结构体类型数组。 2、数据库结构:下表构成该系统的基本数据库。 姓名 学号 课程名称1 课程名称2 ●●●●●● char Char float float 四、测试数据: 学生人数N=10 课程门数M=4 课程名:数学、语文、英语、政治 五、其它 对该系统有兴趣的同学可以在实现上述基本功能后,完善系统的其它功能。 问题补充: 今天谁能给我答案啊!!!!!!!急急!!!!!!! 提问者: 342123465 - 试用期 一级 最佳答案 C语言课程设计报告—班级成绩管理系统 需要分析: 学生成绩管理系统有13种功能。把这13个功能做成13个子函数。在主函当数中设计一个菜单对这13个子数进行管理。来实现对整个系统的操作。 根据课题的要求。每一个学生的包括姓名(char)、学号(char)、M门课程的成绩(float).再加上系统功能上的要求每一学生的信息还要总分和名次等。所以自然的想到要用结构体来定义每一个学生的信息结构。然后用链表把它们组成一个有序的整体。用对链表的操作来实现对所有学生信息的统一管理(成绩显示、成绩排序、成绩修改等)。最后为了以后按照处理后的顺序保存到文件中。 . 各函数的功能: 概要设计: 程序的模块组成: 主 函 数: int main() 新建函数:STUDENT *init() 输入函数 :STUDENT *create() 显示函数: void print(STUDENT *head) 删除函数: STUDENT *delete(STUDENT *head) 按名字寻找函数: void lookup(STUDENT *head) 保存函数: void save(STUDENT *head) 按总分排序函数: STUDENT *sort(STUDENT *head) 计算总分和均分函数: void computer(STUDENT *h) 修改函数: STUDENT *Modify(STUDENT *head,STUDENT *new) 按学号排序函数: STUDENT *index(STUDENT *h) 菜单函数:int menu_select() 各个函数的主要功能: 输入函数: 随时输入数据。 菜单函数:显示系统主菜单。 显示函数: 显示所有学生的信息。 寻找函数: 方便学生查找自己的成绩。 删除函数: 删除某学生的信息。 排序函数: 按总成绩排序。 按学号排序函数: 按学号排序。 插入函数: 可以插入新的信息。 保存函数: 保存好学生成绩,以免丢失。 统计函数: l 显示每门课程成绩最高的学生的基本信息。 l 显示每门课程的平均成绩。 l 显示超过某门课程平均成绩的学生人数。 课题的功能模块的划分: 开始 菜单界面 功能选择 初始化函数 输入学生信息 删除学生信息 显示学生信息 查找学生信息 按成绩排序 保存到文件 从文件读数据 插入学生成绩 分类合计 退出系统 结束 详细设计: 整个系统除了主函数外,另外还有14个函数,实现八大功能:输入功能、显示功能、查找功能、排序功能、插入功能、保存功能、读取功能。各个函数的详细设计说明分别如下: 主函数 main() 利用无限次循环for(;;)和swithch()实现各函数的调用,系统根据输入的数字选项来调用相应的函数。 菜单选择函数 int menu_select() 这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的九大功能,根据每个功能前面的序号进行选择。等执行完每一个函数功能后,返回菜单。 代码设计: 初始化函数 STUDENT *init() 这是一个无参函数,里面只有两个语句,它的作用是使链表初始化,使head的值为NULL和一个清屏语句。比如:没有这个函数的话,在你没有输入任何数据的情况下,去执行显示功能的时候会显示一些乱

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧