WV.12-枚举-平面点的对称点

本文介绍了一个程序实现平面点关于x轴、y轴、原点的对称变换,通过枚举方式处理不同对称类型,展示了算法的灵活性与实用性。
问题及代码:
/*  
*Copyright (c)2014,烟台大学计算机与控制工程学院  
*All rights reserved.  
*文件名称:xy.cpp  
*作    者:单昕昕  
*完成日期:2015年1月18日  
*版 本 号:v1.0  
*  
*问题描述:按指定的方式,输出一个平面点的对称点。
*程序输入:一个平面点。 
*程序输出:按指定的方式输出对称点。 
*/
#include<iostream>
using namespace std;
enum SymmetricStyle {axisx, axisy, point};//分别表示按x轴, y轴, 原点对称三种方式
void output(double,double,SymmetricStyle);
int main()
{
    int x,y;
    cout<<"输入点的坐标:";
    cin>>x>>y;
    cout<<"关于x轴的对称点是:";
    output(x,y,axisx);
    cout<<"关于y轴的对称点是:";
    output(x,y,axisy);
    cout<<"关于坐标原点的对称点是:";
    output(x,y,point);
    return 0;
}
void output(double x,double y,SymmetricStyle symmetricStyle)
{
    switch(symmetricStyle)
    {
    case axisx:
        cout<<"("<<x<<","<<-y<<")"<<endl;
        break;
    case axisy:
        cout<<"("<<-x<<","<<y<<")"<<endl;
        break;
    case point:
        cout<<"("<<-x<<","<<-y<<")"<<endl;
        break;
    }
}



运行结果:





知识点总结:
枚举。

学习心得:

写函数的时候要补充完整,注意枚举体也是有名字的阿~~

<think> 我们正在处理用户关于在VNC环境下的.cshrc文件中添加特定PATH环境变量的问题。 用户要求添加的路径是:/space/CAD/synopsys2018/wv/0-2018.09-SP2/bin:/space1/CAD/synopsys2018/xa/0-2018.09-SP4/bin:/CAD/Synopsys/Hspice_N-2017.12-SP2/hspice/linux64:$PATH 注意:用户提到是在VNC环境下,这意味着我们可能需要考虑VNC启动时加载的环境。但是,无论是否在VNC中,.cshrc文件都是在启动新的csh/tcsh shell时加载的。 步骤: 1. 编辑.cshrc文件(位于用户的主目录下,通常是~/.cshrc) 2. 在文件中添加setenv命令来设置PATH环境变量。 3. 注意:在设置PATH时,我们使用了冒号分隔的路径,并且最后添加了原有的PATH(通过$PATH引用)。 但是,需要注意的是,如果用户已经设置了PATH,我们可能需要考虑是否要覆盖原有的设置,还是追加。根据用户的要求,他是将几个特定的路径添加到原有PATH的前面。 具体操作如下: 打开.cshrc文件,然后在适当的位置(比如在设置环境变量的部分)添加一行: setenv PATH /space/CAD/synopsys2018/wv/0-2018.09-SP2/bin:/space1/CAD/synopsys2018/xa/0-2018.09-SP4/bin:/CAD/Synopsys/Hspice_N-2017.12-SP2/hspice/linux64:$PATH 注意:在csh/tcsh中,设置环境变量使用setenv命令,并且变量名大写(PATH)。 另外,考虑到用户是在VNC环境下,VNC启动的会话可能会读取这个.cshrc文件(如果用户使用csh/tcsh作为默认shell)。如果VNC启动的是其他shell(比如bash),那么需要修改对应的配置文件(如.bashrc)。 但是,用户明确要求修改.cshrc,所以我们只关注.cshrc。 此外,由于用户是在VNC环境下,我们还需要注意以下几- 确保VNC服务启动时能够读取到用户的.cshrc。这通常取决于VNC服务器启动的shell类型和启动方式。 - 如果VNC服务器启动的是图形界面(如xstartup脚本中启动了终端模拟器),那么终端模拟器会继承VNC服务器的环境,也可能在启动终端时读取.cshrc(如果终端模拟器配置为登录shell)。 因此,修改.cshrc后,需要重新加载.cshrc或者重新启动VNC会话,以使更改生效。 具体操作步骤: 1. 使用文本编辑器打开或创建~/.cshrc文件。 例如:`vi ~/.cshrc` 2. 在文件末尾(或其他合适位置)添加以下行: ```tcsh setenv PATH /space/CAD/synopsys2018/wv/0-2018.09-SP2/bin:/space1/CAD/synopsys2018/xa/0-2018.09-SP4/bin:/CAD/Synopsys/Hspice_N-2017.12-SP2/hspice/linux64:$PATH ``` 3. 保存文件。 4. 为了让更改立即生效,可以在当前shell中执行: ```bash source ~/.cshrc ``` 但是,如果当前不是csh/tcsh shell,那么source命令可能不会生效。另外,在VNC环境中,如果已经打开了一个终端,那么在该终端中执行source命令会更新当前终端的PATH。对于新打开的终端,则会自动加载新的配置。 5. 如果希望VNC服务在下次启动时加载这个配置,需要重启VNC服务或者重新登录。 注意:如果用户使用的是系统级的VNC配置(如通过systemctl管理的vncserver服务),可能需要检查VNC服务的启动脚本,确保它是以用户登录的方式启动,从而读取.cshrc。 另外,引用[3]中提到的一个问题:xauth: file /root/.Xauthority does not exist。这提醒我们,在修改环境变量时,如果涉及到X11相关的工具,需要确保X11认证文件存在。但我们的修改主要是PATH,所以不会直接导致这个问题。 引用[4]中提到了一个与X11相关的临时目录的问题,但与我们当前任务无关。 因此,按照上述步骤修改.cshrc即可。 但是,为了确保设置的PATH正确,我们可以在设置后打印PATH检查: ```tcsh echo $PATH ``` 最后,考虑到用户可能同时使用多个工具,我们还可以建议用户将不同工具的路径设置分开管理,以便维护。例如: ```tcsh set synopsys_wv = /space/CAD/synopsys2018/wv/0-2018.09-SP2/bin set synopsys_xa = /space1/CAD/synopsys2018/xa/0-2018.09-SP4/bin set synopsys_hspice = /CAD/Synopsys/Hspice_N-2017.12-SP2/hspice/linux64 setenv PATH ${synopsys_wv}:${synopsys_xa}:${synopsys_hspice}:$PATH ``` 这样更清晰,便于以后修改。 现在,我们来生成回答。 </think>在VNC环境下向`.cshrc`文件添加`setenv PATH`环境变量的步骤如下: ### 📝 添加环境变量方法 1. **编辑`.cshrc`文件** ```bash vi ~/.cshrc # 使用vim编辑 # 或 nano ~/.cshrc # 使用nano编辑 ``` 2. **添加PATH设置** 在文件末尾添加(注意保留`$PATH`确保继承原有路径): ```tcsh setenv PATH /space/CAD/synopsys2018/wv/0-2018.09-SP2/bin:/space1/CAD/synopsys2018/xa/0-2018.09-SP4/bin:/CAD/Synopsys/Hspice_N-2017.12-SP2/hspice/linux64:$PATH ``` 3. **保存并退出编辑器** - Vim: 按`Esc`后输入`:wq` - Nano: `Ctrl+O`保存 → `Enter` → `Ctrl+X`退出 4. **立即生效配置** ```bash source ~/.cshrc ``` 5. **验证是否生效** ```bash echo $PATH # 应显示包含新增路径的输出 ``` ### ⚠️ VNC环境特殊注意事项 1. **路径冲突处理** 如果遇到`xauth: file /root/.Xauthority does not exist`错误(引用[3]): ```bash touch ~/.Xauthority # 创建缺失的认证文件 chmod 600 ~/.Xauthority # 设置正确权限 ``` 2. **PID资源冲突** 若VNC启动失败提示pid冲突(引用[4]): ```bash mv /tmp/.X11-unix /tmp/.X11-unix.bak # 备份占用资源目录 systemctl restart vncserver@\:1.service # 重启服务 ``` 3. **配置继承问题** VNC可能优先加载系统级配置(如`/etc/csh.cshrc`),确保用户级配置不被覆盖: ```tcsh if ($?VNC_SESSION) then # VNC环境检测 setenv PATH /your/custom/path:$PATH endif ``` ### 💡 最佳实践建议 1. **路径校验** 添加前确认路径存在: ```bash ls -d /space/CAD/synopsys2018/wv/0-2018.09-SP2/bin ``` 2. **模块化配置** 拆分路径设置便于维护: ```tcsh set synopsys_wv = /space/CAD/synopsys2018/wv/0-2018.09-SP2/bin set synopsys_xa = /space1/CAD/synopsys2018/xa/0-2018.09-SP4/bin set synopsys_hspice = /CAD/Synopsys/Hspice_N-2017.12-SP2/hspice/linux64 setenv PATH ${synopsys_wv}:${synopsys_xa}:${synopsys_hspice}:$PATH ``` 3. **VNC专用配置** 在VNC配置文件`~/.vnc/config`中(引用[2])添加: ```bash # 确保加载cshrc session=gnome-session # 或具体桌面环境 alwaysshared ``` > 修改后重启VNC服务生效: > `systemctl restart vncserver@:1.service` > 登录VNC后通过`echo $PATH`验证结果[^3][^4]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值