//1、 写一个Student类和一个Teacher类,他们都有一个打招呼的方法,不同的是Studetn打招呼是说"大家好,我叫XX,我今年XX岁了,我的爱好是XXX",Teacher的打招呼的方法是说"大家好,我叫XX,我今年XX岁了,我已经工作XX年了"?
static void Main(string[] args)
{
//实例化Student类
Student Stu = new Student();
//调用Student的打招呼方法
Stu.sHi("某", 21, "上班");
//实例化Teacher类
Teacher Ther = new Teacher();
//调用Teacher的打招呼方法
Ther.tHi("老师", 19,5);
Console.ReadKey();
class Student
{
//1、 写一个Student类和一个Teacher类,他们都有一个打招呼的方法,不同的是Studetn打招呼是说"大家好,我叫XX,我今年XX岁了,我的爱好是XXX",Teacher的打招呼的方法是说"大家好,我叫XX,我今年XX岁了,我已经工作XX年了"?
///
/// Student打招呼
///
/// Student姓名
/// Student年龄
/// Student爱好
public void sHi(string name,int age,string like)
{
Console.WriteLine("大家好,我叫{0},我今年{1}岁了,我的爱好是{2}",name,age,like);
}
}
class Teacher
{
//1、 写一个Student类和一个Teacher类,他们都有一个打招呼的方法,不同的是Studetn打招呼是说"大家好,我叫XX,我今年XX岁了,我的爱好是XXX",Teacher的打招呼的方法是说"大家好,我叫XX,我今年XX岁了,我已经工作XX年了"?
///
/// Teacher打招呼
///
/// Teacher姓名
/// Teacher年龄
/// Teacher工作时间
public void tHi(string name,int age,int year)
{
Console.WriteLine("大家好,我叫{0},我今年{1}岁了,我已经工作{2}年了",name,age,year);
}
}
//2、 已知一个int类型的数组,用冒泡排序法将数组中的元素按从小到大的顺序排列
static void Main(string[] args)
{
//已知一个int类型的数组
int[] sz = { 9, 7, 8, 6, 4, 5, 2, 3, 1 };
//用冒泡排序法将数组中的元素按从小到大的顺序排列
for (int i = 0; i < sz.Length;i++ )
{
for (int j = 0; j < sz.Length - 1 - i;j++ )
{
if(sz[j]>sz[j+1])
{
int temp = sz[j];
sz[j] = sz[j + 1];
sz[j + 1] = temp;
}
}
}
//输出数组中的元素按从小到大的顺序排列
for (int i = 0; i < sz.Length;i++ )
{
Console.Write(sz[i]+" ");
}
Console.ReadKey();
}
-
//3、 定义父亲类Father(姓firstName,财产wealth,血型blood),儿子Son类(玩游戏PlayGame),女儿Daughter类(跳舞Dance),调用父类构造函数给子类字段赋值。
static void Main(string[] args)
{
//实例化Son类,调用父类Father构造函数给子类字段赋值
Son er = new Son("张", 999999999M, "A");
Console.WriteLine("姓:{0},财产:{1},血型:{2}", er.FirstName, er.Wealth, er.Blood);
//玩游戏PlayGame
er.PlayGame();
//实例化Daughter类,调用父类Father构造函数给子类字段赋值
Daughter nv=new Daughter("田",88888888M,"B");
Console.WriteLine("姓:{0},财产:{1},血型:{2}", nv.FirstName, nv.Wealth, nv.Blood);
//跳舞Dance
nv.Dance();
Console.ReadKey();
}
///
/// Father类
///
class Father
{
//3、 定义父亲类Father(姓firstName,财产wealth,血型blood),儿子Son类(玩游戏PlayGame),女儿Daughter类(跳舞Dance),调用父类构造函数给子类字段赋值
///
/// 父类构造函数
///
/// 姓firstName
/// 财产wealth
/// 血型blood
public Father(string firstName,decimal wealth,string blood)
{
this.FirstName = firstName;
this.Wealth = wealth;
this.Blood = blood;
}
string firstName;
public string FirstName
{
get { return firstName; }
set { firstName = value; }
}
decimal wealth;
public decimal Wealth
{
get { return wealth; }
set { wealth = value; }
}
string blood;
public string Blood
{
get { return blood; }
set { blood = value; }
}
}
///
/// Son类
///
class Son : Father
{
定义父亲类Father(姓firstName,财产wealth,血型blood),儿子Son类(玩游戏PlayGame),女儿Daughter类(跳舞Dance),调用父类构造函数给子类字段赋值。
public Son(string SfirstName, decimal Swealth, string Sblood)
: base(SfirstName, Swealth, Sblood)
{ }
///
/// 玩游戏PlayGame
///
public void PlayGame()
{
Console.WriteLine("玩游戏PlayGame");
}
}
///
/// Daughter类
///
class Daughter:Father
{
定义父亲类Father(姓firstName,财产wealth,血型blood),儿子Son类(玩游戏PlayGame),女儿Daughter类(跳舞Dance),调用父类构造函数给子类字段赋值。
public Daughter(string DfirstName, decimal Dwealth, string Dblood)
: base(DfirstName, Dwealth, Dblood)
{ }
///
/// 跳舞Dance
///
public void Dance()
{
Console.WriteLine("跳舞Dance");
}
}
定义父亲类Father(姓firstName,财产wealth,血型blood),儿子Son类(玩游戏PlayGame),女儿Daughter类(跳舞Dance),调用父类构造函数给子类字段赋值。
static void Main(string[] args)
{
//实例化Son类,调用父类Father构造函数给子类字段赋值
Son er = new Son("张", 999999999M, "A");
Console.WriteLine("姓:{0},财产:{1},血型:{2}", er.FirstName, er.Wealth, er.Blood);
//玩游戏PlayGame
er.PlayGame();
//实例化Daughter类,调用父类Father构造函数给子类字段赋值
Daughter nv=new Daughter("田",88888888M,"B");
Console.WriteLine("姓:{0},财产:{1},血型:{2}", nv.FirstName, nv.Wealth, nv.Blood);
//跳舞Dance
nv.Dance();
Console.ReadKey();
//4、 已知一个int类型的数组,用冒泡排序法将数组中的元素按从大到小的顺序排列;
static void Main(string[] args)
{
//已知一个int类型的数组
int[] sz = { 9, 7, 8, 6, 4, 5, 2, 3, 1 };
//用冒泡排序法将数组中的元素按从大到小的顺序排列
for (int i = 0; i < sz.Length; i++)
{
for (int j = 0; j < sz.Length - 1 - i; j++)
{
if (sz[j] < sz[j + 1])
{
int temp = sz[j];
sz[j] = sz[j + 1];
sz[j + 1] = temp;
}
}
}
//输出数组中的元素按从大到小的顺序排列
for (int i = 0; i < sz.Length; i++)
{
Console.Write(sz[i] + " ");
}
Console.ReadKey();
}
//5、 编写一个WinForm程序,界面上放置两个文本框,分别用户输入用户名和密码,然后放置一个【登录】按钮。当用户点击【登录】按钮的时候做如下的判断:
//用户名、密码是否为空,如果用户名、密码为空则提示用户“用户名、密码都不能为空”;
//检查用户名是否等于admin,如果不等于admin则提示用户名错误;
//如果密码不等于0123456,则提示密码错误;
//如果用户名、密码都正确(admin、0123456)则提示登录成功;
private void button1_Click(object sender, EventArgs e)
{
//判断用户名、密码是否为空,如果用户名、密码为空则提示用户“用户名、密码都不能为空”;
if (username.Text == "" || password.Text == "")
{
MessageBox.Show("用户名、密码都不能为空");
return;
}
//判断用户名是否等于admin,如果不等于admin则提示用户名错误;
if (username.Text != "admin")
{
MessageBox.Show("用户名错误");
return;
}
//判断如果密码不等于0123456,则提示密码错误;
if (password.Text != "0123456")
{
MessageBox.Show("密码错误");
return;
}
//判断如果用户名、密码都正确(admin、0123456)则提示登录成功;
if (username.Text == "admin" && password.Text == "0123456")
{
MessageBox.Show("登录成功");
return;
}
}
//6、 使用Winform编写简单的加法计算器,用户在文本框1、2中输入两个数,点击求和按钮,在文本框3中显示两个数的和。如果1或者2为错误的数据格式,则弹出对话框提示错误.
private void button1_Click(object sender, EventArgs e)
{
//2个变量用来接收文本框中内容转换的数字
int j1,j2;
//获得文本框内的内容
string a=textBox1.Text;
string b = textBox2.Text;
//判断文本框里面的内容数据格式是否正确
if(!int.TryParse(a,out j1)||!(int.TryParse(b,out j2)))
{
MessageBox.Show("错误的数据格式,请重新输入");
return;
}
//求和
int sum = j2 + j1;
//把和的值赋给textBox3
textBox3.Text=Convert.ToString(sum);
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
//当用户触发textBox1的时候把上一次算出来的和清理掉
textBox3.Clear();
}
// 7、 编写一个WinForm程序,有一个记录了学生成绩的文本文档,每个学生成绩是一行,每行是用|分割的数据,用|分割的域分别是姓名、年龄、成绩,写程序取出成绩最高学生的姓名和成绩。提示:读取文件可以使用File.ReadAllLines()函数。
// 文件格式例子:
// 张三|20|80
//李四|22|90
//王小明|30|83
private void button1_Click(object sender, EventArgs e)
{
//获得成绩表文本
OpenFileDialog dawn = new OpenFileDialog();
if (dawn.ShowDialog() != DialogResult.OK)
{
return;
}
//获得成绩内容
string[] sy = File.ReadAllLines(dawn.FileName, Encoding.UTF8);
//设置最高成绩的名字
string maxname = "";
//设置最高成绩
int maxcj = 0;
//遍历每个人的成绩,把最高成绩的名字和成绩赋值给maxname和maxcj;
foreach(string line in sy)
{
string[] str = line.Split('|');
string name= str[0];
int cj =Convert.ToInt32( str[2]);
if(cj>maxcj)
{
maxcj = cj;
maxname = name;
}
}
textBox1.Text = maxname + "是最高成绩" + "成绩为:" + maxcj;
// MessageBox.Show(string.Format("{0}是最高成绩,成绩为{1}", maxname, maxcj));
return;
}
//8、 判断一个字符串是否是合法的Email地址。一个Email地址的特征就是以一个字符序列开始,后边跟着“@”符号,后边又是一个字符序列,后边跟着符号“.”,最后是字符序列。
private void button1_Click(object sender, EventArgs e)
{
//fg数组特指的元素[判断Email地址]用来分割接收到的文本
char[] fg = { '@', '.' };
//把接收到的文本进行分割
string[] email = textBox1.Text.Split(fg, StringSplitOptions.RemoveEmptyEntries);
//判断:如果emali数字长度为3,说明符合合法的Email地址
if (email.Length == 3)
{
MessageBox.Show("这是合法的Email地址");
}
else
{
MessageBox.Show("这不是合法的Email地址");
}
}
// 9、 使用WinForm或者ASP.Net编写一个区号查询界面,用户在“所在省(自治区、直辖市)”中选择省,随着省选择的变化,“所在地市”的下拉列表中则显示所选省下面的所有市,用户选择一个市的时候,则在“区号”中显示所选择市的区号(省市数据要自己建数据库,然后从数据库中读取)
//注:不用实现所有省、市的,只要实现如下省、市即可:
// 河北:石家庄、唐山、秦皇岛、保定、廊坊;
// 山东:济南、青岛、淄博、烟台、泰安;
// 河南:郑州、平顶山、南阳、洛阳、焦作、新乡;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//项目内嵌mdf文件形式的连接字符串 必须加
string dataDir = AppDomain.CurrentDomain.BaseDirectory;
if (dataDir.EndsWith(@"\bin\Debug\")
|| dataDir.EndsWith(@"\bin\Release\"))
{
dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;
AppDomain.CurrentDomain.SetData("DataDirectory", dataDir);
}
//在打开程序时把省调出来
using (SqlConnection coon = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=E:\新建文件夹\exam\test9\SQLtest9.mdf;Integrated Security=True"))
{
coon.Open();
using (SqlCommand cmd = coon.CreateCommand())
{
cmd.CommandText = "select * from shen;";
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
jh itm = new jh();
itm.s = reader.GetString(reader.GetOrdinal("省"));
cmb省.Items.Add(itm);
itm.id = reader.GetInt32(reader.GetOrdinal("id"));
}
}
}
}
}
private void cmb省_SelectedIndexChanged(object sender, EventArgs e)
{
cmb市.Items.Clear();
//获得省的id去匹配市的id
jh item = (jh)cmb省.SelectedItem;
int id = item.id;
using (SqlConnection coon = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=E:\新建文件夹\exam\test9\SQLtest9.mdf;Integrated Security=True"))
{
coon.Open();
using (SqlCommand cmd = coon.CreateCommand())
{
cmd.CommandText = "select * from city where id=@id";
//检索与省匹配的id
cmd.Parameters.Add(new SqlParameter("@id", id));
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
//显示省
jh q = new jh();
q.s = reader.GetString(reader.GetOrdinal("市"));
cmb市.Items.Add(q);
}
}
}
}
}
private void cmb市_SelectedIndexChanged(object sender, EventArgs e)
{
jh item = (jh)cmb市.SelectedItem;
string s = item.s;
// 获得市的名字去匹配市的区号
using (SqlConnection coon = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=E:\新建文件夹\exam\test9\SQLtest9.mdf;Integrated Security=True"))
{
coon.Open();
using (SqlCommand cmd = coon.CreateCommand())
{
cmd.CommandText = "select * from city where 市=@s";
cmd.Parameters.Add(new SqlParameter("s", s));
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
//输出市的区号
textBox1.Text = reader.GetString(reader.GetOrdinal("quhao"));
}
}
}
}
}
class jh
{
public string s { get; set; }
public int id { get; set; }
public override string ToString()
{
return s;
}
}
--10、 SQL题
-- 表一:student_info(学生表)字段及数据如下:
-- 学号 姓名 性别 出生年月 家庭住址 备注
--0001 张三 男 1981-8-9 北京 NULL
--表二:grade(成绩表)字段及数据如下:
-- 学号 课程编号 分数
--0001 0001 80
-- 0001 0002 90
--要求编写SQL语句分别实现如下的条件查询:
--1)在GRADE表中查找分数大于等于80小于等于90的学生学号和分数
--2)在GRADE 表中查找课程编号为002学生的平均分
--3)在GRADE 表中查询学习各门课程的人数
--4)查询所有姓张的学生的学号和姓名
--要求编写SQL语句分别实现如下的条件查询:
--1)在GRADE表中查找分数大于等于80小于等于90的学生学号和分数
select 学号,分数 from grade where 分数 between 80 and 90;
--2)在GRADE 表中查找课程编号为002学生的平均分
select avg(分数) as 平均分 from grade where 课程编号=002;
--3)在GRADE 表中查询学习各门课程的人数
select 课程编号,count(*) as 人数 from GRADE group by 课程编号
--4)查询所有姓张的学生的学号和姓名
select 学号,姓名 from student_info where 姓名 like N'张%';