使用java语言 编写制图程序, 向控制台打印各种形状 正方形、正三角形、圆形、心形、菱形 等等图形

核心技术点
嵌套 for 循环 &if 选择结构
方法定义与调用
do...while & switch
================ 图形打印 ================
1. 打印正方形
2. 打印正三角形
3. 打印倒三角体
4. 打印正实心三角
5. 打印菱形
6. 打印字母菱形
7. 打印平行四边形
8. 退出程序
请输入序号 , 选择您要打印的图形 (1 ~ 7):
public class PrintGraph {
public static void main ( String [] args ) {
boolean flag = true ;
do {
// 获取用户输入的编号 , 进行匹配
int num = showMenu ();
switch ( num ){
case 1 :
print1 ();
break ;
case 2 :
print2 ();
break ;
case 3 :
print3 ();
break ;
case 4 :
print4 ();
break ;
case 5 :
print5 ();
break ;
case 6 :
print6 ();
break ;
case 7 :
print7 ();
break ;
case 8 :
System . out . println ( " 退出程序 ! 欢迎下次使用 !" );
return ;
}
} while ( flag );
}
//7. 平行四边形
private static void print7 () {
System . out . println ( "\n 打印平行四边形 -------------------------------------
----\n" );
for ( int i = 0 ; i < 5 ; i ++ ) {
for ( int j = 0 ; j < 5 - i ; j ++ ) {
System . out . print ( " " );
}
for ( int j = 0 ; j <= 8 ; j ++ ) {
System . out . print ( "*" );
} System . out . println ();
}
}
// 打印字母菱形
private static void print6 () {
System . out . println ( "\n 打印字母菱形 ---------------------------------------
--\n" );
// 定义 char 类型变量
char ch = 'A' ;
// 打印菱形的上半部分
for ( int i = 0 ; i < 4 ; i ++ ) {
for ( int j = 0 ; j <= 2 - i ; j ++ ) {
System . out . print ( " " ); // 打印空格
}
for ( int j = 0 ; j <= 2 * i ; j ++ ) {
System . out . print (( char )( ch + i )); // 打印字母
}
System . out . println ();
}
char ch2 = 'C' ;
// 打印下半部分
for ( int i = 0 ; i < 3 ; i ++ ) {
for ( int j = 0 ; j <= i ; j ++ ) {
System . out . print ( " " );
}
for ( int j = 0 ; j <= 4 - 2 * i ; j ++ ) {
System . out . print (( char )( ch2 - i ));
}
System . out . println ();
}
}
//5. 打印菱形
private static void print5 () {
System . out . println ( "\n 打印菱形 -----------------------------------------
\n" );
// 打印菱形的上半部分
for ( int i = 0 ; i < 4 ; i ++ ) {
for ( int j = 0 ; j <= 2 - i ; j ++ ) {
System . out . print ( " " ); // 打印空格
}
for ( int j = 0 ; j <= 2 * i ; j ++ ) {
System . out . print ( "*" ); // 打印 *
} System . out . println ();
}
// 打印下半部分
for ( int i = 0 ; i < 3 ; i ++ ) {
for ( int j = 0 ; j <= i ; j ++ ) {
System . out . print ( " " );
}
for ( int j = 0 ; j <= 4 - 2 * i ; j ++ ) {
System . out . print ( "*" );
}
System . out . println ();
}
}
/**
* 打印正实心三角形
* */
private static void print4 () {
System . out . println ( "\n 打印正实心三角形 ------------------------------------
-----\n" );
int count = 6 ; // 打印的行数
for ( int i = 0 ; i < count ; i ++ ) {
// 输出空格
for ( int k = count - 1 ; k > i ; k -- ) {
System . out . print ( " " );
}
// 输出 *
for ( int j = 0 ; j <= i ; j ++ ) {
//j=0 输出一颗星
if ( j == 0 ){
System . out . print ( "*" );
} else {
System . out . print ( "**" );
}
}
System . out . println ();
}
}
/**
* 打印倒三角
* */
private static void print3 () {
System . out . println ( "\n 打印倒三角形 ---------------------------------------
--\n" ); for ( int i = 0 ; i < 8 ; i ++ ) {
for ( int j = 8 ; j > i ; j -- ) {
System . out . print ( "* " );
}
System . out . println ();
}
}
/**
* 打印正三角形
* */
private static void print2 () {
System . out . println ( "\n 打印正三角形 ---------------------------------------
--\n" );
for ( int i = 0 ; i < 8 ; i ++ ) {
for ( int j = 0 ; j <= i ; j ++ ) {
System . out . print ( "* " );
}
System . out . println ();
}
}
// 打印菜单的方法
public static int showMenu (){
Scanner sc = new Scanner ( System . in );
System . out . println ( "\n\n============================ 图形打印
==========================" );
System . out . println ( "1. 打印正方形 " );
System . out . println ( "2. 打印正三角形 " );
System . out . println ( "3. 打印倒三角体 " );
System . out . println ( "4. 打印正实心三角 " );
System . out . println ( "5. 打印菱形 " );
System . out . println ( "6. 打印字母菱形 " );
System . out . println ( "7. 打印平行四边形 " );
System . out . println ( "8. 退出程序 " );
System . out . println ( " 请输入序号 , 选择您要打印的图形 (1 ~ 7):" );
int num = sc . nextInt ();
return num ;
}
//1. 打印正方形
public static void print1 (){
System . out . println ( " 打印正方形 -----------------------------------------
\n" );
for ( int i = 0 ; i < 8 ; i ++ ) { // 外循环控制 行数
for ( int j = 0 ; j < 8 ; j ++ ) { // 内循环控制 列数
System . out . print ( "@ " );
}
System . out . println (); // 换行
} }
}
  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
设计与实现 Java图形程序 该画图形程序旨在提供一个用户友好的图形界面,让用户可以通过简单操作绘制各种图形,并提供基本的编辑和保存功能。以下是该程序的主要设计与实现: 图形界面设计使用 Java Swing 或 JavaFX 构建图形界面,包括绘图区域、工具栏、菜单栏等组件。 设计简洁直观的用户界面,包括各种绘图工具的按钮、颜色选择器、线宽调节器等。 图形绘制算法: 实现基本的图形绘制算法,如直线绘制算法、矩形绘制算法、圆形绘制算法等。 考虑使用 Bresenham 算法等高效的绘制算法,确保图形绘制的速度和质量。 用户交互: 监听用户的鼠标事件和键盘事件,实现用户与程序的交互。 支持用户在绘图区域上点击、拖拽、绘制图形等操作。 图形编辑功能: 提供基本的编辑功能,如选择图形、移动图形、调整图形大小等。 支持对绘制的图形进行颜色、线宽等属性的修改。 文件保存与加载: 实现文件保存和加载功能,允许用户将绘制的图形保存为图片或特定格式的文件。 支持用户从文件中加载已保存的图形,并在绘图区域上显示。 实现技术: 使用 Java 编程语言进行开发,利用其丰富的绘图和用户界面库。 使用 Java Swing 或 JavaFX 构建图形界面。 考虑使用设计模式,如命令模式、观察者模式等,简化程序设计和实现。 通过以上设计与实现,Java图形程序可以提供一个简单但功能丰富的绘图工具,满足用户绘制各种图形的需求,并为用户提供良好的使用体验。
PyQt5是一个强大的图形用户界面工具包,用于创建应用程序的用户界面。通常情况下,PyQt5创建的界面不会显示控制台输出。 然而,可以通过一些技巧将控制台输出显示在PyQt5的图形用户界面中。最简单的方法是使用QPlainTextEdit小部件来显示控制台输出。下面是一个示例代码: ```python import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QTextEdit, QVBoxLayout, QWidget from PyQt5.QtCore import Qt class ConsoleWidget(QWidget): def __init__(self): super().__init__() self.console_output = QTextEdit() self.console_output.setReadOnly(True) layout = QVBoxLayout() layout.addWidget(self.console_output) self.setLayout(layout) def write_to_console(self, text): self.console_output.moveCursor(QTextEdit.End) self.console_output.insertPlainText(text) self.console_output.moveCursor(QTextEdit.End) QApplication.processEvents() class MainWindow(QMainWindow): def __init__(self): super().__init__() self.console_widget = ConsoleWidget() self.setCentralWidget(self.console_widget) sys.stdout = self.console_widget # 创建一个应用程序 app = QApplication(sys.argv) # 创建主窗口 window = MainWindow() window.show() # 在控制台输出一些文本 print('这是一些控制台输出') # 运行应用程序的主循环 sys.exit(app.exec_()) ``` 上述代码创建了一个自定义的控制台小部件(ConsoleWidget),与一个主窗口(MainWindow)一起使用。通过重定向sys.stdout到自定义控制台小部件,可以将所有print语句的输出重定向到该控制台小部件,并在PyQt5的图形用户界面中显示出来。 使用上述代码控制台输出将显示在主窗口(QMainWindow)中的QPlainTextEdit小部件中。在图形用户界面程序的其他地方,可以使用类似的方法来显示控制台输出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BigData-缑溪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值