C#中使用语句和循环来控制程序流总程序....
2008-09-07 22:30
603 查看
using System;
using System.Collections.Generic;
using System.Text;
namespace WebSites1
{
class Program
{
//Program entry
static int Main(string[] args)
{
string[] siteName = new string[6];
string phrase = "What is your pleasure";
string choice;
int count = 0;
//If there was a cmd line arg,use it;
if (args.Length == 0)
{
Console.WriteLine("{0},Master?",phrase);
}
else
{
Console.WriteLine("{0},{1}?",phrase,args[0]);
}
do
{
//Print menu.
Console.WriteLine("");
Console.WriteLine("A - Add Site");
Console.WriteLine("S - Sort List");
Console.WriteLine("R - Show Report /n");
Console.WriteLine("Q - Quit/n");
Console.WriteLine("Please Choose(A/S/R/Q): ");
choice = Console.ReadLine();
//Figure out what user wanted.
switch(choice)
{
//Add a site
case "a":
case "A":
Console.WriteLine("/nAdding Site/n");
string doAgain = "Y";
//Keep it up as long as user wants
while(doAgain.ToUpper() == "Y")
{
Console.Write(
"Please Enter Site Name: ");
siteName[count++]=Console.ReadLine();
Console.Write("Add Another?:");
doAgain=Console.ReadLine();
//There can only by 5 items
if(count>=5)
{
break;
}
}
break;
//Sort the site list
case "s":
case "S":
Console.WriteLine("Sorting List....");
int n = siteName.Length - 2;
int j,k;
string save;
//Insertion sort,start at end & move up
for (k = n - 1; k >= 0; k--)
{
j = k + 1;
save = siteName[k];
//Sentinel makes inner
//loop more efficient
siteName[n + 1] = save;
//Insert siteName[k] into its sorted position
while (string.Compare(save, siteName[j]) > 0)
{
siteName[j - 1] = siteName[j];
j++;
}
siteName[j - 1] = save;
}
//clean out sentinel so it's not printed
siteName[siteName.Length-1] = null;
Console.WriteLine("Done sorting");
break;
//Print a report
case "r":
case "R":
string filter = "";
string response = "";
//If user wants to filter,get filter string
Console.Write("Would you like a Filter?");
response=Console.ReadLine();
if(response.ToUpper() =="Y")
{
Console.Write("/nPlease enter a filter:");
filter = Console.ReadLine();
}
Console.WriteLine("");
Console.WriteLine("Site Report");
Console.WriteLine("");
//Process every entry in siteName
foreach(string site in siteName)
{
//Execute filter
if(response.ToUpper() == "Y" && site != null & site.IndexOf(filter) == -1)
{
continue;
}
//Print non-filtered items
Console.WriteLine("/t {0}",site);
}
break;
//Exit Program
case "q":
case "Q":
Console.WriteLine("GoodBye");
break;
//User entered bad data
default:
Console.WriteLine("Huh??");
break;
}//end swith
//keep going until user wants to quit
}while((choice = choice.ToUpper()) != "Q");
return 0;
}
}
}
using System.Collections.Generic;
using System.Text;
namespace WebSites1
{
class Program
{
//Program entry
static int Main(string[] args)
{
string[] siteName = new string[6];
string phrase = "What is your pleasure";
string choice;
int count = 0;
//If there was a cmd line arg,use it;
if (args.Length == 0)
{
Console.WriteLine("{0},Master?",phrase);
}
else
{
Console.WriteLine("{0},{1}?",phrase,args[0]);
}
do
{
//Print menu.
Console.WriteLine("");
Console.WriteLine("A - Add Site");
Console.WriteLine("S - Sort List");
Console.WriteLine("R - Show Report /n");
Console.WriteLine("Q - Quit/n");
Console.WriteLine("Please Choose(A/S/R/Q): ");
choice = Console.ReadLine();
//Figure out what user wanted.
switch(choice)
{
//Add a site
case "a":
case "A":
Console.WriteLine("/nAdding Site/n");
string doAgain = "Y";
//Keep it up as long as user wants
while(doAgain.ToUpper() == "Y")
{
Console.Write(
"Please Enter Site Name: ");
siteName[count++]=Console.ReadLine();
Console.Write("Add Another?:");
doAgain=Console.ReadLine();
//There can only by 5 items
if(count>=5)
{
break;
}
}
break;
//Sort the site list
case "s":
case "S":
Console.WriteLine("Sorting List....");
int n = siteName.Length - 2;
int j,k;
string save;
//Insertion sort,start at end & move up
for (k = n - 1; k >= 0; k--)
{
j = k + 1;
save = siteName[k];
//Sentinel makes inner
//loop more efficient
siteName[n + 1] = save;
//Insert siteName[k] into its sorted position
while (string.Compare(save, siteName[j]) > 0)
{
siteName[j - 1] = siteName[j];
j++;
}
siteName[j - 1] = save;
}
//clean out sentinel so it's not printed
siteName[siteName.Length-1] = null;
Console.WriteLine("Done sorting");
break;
//Print a report
case "r":
case "R":
string filter = "";
string response = "";
//If user wants to filter,get filter string
Console.Write("Would you like a Filter?");
response=Console.ReadLine();
if(response.ToUpper() =="Y")
{
Console.Write("/nPlease enter a filter:");
filter = Console.ReadLine();
}
Console.WriteLine("");
Console.WriteLine("Site Report");
Console.WriteLine("");
//Process every entry in siteName
foreach(string site in siteName)
{
//Execute filter
if(response.ToUpper() == "Y" && site != null & site.IndexOf(filter) == -1)
{
continue;
}
//Print non-filtered items
Console.WriteLine("/t {0}",site);
}
break;
//Exit Program
case "q":
case "Q":
Console.WriteLine("GoodBye");
break;
//User entered bad data
default:
Console.WriteLine("Huh??");
break;
}//end swith
//keep going until user wants to quit
}while((choice = choice.ToUpper()) != "Q");
return 0;
}
}
}
相关文章推荐
- 第4章 流程控制----编写Java程序,使用while循环语句计算1+1/2!+1/3!+...+1/20!之和
- shell脚本之-if流程控制语句和for循环语句的使用
- 第八 讲 : 流程控制-循环语句 - 【天轰穿.Net4趣味编程系列视频教程-vs2010轻松学习C#】
- C++输出回文数用循环控制语句编写程序,完成表达式的计算
- (7)javascript的程序控制结构及语句------(2)循环控制语句、跳转语句、对话框
- javascript的程序控制结构及语句------(2)循环控制语句、跳转语句、对话框
- 学会使用循环控制语句解决实际问题
- Vb.Net程序知识点:在循环内改变循环次数,vb.net改变不了,C#可以。循环语句技巧。
- 2011年11月27日 学会使用循环控制语句解决实际问题
- 不允许使用循环语句、条件语句,在控制台中打印出1-200这200个数
- C++程序设计实验报告(十六)----用循环控制语句编写程序,完成表达式的计算
- JAVA——程序流程控制——循环语句——for循环(打印平行四边形)
- C_使用break和continue控制循环语句
- 编写高质量代码改善C#程序的157个建议——建议56:使用继承ISerializable接口更灵活地控制序列化过程
- 学会使用循环控制语句解决实际问题
- C#按钮事件中有循环,用另一个按钮控制停止,暂停,继续程序执行
- C#中循环语句:while、for、foreach的使用
- C# 使用windows程序控制window服务
- 十四周实验报告2:学会使用循环控制语句解决实际问题
- 第十周实验报告--2--学会使用循环控制语句解决实际问题