这个控制台程序怎么写?

xmchw 2007-03-29 08:09:07
这个控制台程序怎么写? 在下面代码中在标题处如果输入为空,我提示他不能为空,继续输入标题,就是下面的注解部分?还有我输入完一本书,我提示他还是否要输入另外一本.如果选择Y 在重新输入谢谢

static void Main(string[] args)
{
ArrayList list = new ArrayList();

BookClass eBook = new BookClass();
Console.WriteLine("input book Title:");
string _title = Console.ReadLine(); //如果输入空有提示,但我还想停留在输入TITLE 这个行里面,不是跳到input book Author:",也就是输入空,就叫他一直输入,直到不为空为止.要怎么写?

eBook.Title = _title;
Console.WriteLine("input book Author:");
string _author = Console.ReadLine();
eBook.Author = _author;
Console.WriteLine("input book Cost:");
try
{
float _cost = float.Parse(Console.ReadLine().ToString());
eBook.Cost = _cost;
}
catch
{
Console.WriteLine("please input availibly float");
}
Console.WriteLine("input book Copies:");
try
{
int _copies = int.Parse(Console.ReadLine().ToString());
}
catch
{
Console.WriteLine("please input availibly int");
}
Console.ReadLine();
// list.Add(eBook);
// foreach (
}
class BookClass
{
private string title;
private string author;
private float cost;
private int copies;
public string Title
{
get
{
return title;
}
set
{
if (value == "")
{
Console.WriteLine("error, Title not allow null ,please input again");
}
else
{
title = value;
}
}
}
public string Author
{
get
{
return author;
}
set
{
if (value == "")
{
Console.WriteLine("error, Author not allow null ,please input again");
}
else
{
author = value;
}
}
}
public float Cost
{
get
{
return cost;
}
set
{
if (value ==float.NaN)
{
Console.WriteLine("error, Cost not allow null ,please input again");
}
else
{
cost = value;
}
}
}
public int Copies
{
get
{
return copies;
}
set
{
if (value==null )
{
Console.WriteLine("error, Copies not allow null ,please input again");
}
else
{
copies = value;
}
}
}
private void print()
{
Console.WriteLine("this book Title is "+title+" Author is "+ author +" Cost =" +cost.ToString()+ " Copies="+copies.ToString());
}
}
...全文
390 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Red_angelX 2007-03-29
  • 打赏
  • 举报
回复
写成函数 while循环
while(ReadTitle() == "")
{
Error();
}
leixueqiyi 2007-03-29
  • 打赏
  • 举报
回复
如何:创建 C# 控制台应用程序

本主题旨在使您在生成最简单形式的 C# 程序(控制台应用程序)时熟悉 Visual C# 速成版 开发环境。控制台应用程序在命令行执行所有的输入和输出,因此对于快速试验语言功能和编写命令行实用工具,它们是理想的选择。

注意
在开发 Windows 窗体应用程序时也将遇到本节中讨论的开发环境的功能,因此,请不要仅因为您不打算编写控制台应用程序就跳过本节!


在本节中,您将学习:

如何创建新的控制台应用程序。

如何在代码编辑器中使用书签。

如何查看解决方案资源管理器。

如何使代码保持良好的格式。

如何使用 IntelliSense 更快更准确地输入代码。

如何生成并运行您的应用程序。

在该任务中创建的程序将使用 System.IO 命名空间中的类获取并显示包含在 C:\ 目录中的所有文件及其大小的列表。您可以这些代码为基础,开发用于在目录中搜索特定文件名的实用工具。

创建 C# 控制台应用程序
在“文件”菜单上,单击“新建项目”。

出现“新建项目”对话框。该对话框列出 Visual C# 速成版 可以创建的不同默认应用程序类型。

选择“控制台应用程序”作为项目类型,并将应用程序的名称更改为“列出文件”。

默认位置应是恰当的,但您始终可以根据需要输入新路径。

单击“确定”。

Visual C# 速成版 为您的项目创建一个以项目标题命名的新文件夹,然后打开 Visual C# 速成版 主窗口,包括代码窗格,您将在其中输入和编辑构成应用程序的 C# 源代码。


注意窗口顶部的工具栏。该工具栏包含各种图标,用于创建、加载和保存项目、编辑源代码、生成应用程序以及隐藏和显示构成 Visual C# 速成版 环境的其他窗口。该工具栏的最右端的五个图标用来打开重要的窗口,如“解决方案资源管理器”和“工具箱”。将鼠标指针放在其中任一图标上可获取弹出工具提示帮助。

注意
书签使您可以从源代码中的一个位置快速跳转到另一位置,因此它对于编写大型程序很有用。要创建书签,请单击“切换书签”图标或按 Ctrl+B+T。边距中会显示一个青色标记。使用同样的过程可删除现有的书签。您可以创建任意数量的书签,并且可以使用“下一个”和“上一个”书签图标或按 Ctrl+B+N 和 Ctrl+B+P 在它们之间跳转。


确保“解决方案资源管理器”是可见的,方法是单击屏幕右端的“解决方案资源管理器”选项卡或工具栏中的“解决方案资源管理器”图标。

“解决方案资源管理器”是非常有用的窗格,因为它显示构成项目的各种文件。该项目中最重要的文件是“Program.cs”文件,它包含应用程序的源代码。


如果希望使 Visual C# 速成版 的显示保持美观整洁,了解如何打开和隐藏“解决方案资源管理器”之类的窗口非常重要。默认情况下,“解决方案资源管理器”是可见的。如果要隐藏“解决方案资源管理器”,请单击其标题栏中的“自动隐藏”图标(图钉图标),或打开“解决方案资源管理器”标题栏中的“选项”菜单并启用“自动隐藏”。其他窗口(如“类视图”和“属性”)也有这些图标。

在“代码编辑器”中键入类名“Console” 。

如果“解决方案资源管理器”仍挡住“代码”窗格,请在“代码”窗格中单击一次以隐藏“解决方案资源管理器”。现在单击 Main 方法内的左大括号 ({) 的右边,然后按 Enter 键开始新行。注意编辑器如何自动缩进光标。

注意
“代码编辑器”始终尝试将代码格式保持为标准的、易于阅读的布局。如果代码开始显得杂乱,您可以重新格式化整个文档,方法是单击“高级”,然后单击“编辑”菜单中的“设置文档格式”,或者按 Ctrl+E+D。


键入 C# 类名或关键字时,您可以选择:自行键入完整的单词,或者让 IntelliSense 工具(“代码”窗格的一部分)帮您完成。例如,当键入“c”时,将显示单词的弹出列表,因为 IntelliSense 尝试预测您要键入的单词。在这种情况下,您将看不到刚才显示的单词“Console”,因此要么向下滚动列表,要么继续键入单词“console”。当“console”在列表中突出显示时,按 Enter 或 Tab,或者双击它,Console 将添加到代码中。


使用 IntelliSense 的好处是可以保证大小写和拼写是正确的。键入代码还是让 IntelliSense 帮您完成,完全由您决定。

键入一个句点和方法名 WriteLine。

在 Console 后键入句点时,将立即显示另一个 IntelliSense 列表。该列表包含属于 Console 类的所有可能的方法和属性。您需要 WriteLine 方法,并且应该能够在列表的底部看到它。自行完成键入 WriteLine 或按向下键以选择它,然后按 Enter 或 Tab 或双击它。WriteLine 将添加到代码中。


键入左括号。您将立即看到 IntelliSense 的另一项功能 — 方法签名,它显示为工具提示消息。在本例中,您可以看到 19 个不同的签名,并可以通过单击向上键和向下键浏览它们。

键入字符串“该程序列出目录中的所有文件。”

键入引号内的消息,并添加一个右括号。您将看到显示一条红色波浪下划线,提醒您缺少某些符号。键入一个“分号” (;),下划线将消失。

完成程序。

键入或复制并粘贴以下代码来完成程序:

C# 复制代码
static void Main(string[] args)
{
Console.WriteLine("This program lists all the files in the directory:");

System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(@"C:\");

foreach (System.IO.FileInfo file in dir.GetFiles("*.*"))
{
Console.WriteLine("{0}, {1}", file.Name, file.Length);
}
Console.ReadLine();
}

程序中的最后一行是 Console.ReadLine();,它使程序在按 Enter 键之前暂停。如果省略此行,命令行窗口将立即消失,您将看不到程序的输出。如果您正在创建始终从命令行控制台中使用的命令行实用工具,可能需要省去对 ReadLine() 方法的调用。

运行程序。

现在您的第一个程序已完成,可以编译和运行了。要执行此操作,请按 F5 或单击工具栏中的“开始”图标。


在程序编译和运行后,将打开“控制台”窗口,并显示文件及其大小的列表。按 Enter 键退出该程序。

如果您不熟悉 C# 编程,阅读 C# 语言入门(Visual C# 速成版)一节并试验某些语言示例会是一个好方法。如果希望了解关于 Visual C# 速成版 开发环境和如何创建 Windows 应用程序的更多信息,请继续到下一节如何:创建 C# Windows 应用程序。
xmchw 2007-03-29
  • 打赏
  • 举报
回复
大家都不肯回答,就问大家哪里有控制台基础知识的网站?谢谢各位,真的急用
zhgroup 2007-03-29
  • 打赏
  • 举报
回复
Console下就是读取输入内容,可以根据ReadLine()方法返回的字符串来判断,就如解析命令行中的命令一样。
xmchw 2007-03-29
  • 打赏
  • 举报
回复
都是在FORM底下写,第一次写控制台程序.又急着要用没有办法,帮帮忙吧!
lizhizhe2000 2007-03-29
  • 打赏
  • 举报
回复
这个程序不建议你到这来问,因为这是一个学习程序很好的开端,又不是特别难,你自己想想应该可以解决!

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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