面向对象 —— 教师职工表练习

教师有这样几个属性
教师编号
教师姓名
教师生日
教师工资

让用户输入教师个数

一遍一遍的输入每个教师的信息
教师编号如果不是T开头,并且后面是3位数字的话,《暂无》
如果这个编号已被占用,那么自动+1

教师姓名如果为空,<暂无>

教师生日

教师工资,不能低于3000块

==========教师信息==========
T001     张三    2000-1-1  17  ¥3000.12

==============平均工资==============
4500.23

一 teacher 类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication2
{
    public class Teacher
    {
        private string _Tno;

        public string Tno
        {
            get { return _Tno; }
            set { _Tno = value; }
        }
        private string _Tname;

        public string Tname
        {
            get { return _Tname; }
            set
            {
                if (value != "")
                    _Tname = value;
                else
                    _Tname = "<暂无>";
            }
        }
        private DateTime _Tbirthday;

        public DateTime Tbirthday
        {
            get { return _Tbirthday; }
            set { _Tbirthday = value; }
        }

        public int Tage
        {
            get
            {
                return DateTime.Now.Year - _Tbirthday.Year;
            }
        }

        private decimal _Tmoney;

        public decimal Tmoney
        {
            get { return _Tmoney; }
            set { _Tmoney = value; }
        }

    }
}

二 方法

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication2
{
    public class Test1
    {
        public bool NoIsOK(string s)
        {
            bool end = true; //默认是正确的格式

            if (s.Length != 4) //如果长度不是4,那么格式错误
                end = false;
            else //如果是4位那么继续判断
            {
                if (s.Substring(0, 1) != "T") //判断第一位是否是T
                {
                    end = false;
                }
                else //第一位已经是T,只需要判断后三位是否是数字
                {
                    string ss = s.Substring(1, 3);
                    try
                    {
                        Convert.ToInt32(ss);
                    }
                    catch { end = false; }
                }
            }

            return end;
        }

        public string CreateTno(string s, List<Teacher> list)
        {
            List<int> ilist = new List<int>();
            string end = "";
            bool has = false;

            foreach (Teacher t in list)
            {
                ilist.Add(Convert.ToInt32(t.Tno.Substring(1, 3)));

                if (t.Tno == s)
                    has = true;
            }

            if (has)
            {
                for (int i = 0; i < ilist.Count - 1; i++)
                {
                    for (int j = i + 1; j < ilist.Count; j++)
                    {
                        if (ilist[i] < ilist[j])
                        {
                            int zhong = ilist[i];
                            ilist[i] = ilist[j];
                            ilist[j] = zhong;
                        }
                    }
                }

                string ssss = (ilist[0] + 1).ToString("000");

                end = "T" + ssss;
            }
            else
                end = s;

            return end;
        }

        public decimal MoneyAvg(List<Teacher> list)
        {
            decimal sum = 0;
            foreach (Teacher t in list)
            {
                sum += t.Tmoney;
            }

            return sum / list.Count;
        }

    }
}

三 对象操作

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            Test1 t1 = new Test1();
            List<Teacher> tlist = new List<Teacher>();

            Console.Write("请输入教师个数:");
            int tcount = Convert.ToInt32(Console.ReadLine());

            for (int i = 0; i < tcount; i++)
            {
                Teacher t = new Teacher();

                while (true)
                {
                    Console.Write("请输入第" + (i + 1) + "个教师的编号:");
                    t.Tno = Console.ReadLine();

                    bool tnook = t1.NoIsOK(t.Tno);

                    if (tnook)
                    {
                        t.Tno = t1.CreateTno(t.Tno, tlist);
                        break;
                    }
                    else
                        Console.WriteLine("编号格式不正确!");
                }

                Console.Write("请输入第" + (i + 1) + "个教师的姓名:");
                t.Tname = Console.ReadLine();
                Console.Write("请输入第" + (i + 1) + "个教师的生日:");
                t.Tbirthday = Convert.ToDateTime(Console.ReadLine());
                Console.Write("请输入第" + (i + 1) + "个教师的工资:");
                t.Tmoney = Convert.ToDecimal(Console.ReadLine());

                tlist.Add(t);
            }

            Console.WriteLine("=====教师信息======");
            foreach (Teacher t in tlist)
            {
                Console.WriteLine(t.Tno + " | " + t.Tname + " | " + t.Tbirthday.ToString("yyyy年MM月dd日") + " | " + t.Tage + " | " + t.Tmoney);
            }
            Console.WriteLine("=====平均工资======");

            Console.WriteLine(t1.MoneyAvg(tlist));

            Console.ReadLine();
        }
    }
}

时间: 2024-12-13 15:27:19

面向对象 —— 教师职工表练习的相关文章

2014-11-9------- 设有一数据库,包括四个表:学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)。

一.            设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表(一)~表(四)所示.用SQL语句创建四个表并完成相关题目. 表1-1数据库的表结构 表(一)Student (学生表) 属性名 数据类型 可否为空 含 义 Sno Char(3) 否 学号(主码) Sname Char(8) 否 学生姓名 Ssex Char(2) 否

设有一数据库,包括四个表:学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)。四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表(一)~表(四)所示。用SQL语句创建四个表并完成相关题目。

表(一)Student (学生表) -- Create table create table STUDENT ( sno VARCHAR2(3) not null, sname VARCHAR2(8) not null, ssex VARCHAR2(2) not null, sbirthday DATE, class VARCHAR2(5) ) tablespace USERS pctfree 10 initrans 1 maxtrans 255; -- Add comments to the

教师值班表

--教师值班alter proc teacher_OnDuty(@hid int)asset nocount onbegindeclare @bdate datetime,@edate datetime,@i int,@count_num int,@teacher_num varchar(50),@rand int,@j int,@cfmax intDECLARE @templist TABLE(id int IDENTITY(1,1),date DATETIME,teacher1 varcha

PHP面向对象之注册表模式

注册表模式可似把他想像成一个全局变量,所有的模块都从这个全局变量里存取数据,或者也可以想象成某个酒吧的许愿墙或留言版,上面的内容大家都可以看到,也可以改写.这里主要按作用域介绍三种类别的注册表类(请求级别.会话级别.应用程序级别). namespace woo\base; //基类 abstract class Registry { abstract protected function get($key); abstract protected function set($key,$val);

数据库--事务:级联删除(学生教师信息表)为例

--事物:保障整个流程的完整执行,全部没有问题统一提交,一旦有问题,回到原点 --存储过程或者触发器里面用 begin tran--事务的开始 --开始写流程语句 --语句写完之后 if @@ERROR>0 rollback--回滚事务 else commit tran--提交事务 ---------------------------------级联删除为例 drop table Scorebak drop trigger Score_Delete --删除前先备份数据到备份表之后再删除 cr

学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)

对teacher表进行增加,删除,修改

<%@page import="java.text.SimpleDateFormat"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.sql.*"%> <!DOCTYPE html PUBLI

设计模式2 面向对象设计原则

面向对象设计原则  原则的目的 面向对象设计原创表  单一职责原则案例 开闭原则 案例 依赖倒转原则 案例 面向对象设计原则  对于面向对象软件系统的设计而言,在支持可维护性的同时,提高系统的可复用性是一个至关重要的问题,如何同时提高一个软件系统的可维护性和可复用性是面向对象设计需要解决的核心问题之一.在面向对象设计中,可维护性的复用是以设计原则为基础的.每一个原则都蕴含一些面向对象设计的思想,可以从不同的角度提升一个软件结构的设计水平.  面向对象设计原则为支持可维护性复用而诞生,这些原则蕴含

SQList的建表并添加数据练习

学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher)的数据库创建以及信息添加. 一.学生表(Student) 二.课程表(Course) 三.成绩表(Score) 四.教师信息表(Teacher)