A1006(25)

无太大坑点,因为都是在一天内,可以直接通过转化数值比大小来实现

#include<cstdio>
#include<iostream>
using  namespace std;
const int maxn=10000000;
struct node
{
 char name[16];
 int signin,signout;
};
int main()
{
      int n;
      node endin,endout;
      endin.signin=maxn;
      endout.signout=-1;
      cin>>n;
      for (int i=0;i<n;i++)
      {
         node nowname;
         int hh,mm,ss;
    scanf("%s%d:%d:%d ",nowname.name,&hh,&mm,&ss);
    nowname.signin=hh*3600+mm*60+ss;
    if (nowname.signin<endin.signin)
    endin=nowname;
    scanf("%d:%d:%d",&hh,&mm,&ss);
    nowname.signout=hh*3600+mm*60+ss;
    if (nowname.signout>endout.signout)
    endout=nowname;
   }
   printf("%s %s",endin.name,endout.name);  
}
CREATE TABLE [dbo].[T_GXJ_FD]( [datime] [nvarchar](14) NOT NULL, [A1001] [numeric](11, 3) NULL, [A1002] [numeric](11, 3) NULL, [A1003] [numeric](11, 3) NULL, [A1004] [numeric](11, 3) NULL, [A1005] [numeric](11, 3) NULL, [A1006] [numeric](11, 3) NULL, [A1007] [numeric](11, 3) NULL, [A1008] [numeric](11, 3) NULL, [A1009] [numeric](11, 3) NULL, [A1010] [numeric](11, 3) NULL, [A1011] [numeric](11, 3) NULL, CONSTRAINT [PK_T_GXJ_FD] PRIMARY KEY CLUSTERED ( [datime] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] 已知前面sqlserver数据库表格T_GXJ_FD中,[datime]存储的是代表时间的值:如20250930174948,其中20250930代表的是2025年9月30日,174948代表的是17点49分48秒,[A1001] [numeric](11, 3) NULL, [A1002] [numeric](11, 3) NULL, [A1003] [numeric](11, 3) NULL, [A1004] [numeric](11, 3) NULL, [A1005] [numeric](11, 3) NULL, [A1006] [numeric](11, 3) NULL, [A1007] [numeric](11, 3) NULL, [A1008] [numeric](11, 3) NULL, [A1009] [numeric](11, 3) NULL, [A1010] [numeric](11, 3) NULL, [A1011] [numeric](11, 3) NULL,存储为[datime]时刻所对应的值,旧表格T_GXJ_FD中的数据是5分钟更新一次的, 如何在SQLSERVER上建新表T_GXJ_FD_shift并编写代码,将datime时刻分为夜班,白班;[A1001]白班对应的值为白班最后时刻对应的值减去白班最初时刻对应的值,同样夜班对应的值为夜班最后时刻对应的值减去夜班最初时刻对应的值,将白班和夜班所对应的值的和存在一个日值字段中,并将每日的值进行月累计单独存在一个字段中,[A1002]至[A1011]对应班次的值,日值,月累计值获取与[A1001]一致,新表T_GXJ_FD_shift中的值随旧表更新而更新,其中夜班、白班和天的区分规则为:假设今天为2025-09-25,则2025-09-25的夜班为datime所对应的:20250924200000至20250925075959;2025-09-25的白班为:20250925080000至20250925195959;天为20250924200000至20250925195900;请写出代码进行建表并处理,并将日期如2025-09-25存储为[date] NOT NULL格式,因为数据是不断更新的,所以最近班次出现对应的数据也在更新,如何在SQLSERVER中实现将旧表的数据按班和天和月累计存到新表中,并进行更新,请写出详细的流程,写出一个较好的具体流程就可以了,不要写出对比方案。注意,datime的格式为[datime] [nvarchar](14) NOT NULL,存储的内容样式为20250928054001,而在新表中,日期存储为[date] NOT NULL格式即2025-09-28。
10-05
CREATE TABLE [dbo].[T_GXJ_FD]( [datime] [nvarchar](14) NOT NULL, [A1001] [numeric](11, 3) NULL, [A1002] [numeric](11, 3) NULL, [A1003] [numeric](11, 3) NULL, [A1004] [numeric](11, 3) NULL, [A1005] [numeric](11, 3) NULL, [A1006] [numeric](11, 3) NULL, [A1007] [numeric](11, 3) NULL, [A1008] [numeric](11, 3) NULL, [A1009] [numeric](11, 3) NULL, [A1010] [numeric](11, 3) NULL, [A1011] [numeric](11, 3) NULL, CONSTRAINT [PK_T_GXJ_FD] PRIMARY KEY CLUSTERED ( [datime] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] 已知前面sqlserver数据库表格已经存在历史数据,例如T_GXJ_FD中,[datime]存储的是代表时间的字符串值:如20250930174948,其中20250930代表的是2025年9月30日,174948代表的是17点49分48秒,[A1001] [numeric](11, 3) NULL, [A1002] [numeric](11, 3) NULL, [A1003] [numeric](11, 3) NULL, [A1004] [numeric](11, 3) NULL, [A1005] [numeric](11, 3) NULL, [A1006] [numeric](11, 3) NULL, [A1007] [numeric](11, 3) NULL, [A1008] [numeric](11, 3) NULL, [A1009] [numeric](11, 3) NULL, [A1010] [numeric](11, 3) NULL, [A1011] [numeric](11, 3) NULL,分别为存储时刻[datime]所对应的值,这些值正常情况下是随时间是一直变大的,数据重新累计除外,表格T_GXJ_FD中的数据是5分钟就存入一组数据并更新一次的, 如何在SQLSERVER上建新表T_GXJ_FD_shift并编写代码,将datime时刻分为夜班,白班,日;[A1001]白班对应的值在数据不清零的情况下为白班最后时刻对应的值减去白班最初时刻对应的值即白班对应的最大值减去白班对应的最小值,当存在数据清零的情况下,白班最后时刻对应的值减去白班最初时刻对应的值为负数,此时应进行判断,将在白班期间的值进行分段,先计算清零前的最大值减去对应的最小值,再计算清零后的最大值减去对应的最小值,然后计算再相加作为白班值,同样夜班对应的值为夜班最后时刻对应的值减去夜班最初时刻对应的值即夜班对应的最大值减去夜班对应的最小值,当夜班存在数据清零的情况时,可能夜班最后时刻对应的值减去夜班最初时刻对应的值为负数,此时应进行判断,将在夜班期间的值进行分段,先计算清零前的最大值减去对应的最小值,再计算清零后的最大值减去对应的最小值,然后计算再相加作为夜班值。将白班与夜班所对应的值的和存在一个日值字段中,并将每月一日开始每日的值进行月累计单独存在一个字段中。[A1002]、[A1003]、[A1004]、[A1005]、[A1006]、[A1007]、[A1008]、[A1009]、[A1010]、[A1011]对应班次的值、日的值、月累计值获取与[A1001]的一致,新表T_GXJ_FDshift中的值随表T_GXJ_FD更新而更新,其中夜班、白班和日的区分规则为:假设今天为2025-09-25,则2025-09-25的夜班为datime所对应的:20250924200000至20250925075959;2025-09-25的白班为:20250925080000至20250925195959;日为20250924200000至20250925195900;请写出代码进行建表并处理,并将日期如2025-09-25存储为[date] NOT NULL格式,因为数据是不断更新的,所以对应的数据也在更新,如何在SQLSERVER中实现将表T_GXJ_FD的数据按夜班、白班、日和月累计存到新表中,并进行更新,请写出详细的流程,写出一个较好的具体流程就可以了,不要写出对比方案。注意,datime的格式为[datime] [nvarchar](14) NOT NULL,存储的内容样式为20250928054001,而在新表中,日期存储为[date] NOT NULL格式即2025-09-28。
最新发布
10-14
from flask import Flask, render_template from pyecharts import options as opts from pyecharts.charts import Bar, Pie, Rose, Scatter from pyecharts.commons.utils import JsCode from pyecharts.globals import ThemeType app = Flask(__name__) # 任务一:条形图呈现"Top10城市商家数量" @app.route("/task1") def task1(): # 模拟数据 cities = ["北京", "上海", "广州", "深圳", "成都", "杭州", "重庆", "武汉", "西安", "苏州"] counts = [12500, 11800, 9800, 9500, 8700, 8500, 8200, 8000, 7800, 7500] # 打印控制台输出 print("==任务一:Top10城市商家数量==") for i, (city, count) in enumerate(zip(cities, counts), 1): print(f"=={i}.城市:{city},商家{count}个==") # 创建条形图 bar = ( Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT)) .add_xaxis(cities) .add_yaxis("商家数量", counts) .reversal_axis() .set_global_opts( title_opts=opts.TitleOpts(title="城市商家数量 Top10"), xaxis_opts=opts.AxisOpts(name="商家数量"), yaxis_opts=opts.AxisOpts(name="城市名称"), ) ) return render_template("pyecharts.html", chart=bar.dump_options()) # 任务二:柱状图呈现审核效率 @app.route("/task2") def task2(): # 模拟数据 auditors = ["A1001", "A1002", "A1003", "A1004", "A1005", "A1006", "A1007", "A1008", "A1009", "A1010"] names = ["张三", "李四", "王五", "赵六", "钱七", "孙八", "周九", "吴十", "郑十一", "王十二"] counts = [1250, 1180, 980, 950, 870, 850, 820, 800, 780, 750] # 打印控制台输出 print("\n==任务二:Top10明星审核员==") for i, (auditor, count) in enumerate(zip(auditors, counts), 1): print(f"=={i}.二级审核人id:{auditor},审批数量:{count}条==") # 创建柱状图 bar = ( Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT)) .add_xaxis(names) .add_yaxis("审核记录数", counts) .set_global_opts( title_opts=opts.TitleOpts(title="Top10明星审核员"), xaxis_opts=opts.AxisOpts(name="审核人姓名"), yaxis_opts=opts.AxisOpts(name="审核记录数"), ) ) return render_template("pyecharts.html", chart=bar.dump_options()) # 任务三:双饼图呈现业务包属性占比 @app.route("/task3") def task3(): # 模拟数据 categories = ["大客户", "白领", "小客户", "高校", "家庭", "其他"] beijing_data = [3200, 2800, 2500, 1800, 1500, 700] shenzhen_data = [2800, 3100, 2200, 1600, 1200, 600] # 打印控制台输出 print("\n==任务三:北京与深圳商户业务包属性占比==") print("==北京:") for i, (category, count) in enumerate(zip(categories, beijing_data), 1): print(f"=={i}.商户业务包:{category},商家数量:{count}家==") print("==深圳:") for i, (category, count) in enumerate(zip(categories, shenzhen_data), 1): print(f"=={i}.商户业务包:{category},商家数量:{count}家==") # 创建双饼图 pie1 = ( Pie() .add( "北京", [list(z) for z in zip(categories, beijing_data)], center=["25%", "50%"], radius=[30, 70], ) .set_global_opts(title_opts=opts.TitleOpts(title="北京商户业务包属性占比")) .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c} ({d}%)")) ) pie2 = ( Pie() .add( "深圳", [list(z) for z in zip(categories, shenzhen_data)], center=["75%", "50%"], radius=[30, 70], ) .set_global_opts(title_opts=opts.TitleOpts(title="深圳商户业务包属性占比")) .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c} ({d}%)")) ) return render_template("pyecharts_dual.html", chart1=pie1.dump_options(), chart2=pie2.dump_options()) # 任务四:玫瑰图呈现投诉占比 @app.route("/task4") def task4(): # 模拟数据 categories = ["大客户", "白领", "小客户", "高校", "家庭", "其他"] complaints = [320, 280, 250, 180, 150, 70] # 打印控制台输出 print("\n==任务四:北京商户业务包投诉占比==") for i, (category, count) in enumerate(zip(categories, complaints), 1): print(f"=={i}.商户业务包:{category},投诉数量:{count}家==") # 创建玫瑰图 rose = ( Rose(init_opts=opts.InitOpts(width="800px", height="600px")) .add( "投诉数量", [list(z) for z in zip(categories, complaints)], radius=["30%", "75%"], center=["50%", "50%"], rosetype="radius", ) .set_global_opts(title_opts=opts.TitleOpts(title="北京商户业务包投诉占比")) ) return render_template("pyecharts.html", chart=rose.dump_options()) # 任务五:柱状堆叠图呈现审核结果比例 @app.route("/task5") def task5(): # 模拟数据 auditors = ["A1001", "A1002", "A1003", "A1004", "A1005", "A1006", "A1007", "A1008", "A1009", "A1010"] approved = [850, 780, 650, 620, 580, 550, 520, 500, 480, 450] rejected = [400, 400, 330, 330, 290, 300, 300, 300, 300, 300] # 打印控制台输出 print("\n==任务五:审核通过与拒绝对比==") for i, (auditor, app, rej) in enumerate(zip(auditors, approved, rejected), 1): total = app + rej print(f"=={i}.二级审核人id:{auditor},审批数量:{total}条,其中通过{app}条,拒绝{rej}条==") # 创建柱状堆叠图 bar = ( Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT)) .add_xaxis(auditors) .add_yaxis("通过", approved, stack="stack1", itemstyle_opts=opts.ItemStyleOpts(color="#1E90FF")) .add_yaxis("拒绝", rejected, stack="stack1", itemstyle_opts=opts.ItemStyleOpts(color="#FF4500")) .set_global_opts( title_opts=opts.TitleOpts(title="审核通过与拒绝对比"), xaxis_opts=opts.AxisOpts(name="审核人id"), yaxis_opts=opts.AxisOpts(name="审核记录数"), ) ) return render_template("pyecharts.html", chart=bar.dump_options()) # 任务六:散点地图呈现各城市商家数量分布 @app.route("/task6") def task6(): # 模拟数据 cities = ["北京", "上海", "广州", "深圳", "成都", "杭州", "重庆", "武汉", "西安", "苏州"] counts = [12500, 11800, 9800, 9500, 8700, 8500, 8200, 8000, 7800, 7500] geo_coords = { "北京": [116.46, 39.92], "上海": [121.48, 31.22], "广州": [113.23, 23.16], "深圳": [114.07, 22.62], "成都": [104.06, 30.67], "杭州": [120.19, 30.26], "重庆": [106.54, 29.59], "武汉": [114.31, 30.52], "西安": [108.95, 34.27], "苏州": [120.62, 31.32] } # 打印控制台输出 print("\n==任务六:各城市商家数量==") for i, (city, count) in enumerate(zip(cities, counts), 1): print(f"=={i}.城市:{city},商家{count}个==") # 创建散点地图 scatter = ( Scatter(init_opts=opts.InitOpts(width="1000px", height="600px")) .add_dataset( source=[ {"name": city, "value": geo_coords[city] + [count]} for city, count in zip(cities, counts) ] ) .add( series_name="商家数量", symbol_size=JsCode( "function(data) {return Math.sqrt(data[2]) / 5;}" ), encode={"lng": 0, "lat": 1, "value": 2}, label_opts=opts.LabelOpts( formatter=JsCode( "function(data) {return data.name + ': ' + data.value[2];}" ) ), ) .set_global_opts( title_opts=opts.TitleOpts(title="各城市商家数量散点地图"), visualmap_opts=opts.VisualMapOpts( dimension=2, min=min(counts), max=max(counts), range_text=["高", "低"], is_piecewise=True, pos_top="50", pos_left="30", ), ) ) return render_template("pyecharts.html", chart=scatter.dump_options()) @app.route("/") def index(): return """ <h1>外卖平台数据分析可视化</h1> <ul> <li><a href="/task1">任务一: Top10城市商家数量(条形图)</a></li> <li><a href="/task2">任务二: Top10明星审核员(柱状图)</a></li> <li><a href="/task3">任务三: 北京与深圳商户业务包属性占比(双饼图)</a></li> <li><a href="/task4">任务四: 北京商户业务包投诉占比(玫瑰图)</a></li> <li><a href="/task5">任务五: 审核通过与拒绝对比(柱状堆叠图)</a></li> <li><a href="/task6">任务六: 各城市商家数量散点地图</a></li> </ul> """ if __name__ == "__main__": app.run(debug=True)。显示这段代码的运行图片
06-24
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值