簡易oj系統實現

2021-10-03 11:28:46 字數 2168 閱讀 9751

一、題目:

某次考試一共八道題(a,b,c,d,e,f,g,h),每個人做的題都在對應的題號下有個數量標記,負數表示該學生在該題上有過的錯誤提交次數但到現在還沒有ac,正數表示ac所耗的時間,如果正數a跟上了一對括號,裡面有個正數b,則表示該學生ac了這道題,耗去了時間a,同時曾經錯誤提交了b次。例子可見下方的樣例輸入與輸出部分。

二、輸入:

輸入資料報含多行,第一行是題數n(1≤n≤12)以及單位罰時m(10≤m≤20),之後的每行資料描述乙個學生的資訊,首先是學生的使用者名稱(不多於10個字元的字串)其次是所有n道題的得分現狀,其描述採用問題描述中的數量標記的格式,見上面的**。

三、輸出:

根據這些學生的得分現狀,輸出乙個實時排名。實時排名顯然先按ac題數的多少排,多的在前,再按時間分的多少排,少的在前,如果湊巧前兩者都相等,則按名字的字典序排,小的在前。每個學生佔一行,輸出名字(10個字元寬),做出的題數(2個字元寬,右對齊)和時間分(4個字元寬,右對齊)。名字、題數和時間分相互之間有乙個空格。

四、樣例輸入輸出:

input

8 20

gugudong 96 -3 40(3) 0 0 1 -8 0

hrz 107 67 -3 0 0 82 0 0

tt 120(3) 30 10(1) -3 0 47 21(2) -2

omrailgun 0 -99 -8 0 -666 -10086 0 -9999996

yjq -2 37(2) 13 -1 0 113(2) 79(1) -1

zjm 0 0 57(5) 0 0 99(3) -7 0

output

tt 5 348

yjq 4 342

gugudong 3 197

hrz 3 256

zjm 2 316

omrailgun 0 0

五、解題思路:

(1)統計ac題數,計算時間分。以字串型別讀取輸入資料,判斷字串開頭為『0』或者『-』,該題未ac且時間分未0。否則,該題ac,ac題數+1。計算時間分,逐位讀取字元至讀取到『(』或者『\0』【字串結束標誌】,為部分時間分。如果讀取至『(』,則需繼續讀取至『)』,括號內部分乘單位罰時是另一部分時間分。兩部分時間分相加即為總時間分。

(2)排序:多關鍵字排序。定義結構體【包含 姓名、ac題數、時間分】,在結構體中過載《號,再呼叫stl中的sort()函式。

(3)輸出格式:在指定長度的情況下,c語言預設右對齊輸出,左對齊輸出需要在前面加『-』。

示例:

printf

("%10d"

,a);

//右對齊輸出

printf

("%-10d"

,a);

//左對齊輸出

六、實現**:

#include

#include

#include

#include

using

namespace std;

struct paiming

bool

operator

<

(const paiming r)

//過載《號

}return

false;}

};intmain()

pe[p]

.b=pe[p]

.b+sum;

if(s[j]

=='('

) pe[p]

.b=pe[p]

.b+y*w;}}

p++;}

sort

(pe,pe+p)

;for

(int i=

0;i)return0;

}

Php實現簡易購物商城系統

1 系統功能模組包括 1 登陸註冊模組 包括驗證碼 找回密碼。註冊模組中要使用ajax判斷使用者名稱是否已經存在,使用正規表示式判斷電子郵件 手機號和使用者密碼的格式是否合法。2 使用者管理模組 遊客 普通使用者和管理員 管理員多了新增 刪除 更改商品 更改訂單狀態的功能 3 分頁顯示商品資訊 能夠...

搭建OJ系統

安裝參考資料 本文介紹如何利用開源oj系統原始碼快速搭建oj系統 安裝依賴環境 ubuntu系統使用者 sudo apt get update sudo apt get install y vim python pip curl git pip install docker composecento...

搭建OJ系統

目錄安裝 參考資料 本文介紹如何利用開源oj系統原始碼快速搭建oj系統 安裝依賴環境 ubuntu系統使用者 sudo apt get update sudo apt get install y vim python pip curl git pip install docker composece...