一个简单的作业问题 不知用SORTLIST类能不能完成任务,好像是SORTLIST,SORT开头的吧,它是始终排序的如果不能用普通的都可以,就用ARRAYLIST,插入的时候自己判断插入指定位置,让它始终排序做一个类继承ARRARLIST类,让它变得更强一点,添加它的增加,删除方法就可以了,应该不是很难 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 // 设有书籍类Book, 类中有域:Title、Author、Press、Date、ISBN以及NextBook;// 1) 设计一个只读属性,读取Title、Author、Press和Date;// 2) 定义一个ArrayList数组,加入5本书对象; // 3) 将上述数组,改造成按出版日期Date排序的链表。// 4) 进一步讨论,请构思一个方案:利用ArrayList怎样建立一个链表,写出如何完成链表的插入、删除、查找等操作的算法。(用文字表达即可)using System;using System.Collections;namespace ex5_4{ enum BookSortBy { Date, Title } class BookInfo : IComparable { public string title; private string author; private string press; private DateTime date; private string isbn; private static BookSortBy sortBy = BookSortBy.Date; public string Title { get { return title; } } public DateTime Date { get { return date; } } public BookSortBy SortBy { get { return sortBy; } set { sortBy = value; } } public BookInfo( string title, DateTime date /*...*/ ) { this.title = title; this.date = date; //... } public int CompareTo( object value ) { if ( value == null ) return 1; switch ( SortBy ) { case BookSortBy.Date : return ( this.Date.CompareTo( ( ( BookInfo ) value ).Date) ); default: return ( this.Date.CompareTo( ( ( BookInfo ) value ).Date) ); } } } class BookList : ArrayList { private int index = 0; public override object this[ int index ] { get { this.index = index; return base[ index ]; } } public BookInfo NextBook { get { if ( ++index >= base.Count ) return null; return ( BookInfo ) base[ index ]; } } public int Add( BookInfo bookInfo ) { base.Sort(); base.Add( bookInfo ); return ++index; } } class Class1 { [STAThread] static void Main(string[] args) { BookList bookList = new BookList(); BookInfo bookInfo = new BookInfo( "book1", Convert.ToDateTime( "2004-1-2" ) ); bookList.Add( bookInfo ); bookInfo = new BookInfo( "book2", Convert.ToDateTime( "2004-1-1" ) ); bookList.Add( bookInfo ); bookInfo = new BookInfo( "book3", Convert.ToDateTime( "2004-1-4" ) ); bookList.Add( bookInfo ); bookInfo = new BookInfo( "book4", Convert.ToDateTime( "2004-1-3" ) ); bookList.Add( bookInfo ); bookInfo = new BookInfo( "book5", Convert.ToDateTime( "2004-1-5" ) ); bookList.Add( bookInfo ); for ( int i = 0; i < bookList.Count; i++ ) { Console.Write( i + " " ); Console.Write( ( ( BookInfo ) bookList[i] ).Title + " " ); Console.Write( ( ( BookInfo ) bookList[i] ).Date + " " ); Console.Write( "\r\n\t\t NextBook:" + " " ); bookInfo = bookList.NextBook; if ( bookInfo == null ) Console.Write( "End" ); else { Console.Write( bookInfo.Title + " " ); Console.Write( bookInfo.Date + " " ); Console.WriteLine( "\r\n" ); } Console.WriteLine( "\r\n////////////////////////////" ); } Console.Read(); } }} 通过程序 如何 是一个最小化的全屏程序再次弹出 C# winform问题 可不可以用线程来实现timer的效果 在一副图片指定的位置上加亮,如何实现的? 一个奇怪的问题...... 怎么访问Excel里合并的单元格????? 请高手看看这个update()方法为什么没有作用 为什么label透明之后,左边和上边出现边界? 用.net写的Dll文件怎么可以让VB等程序引用啊 怎样用messagebox显示dataGridView中第一行第一列的值? 见笑了,问个问题。 我向大家体格比较水的的问题?关于语言的
// 1) 设计一个只读属性,读取Title、Author、Press和Date;
// 2) 定义一个ArrayList数组,加入5本书对象;
// 3) 将上述数组,改造成按出版日期Date排序的链表。
// 4) 进一步讨论,请构思一个方案:利用ArrayList怎样建立一个链表,写出如何完成链表的插入、删除、查找等操作的算法。(用文字表达即可)
using System;
using System.Collections;namespace ex5_4
{
enum BookSortBy
{
Date,
Title
}
class BookInfo : IComparable
{
public string title;
private string author;
private string press;
private DateTime date;
private string isbn;
private static BookSortBy sortBy = BookSortBy.Date; public string Title
{
get
{
return title;
}
} public DateTime Date
{
get
{
return date;
}
} public BookSortBy SortBy
{
get
{
return sortBy;
}
set
{
sortBy = value;
}
} public BookInfo( string title, DateTime date /*...*/ )
{
this.title = title;
this.date = date;
//...
} public int CompareTo( object value )
{ if ( value == null )
return 1; switch ( SortBy )
{
case BookSortBy.Date :
return ( this.Date.CompareTo( ( ( BookInfo ) value ).Date) );
default:
return ( this.Date.CompareTo( ( ( BookInfo ) value ).Date) );
} } } class BookList : ArrayList
{
private int index = 0; public override object this[ int index ]
{
get
{
this.index = index;
return base[ index ];
}
} public BookInfo NextBook
{
get
{
if ( ++index >= base.Count )
return null;
return ( BookInfo ) base[ index ];
}
} public int Add( BookInfo bookInfo )
{
base.Sort();
base.Add( bookInfo );
return ++index;
}
} class Class1
{
[STAThread]
static void Main(string[] args)
{
BookList bookList = new BookList();
BookInfo bookInfo = new BookInfo( "book1", Convert.ToDateTime( "2004-1-2" ) );
bookList.Add( bookInfo );
bookInfo = new BookInfo( "book2", Convert.ToDateTime( "2004-1-1" ) );
bookList.Add( bookInfo );
bookInfo = new BookInfo( "book3", Convert.ToDateTime( "2004-1-4" ) );
bookList.Add( bookInfo );
bookInfo = new BookInfo( "book4", Convert.ToDateTime( "2004-1-3" ) );
bookList.Add( bookInfo );
bookInfo = new BookInfo( "book5", Convert.ToDateTime( "2004-1-5" ) );
bookList.Add( bookInfo );
for ( int i = 0; i < bookList.Count; i++ )
{
Console.Write( i + " " );
Console.Write( ( ( BookInfo ) bookList[i] ).Title + " " );
Console.Write( ( ( BookInfo ) bookList[i] ).Date + " " );
Console.Write( "\r\n\t\t NextBook:" + " " );
bookInfo = bookList.NextBook;
if ( bookInfo == null )
Console.Write( "End" );
else
{
Console.Write( bookInfo.Title + " " );
Console.Write( bookInfo.Date + " " );
Console.WriteLine( "\r\n" );
}
Console.WriteLine( "\r\n////////////////////////////" );
}
Console.Read();
}
}
}