想深入学习C#语言,有没有达人知道C#的好的资料呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了想深入学习C#语言,有没有达人知道C#的好的资料呢?相关的知识,希望对你有一定的参考价值。

我希望的是找到C#的练习资料,最好是关于动手实践的项目,以及相应的试题练习,最好有视频。即动手项目+试题+视频,希望的是有视频带领着做项目以及解答试题。

《C#程序设计》——编程题(上机操作题)
1、从键盘输入一个正整数,按数字的相反顺序输出。

2、从键盘上输入两个整数,由用户回答它们的和,差,积,商和取余运算结果,并统计出正确答案的个数。

3、写一条for语句,计数条件为n从100~200,步长为2;然后再用while语句实现同样的循环。

4、编写一段程序,运行时向用户提问“你考了多少分?(0~100)”,接受输入后判断其等级并显示出来。判断依据如下:
等级=优 (90~100分);良 (80~89分);中 (60~69分);差 (0~59分);

5、输入一个整数,将各位数字反转输出。

6、使用穷举法并分别用for、while、do…while循环语句求出1~100之间的质数。

7、求出1~1000之间的所有能被7整除的树,并计算和输出每5个的和。

8、编写一个控制台程序,分别输出1~100之间的平方、平方根、自然对数、e指数的数学用表。

9、设计一个包含多个构造函数的类,并分别用这些构造函数实例化对象。

10、编写一个矩形类,私有数据成员为举行的长(len)和宽(wid),无参构造函数将len和wid设置为0,有参构造函数设置和的值,另外,类还包括矩形的周长、求面积、取举行的长度、取矩形的长度、取矩形的宽度、修改矩形的长度和宽度为对应的形参值等公用方法。

11、编写一个类,要求带有一个索引器可以存储100个整型变量。

12、编写一个类Cal1,实现加、减两种运算,然后,编写另一个派生类Cal2,实现乘、除两种运算。

13、建立三个类:具名、成人、官员。居民包含身份证号、姓名、出生日期,而成人继承自居民,多包含学历、职业两项数据;官员则继承自成人,多包含党派、职务两项数据。要求每个类中都提供数据输入输出的功能。

14、编写一个类,其中包含一个排序的方法Sort(),当传入的是一串整数,就按照从小到大的顺序输出,如果传入的是一个字符串,就将字符串反序输出。

15、设计一个类,要求用事件每10秒报告机器的当前时间。

16、编写一个窗体程序,用菜单命令实现简单的加、减、乘、除四则运算,并将结果输出到对话框。

17、编写一个具有主菜单和快捷菜单的程序,实现文本文件的打开、修改和保存。

18、在label控件中随机输入20个1~1000之间的整数,求出其中所有的素数的和。

19、编写一个程序,通过使用主菜单和工具栏按钮实现与Window记事本间的文本数据拷贝。

20、仿照word中的“文件打开”对话框界面,编制一个自己的文件打开模式对话框。

21、自己编写一个控件,使得该控件放置在窗体上之后,可以通过拖动四个顶点随意地改变控件的形状。(提示:在控件的Paint事件过程中编写外观绘制代码)

22、编写一个程序,将一幅位图显示在一个图片框中,对位图惊醒45度旋转后,将图中所有的红色替换为黑色,然后存盘。

23、编写一个控制台程序,分别将字符串“hello,my friend”写入文件f1.txt,然后,将数据分别以整型、布尔型、双精度型、字符型读出并显示。

24、编写一个程序,模拟DOS系统中的COPY CON命令功能。

25、分别用Socket 类和TC PListener/TCPClient 类建立一个通过TCP协议进行文件传输的程序。

26、利用网络流实现一个利用UDP协议进行聊天的程序,并使一端采用UTF-8编码,另一端则采用Unicode解码。

27. 创建一个带有3个子线程的程序,第一个线程序启动10毫秒后,第二个线程再启动,然后再等10毫秒后第三个线程启动,每一个线程从1~1000循环输出线程的名称和计数,当3个线程结束时要输出各自的结束信息,然后,主线程结束。

28. 制作一个程序模拟图书馆中的书籍借阅操作,有两个人几乎同时查阅某一本书是否还有(用两个线程访问同一个变量),如果有,就将书的数量减1,如果没有输出“书籍已经全部借出”。用3个线程同步的方法分别实现程序。
编写一个自定义类Employee,要求:
A. 该类包含连接到access 的Northwind数据库的公用方法。
B. 该类包含若干个字段用来存储从“雇员表”中读取的若干字段的值。
C. 该类包含在表中移动记录指针的方法。
D. 该类包含修改字段值的方法。
E. 该类包含将字段值显示出来的方法。

30. 编写一个程序,从键盘上输入3个数,输出这3个数的积及它们的和。要求编写成控制台应用程序。
31.编写一个程序,输入梯形的上底,下底和高,输出梯形的面积。要求编写成Window应用程序。

32. 编写一个进行加减乘除四则运算的程序,要求:输入两个单精度数,然后输入一个运算符号,输出两个单精度数进行运算后的结果。要求编写为控制台程序。

33. 兔子繁殖问题。设有一对新生的兔子,从第三个月开始他们每个月都生一对兔子,新生的兔子从第三个月开始又每个月生一对兔子。按此规律,并假定兔子没有死亡,20个月后共有多少个兔子?要求编写为控制台程序。

34. 编写程序,把由10个元素组成的一维数组逆序存放再输出。

35. 编写程序,统计4X5二维数组中奇数的个数和偶数的个数。

36. 编写一个求整数任意位数字的过程,过程的调用形式为:digit(n,k),其功能是取出数n从右边起的第K位数字,例如:digit(1234,3)=2, digit(1234,4)=1, digit(1234,6)=0。

37. 编写一个应用程序用来输入的字符串进行加密,对于字母字符串加密规则如下:
‘a’→’d’ ‘b’→’e’ ‘w’→’z’ …… ‘x’→’a’ ‘y’→’b’ ‘z’→’c’
‘A’→’B’ ‘B’→’E’ ‘W’→’Z’ …… ‘X’→’A’ ‘Y’→’B’ ‘Z’→’C’
对于其他字符,不进行加密。

38. 定义一个车辆(Vehicle)基类,具有Run、Stop等方法,具有Speed(速度)、MaxSpeed(最大速度)、Weight(重量)等域。然后以该类为基类,派生出bicycle、car等类。并编程对该派生类的功能进行验证。

39. 编写出一个通用的人员类(Person),该类具有姓名(Name)、年龄(Age)、性别(Sex)等域。然后对Person 类的继承得到一个学生类(Student),该类能够存放学生的5门课的成绩,并能求出平均成绩,要求对该类的构造函数进行重载,至少给出三个形式。最后编程对student类的功能进行验证。

40. 编写一个冒泡法排序程序,要求在程序中能够捕获到数组下标越界的异常。

41.编写一个计算器程序,要求在程序中能够捕获到被0除的异常与算术运算溢出的异常。

42.制作一个简单计算器程序。程序运行时通过按钮输入运算公式,单击【计算】按钮得到计算结果。

43. 编写一个能够浏览文本文件和图象文件查看程序。

44. 编写一个能同时播放视频文件和背景音乐的程序,要求背景音乐和视频文件都能循环播放。用MMControl控件设计一个能够播放音乐、MIDI文件的播放器,要求具有自动重播和显示进度的功能。

45 编程输出1~100中能被3整除但不能被5整除的数,并统计有多少个这样的数。

46. 编程输出1000以内的所有素数。

47. 编写一个程序,对输入的4个整数,求出其中最大值和最小值。

48. 分别用for,while,do…while语句编写程序,实现求前n个自然数之和。

49. 编程输出九九乘法表。

50. 定义一个行数和列数相等的二维数组,并执行初始化,然后计算该数级两条对角线上的元素值之和。

51. 建立一个一维数组,使用该数组列出所学习的课程名称。

52. 编写一个包含学生基本资料的结构类型数据(要求包括姓名,性别,年龄,身高,体重等)。

53. 编写程序,将一年中12个月,建立一个枚举类型数据,并对其进行调用。

54. 在窗体上建立一个标签,一个文本框,一个命令按钮,标签的text属性设置为“VC#程序设计”,设计一个程序,单击命令按钮,将标签上的信息显示在文本框中。

55. 设计一个简单的计算器,在文本框中,显示输入值和计算结果,用命令按钮做为数字键和功能键。

56. 在窗体上建立一个列表框,一个文本框和一个命令按钮,在列表框中列有本班10个同学的姓名,当选中某个学生姓名后,单击此命令按钮,则在文本框中显示该学生的籍贯。

57. 用定时器控件按秒计时,在窗体上创建一个标签,程序执行后在标签内显示经过的秒。

58. 编写程序在E盘下新建一文本文件,并对该文件进行复制,移动,写入,读出操作

59. 编写一个程序,其中对于每种数据类型,都声明两个变量,并分别将值10和1.879赋给它们。

60. 编写一个程序,检查变量的值是否大于65。如果是,则打印文本“THE VALUE IS GREATER THAN 65!”

61. 编写一个程序,检查一个字符变量的值是否为T或t。

62. 编写一行代码,将long变量MyLong的值赋给short变量MyShort。

63. 编写一行代码,将int变量IntVal的赋给short变量ShortVal。
64. 编写一行代码,将decimal变量DecVal的值赋给long变量LongVal。

65. 编写一行代码,将int变量ch的值赋给字符变量char Val。

66. 编写一个从99数到1的while语句。

67. 编写一条根据变量name的值执行不同操作的switch语句。如果该变量的值为Robert,则打印消息”Hi Bob”;如果为Richard,则打印消息“Hi Rich”;如果为Barbara,则打印消息“Hi Barb”;如果为Kalee,则打印消息“You Go Girl!”;对于其他情况,则打印“Hix”,其中x为变量name的值。

67. 编写一个掷筛子100次的程序,并打印出各种点数的出现次数。

68. 创建一个类,它存储一个int数据成员MyNumber,并给该数据成员创建属性,当该数据成员被存储时,将其乘以100;当其被读取时,将其除以100。

69. 编写一个die类,它存储筛子的面数(sides)以及当前掷筛子得到的点数(value)。

70. 编写公有方法xyz的方法头,该方法接受两个参数,不返回任何值。

71. 为方法myMethod编写方法头。该方法接受三个参数。第一个名为myVal,其数据类型为double,并按值传递;第二个是一个输出变量,名为myOutput;第三。个是按引用传递的,数据类型为int,名为myRerence。另外该方法是公有的,其返回类型为byte。

72. 创建一程序,该程序包括一个筛子类,后者有三个数据成员,即筛子的面数,筛子的点数以及包含随机数类的静态数据成员。为这个类声明一个名为roll()的成员方法,它以随机的方式返回下一次掷筛子得的点数。

73. 为教师编写一个程序,该程序使用一个数组存储30个学生的考试成绩,并给各个数组元素指定一个1-100的随机值,然后计算平均成绩。

74.为名为abc的公有函数编写方法头,该函数接受两个short参数,返回值类型为byte。

75.编写一行接受命令行参数的代码。

76.创建一个名称空间,它包含一个类和另一个名称空间,被包含的名称空间也包含一个类。然后创建一个使用这两个类的应用程序类。

77.编写为ABC类声明构造函数的方法头,它接受两个int 参数ARG1和ARG2。该构造函数调用基类的构造函数,并将ARG2传递给它。调用是在方法头中完成的:
Public ABC ( int ARG1,int ARG2 ):base (ARG2)



78. 以“星期几,月份,日和四位年份”格式(如Monday,January 1,2002) 打印日期值的代码。

79. 一个这样的程序:让用户输入其全名,年龄和电话号码,以特定的格式显示这些消息,并显示用户的姓名的首字母。

80. 为Iid的接口编写代码,该接口只包含一个名为ID的属性成员。

81. 声明一个名为Iposition的接口的代码。该接口包含一个接受一个Point值,并返回一个布尔值的方法。

82.编写一个使用代表的程序,对整型数组中的元素进行排序。

83.创建一个程序,它使用二进制文件方法来写文件。创建一个用于存储人的姓名、年龄、会员资格的结构。将这些信息写入文件中(提示:年龄可以是整数,会员资格可以是布尔型)。

84.创建一个程序,从控制台读取文本,并将其写入到文件中。用户输入一个空行,表示结束输入。

85.创建一个程序,将一个200*200像素的窗体放在屏幕中央。

86.创建一个窗体,该窗体包括一个可用来输入数字的文本框,当用户单击按钮后,在标签中显示一条消息,指出该数字是否位于0-100之间。

87.编写这样的代码:将名为butnl 和butn2 的单选按钮控件加入到一个名为grbox的组合框中。

88.创建一个使用ColorDialog 对话框的应用程序。将应用程序主窗体的背景颜色设置为ColorDialog 返回的颜色。返回的颜色被存储在Color属性中。提示:创建一个ColorDialog变量,调用该对话框时,选择的颜色应该存储在Color属性中。

89.创建一个包含菜单的应用程序。用户选择菜单时,将显示一个对话框,对话框中包含大量的控件,其中一个是ok按钮。

90. 一个控制台应用程序,输出1~5的平方值,要求:
用for语句实现。
用while语句实现。
用do-while语句实现。

91. 一个控制台应用程序,要求用户输入5个大写字母,如果用户输入的信息不满足要求,提示帮助信息并要求重新输入。

92. 一个控制台应用程序,要求完成写列功能。
1)接收一个整数n。
2)如果接收的值n为正数,输出1~n间的全部整数。
3)如果接收的值n为负值,用break或者return退出程序。
4)转到A继续接收下一个整数。

93. 一个控制台应用程序,求1000之内的所有“完数”。所谓“完数”是指一个数恰好等于它的所有因子之和。例如6是完数,因为6=1+2+3。

94.编写一个控制台应用程序,完成下列功能:
1)创建一个类,用无参数的构造函数输出该类的类名。
2)添加一个重载的构造函数,带有一个String类型的参数,在此构造函数中将传递的字符串打印出来。
3)在Main方法中创建属于这个类的一个对象,不传递参数。
4)在Main方法中创建属于这个类的另一个对象,传递一个字符串“This is a string.”。
5)在Main方法中声明类型为这个类的一个具有5个对象的数组,但不要实际创建分配到数组里的对象。
6)写出运行程应该输出的结果。

95.编写一个控制台应用程序,定义一个类 MyClass,类中包含有public、private以及protected数据成员及方法。然后定义一个从MyClass类继承的类MyMain,将Main方法放在MyMain中。在Main方法中创建MyClass类的一个对象,并分别访问类中的数据成员及方法。要求注明在试图访问所有类成员时哪些语句会产生编译错误。

96.创建一个类包含有protected数据。在相同的文件里创建第二个类,用一个方法操纵第一个类里的protected数据。

97.写一个控制台应用程序,接收一个长度大于3的字符串,完成下列功能:
1)输出字符串的长度。
2)输出字符串中第一个出现字母a的位置。
3)在字符串的第3个字符后面插入子串“hello”,输出新字符串。
4)将字符串“hello”替换为“me”,输出新字符串。
5)以字符“m”为分隔符,将字符串分离,并输出分离后的字符串。

98.编写一个控制台应用程序,完成下列功能,并回答提出的问题。
1)创建一个类A,在构造函数中输出“A”,在创建一个类B,在构造函数中输出“B”。
2) 从A继承一个名为C的新类,并在C内创建一个成员B。不要为C创建构造函数。
3)在Main方法中创建类C的一个对象,写出运行程序后输出的结果。
4)如果在C中也创建一个构造函数输出“C”,整个程序运行的结果又是什么?

99.编写一个控制台应用程序,完成下列功能,并写出运行程序后输出的结果。
1)创建一个类A,在A中编写一个可以被重写的带int类型参数的方法MyMethod,并在该方法中输出传递的整型值后加10后的结果。
2)再创建一个类B,使其继承自类A,然后重写A中的MyMethod方法,将A中接收的整型值加50,并输出结果。
3)在Main方法中分别创建A和类B的对象,并分别调用MyMethod方法。

100.写出符合下列要求的数据库连接字符串以及所使用的数据库连接类。
1)数据库服务器地址为202.196.131.26,登录用户名为sa,密码为administrator,后台数据库为Microsoft SQL Server数据库,要连接的数据库名为test.
2) 据库为Access数据库,数据库文件存放在运行程序所在目录的\db子目录下,文件名为jobtypeDB.Mdb。
3)数据库为FoxPro数据库,数据库目录为:\studentDB,数据表为grade.dbf。

101.分别写出符合要求的SQL语句。
1)创建表Table1结构为:
学生学籍表(学号,姓名,性别,出生年月,院系,籍贯)
2)创建表Table2结构为:
成绩表(学号,课程,成绩)
其中学号不能为空,并且是唯一的。
3)将以下信息分别插入到表中:
张小明,男,学号031245,1984年5月出生,计算机学院,江西南昌人。考试成绩为:数据结构 85分,计算机网络 75分,英语 80分,政治经济学 81分。
路宽,男,学号031256,1983年7月出生,计算机学院,河南焦作人,考试成绩为:数据结构 65分,计算机网络92分,英语 76分,政治经济学 59分。
查询名叫“张小明”的学生的所有课程的成绩。
查询有不及格门次的学生的学号、姓名、性别,及不及格的课程名。
将学号为031256的学生的马克思政治经济学成绩加5分。
计算所有学生的成绩总分,按降序排序并显示学生的学号和姓名。
计算并显示各门课程的平均分数及课程名。

102.写出符合要求的存储过程语句,表结构同第101题。
1)查询学生的课程成绩,参数为学号。
2)计算并显示各门课程的平均分数及课程名。
3)修改某学生的课程成绩,参数为学号、课程、成绩。

103.编写一个ASP.NET Web应用程序,使用DropDownList控件,以“[stor_id]stor_name”的样式显示pubs数据库中stores数据表的第1列和第2列。

104. 知Sql Server2000数据库服务器名称为“Server1”,数据库名称为“Data1”,用户ID为“sa”,口令为“abc”,在数据库中定义了一张person表,表的数据结构如表7-8所示:
字段名称 字段类型 字段含义
id 数字 序号
xm 文本 姓名
xb 文本 性别
nl 数字 年龄
zip 文本 邮政编码
用编写代码的方法设定DataGrid中显示的内容和格式,使用DataView视图类型将数据表中年龄大于18的所有纪录,以序号的升序排序,显示输出除邮政编码外的所有字段内容,要求禁止用户编辑数据。

105.创建一个ASP.NET Web应用程序,使用水晶报表对第104题的person表中的所有字段进行报表输出,报表标题为:“人员信息”。

106.编写一个ASP.NET Web应用程序来模拟聊天室程序,使用Application与Session对象来保存用户的发言、登录名,使用定时刷新页面的方法来定时刷新,从Applicaion对象读取所有用户的发言。

107.编写一个ASP.NET Web应用程序,实现用户注册功能。其中,用户名和密码的“必填”和性别的“必选”信息是验证控件在不满足验证条件时显示,最下面一行文本框显示是否已经提交的状态信息。当用户输入注册信息并单击[提交]按钮后,对数据库进行相应操作,并弹出一个消息框显示注册是否成功的信息。

108. 一个ASP.NET Web应用程序,实现数据绑定,并要求有翻页导航和显示当前页以及总页数按钮。

109.编写一个Windows应用程序,利用C#提供的控件获取操作系统中正在进行的进程。

110.编写一个Windows应用程序,获取本机的目录和文件信息。

111.编写一个Windows应用程序,读出并显示指定文本文件的内容,然后将用户输入的信息添加到文本文件的后面。

112.编写一个Windows应用程序,获取并显示主机的相关信息。

113.编写一个Windows应用程序,实现域名解析。例如输入某个网站的域名,给出该站点的IP地址、主机名等相关信息;输入IP地址,如果有域名,作出相反转换,给出域名。

114.编写一个Windows应用程序,实现从白色到绿色渐变的背景,然后接收一个字符串,将字符串中的所有小写字母转变为大写字母。

115. 编写一个Windows应用程序,分别利用Bitmap类和pictureBox控件实现显示、保存图象的功能。

116. 编写一个Windows应用程序,实现一个左右移动的半径为30个象素的红色圆,并在圆内显示圆心相对于窗体的坐标。

117. 编写一个ASP.NET应用程序,在窗体上显示一个五角星图案。
参考技术A http://www.enet.com.cn/eschool/video/c_peng/
这个鹏哥讲的不错,挺好的入门视频,带你从一个不懂编程的人学会用C#和.net平台。
如果是会其他语言,转成C#,则直接自己编写个小项目试试就好了,现在的语言很容易就转换了,就是开发环境需要熟悉一点时间。
参考技术B C#编程思想 参考技术C C入门经典(第三版)、C#Web应用程序入门经典、C#实例程序这些都不错百度按名搜索都能找到追问

有没有具体的视频讲解小项目和练习题的呢?

你知道 C# Interactive 有啥好的界面吗?

【中文标题】你知道 C# Interactive 有啥好的界面吗?【英文标题】:Do you know any nice interface for C# Interactive standalone?你知道 C# Interactive 有什么好的界面吗? 【发布时间】:2018-04-23 08:17:32 【问题描述】:

您可以在 Visual Studio 中打开 C# 交互窗口,以将 C# 用作一种 shell 语言的脚本。不幸的是,这要求您始终打开 Visual Studio。

我知道我可以运行 csi.exe 本身,但这并没有给我任何语法高亮或自动完成功能。

如何独立运行 C# Interactive Windows?

【问题讨论】:

Powershell ISE 接近了。您正在尝试构建 Visual Studio 而不想将其称为 Visual Studio。 你会被关于这个的意见轰炸 我希望是 Visual Studio - 实际上,没有主窗口过载。我需要一个像ide.exe /csi 这样的命令行。这还没有被发明出来? 【参考方案1】:

我建议使用 LINQPad(我自己不使用它,但我知道它可以做那种事情)。我觉得它很强大

https://www.linqpad.net/

【讨论】:

看起来不知何故超出了我的目的。不过谢谢。【参考方案2】:

VSCode 内置了对 .NET Interactive Notebooks 的支持 - 如果您没有看到它,您可以安装“.NET Interactive Notebooks”扩展程序

【讨论】:

以上是关于想深入学习C#语言,有没有达人知道C#的好的资料呢?的主要内容,如果未能解决你的问题,请参考以下文章

如何开始制作 C# RSS 阅读器?

在 C# 中使用全局互斥锁的好模式是啥?

c# 社会管理

使用 C# 或经典 ASP (VBScript) 从 PDF 中提取文本的好方法是啥? [关闭]

新手第一天学习 C#语言(进制互换)

VisualStudio 2010 里面编辑C语言的时候怎么没有智能代码提示呢?